{"id":2938,"date":"2014-12-23T00:00:35","date_gmt":"2014-12-22T15:00:35","guid":{"rendered":"http:\/\/www.koemu.com\/blog\/?p=2938"},"modified":"2014-12-25T15:31:18","modified_gmt":"2014-12-25T06:31:18","slug":"lets_challenge_automation","status":"publish","type":"post","link":"https:\/\/www.koemu.com\/blog\/2014\/12\/23\/lets_challenge_automation\/","title":{"rendered":"Itamae + Serverspec \u3067\u30b5\u30fc\u30d0\u69cb\u7bc9\u30fb\u30c6\u30b9\u30c8\u81ea\u52d5\u5316 \u7dcf\u4ed5\u4e0a\u3052\uff01"},"content":{"rendered":"<p><a href=\"http:\/\/qiita.com\/advent-calendar\/2014\/webapp_mook\" target=\"_blank\">Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c Advent Calendar 2014<\/a> 23\u65e5\u76ee\u306e\u8a18\u4e8b\u3067\u3059\u3002<\/p>\n<p>\u3053\u308c\u307e\u3067\u3001<a href=\"http:\/\/www.amazon.co.jp\/gp\/product\/4774163678\/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774163678&#038;linkCode=as2&#038;tag=koemu-22\">Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c<\/a><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ir-jp.amazon-adsystem.com\/e\/ir?t=koemu-22&#038;l=as2&#038;o=9&#038;a=4774163678\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\" \/>(\u4ee5\u4e0b \u5148\u306e\u30e0\u30c3\u30af)\u306ePHP\u30c7\u30e2\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092<a href=\"\/blog\/2014\/12\/16\/lets-challenge-centos7\/\" title=\"CentOS 7\u3067Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c\u306e\u30b5\u30f3\u30d7\u30eb\u3092\u52d5\u304b\u3057\u3066\u307f\u308b(PHP\u7de8)\">CentOS 7\u3067\u52d5\u304b\u3059<\/a>\u304a\u8a71\u3092\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u305d\u306e\u4e2d\u3067\u3001\u300c<a href=\"\/blog\/2014\/12\/20\/lets-challenge-serverspec\/\" title=\"Serverspec\u3067\u30b5\u30fc\u30d0\u69cb\u7bc9\u7d50\u679c\u3092\u30c6\u30b9\u30c8\u3057\u3066\u307f\u308b(PHP\u7de8)\">Serverspec\u3092\u5229\u7528\u3057\u305f\u81ea\u52d5\u5316(20\u65e5\u76ee)<\/a>\u300d\u3068\u3001\u3059\u304c\u3055\u3093\u304c <a href=\"https:\/\/github.com\/ryotarai\/itamae\" target=\"_blank\">Itamae<\/a> \u3092\u5229\u7528\u3057\u305f\u300c<a href=\"http:\/\/sugamasao.hatenablog.com\/entry\/2014\/12\/18\/012048\" target=\"_blank\">Ruby\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u4ee5\u5916\u306e\u30b3\u30fc\u30c9\u3092\u66f8\u304f(19\u65e5\u76ee)<\/a>\u300d\u304a\u8a71\u3092\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u305d\u306e\u4e0a\u3067\u3001\u30b5\u30fc\u30d0\u69cb\u7bc9\u81ea\u52d5\u5316\u306e\u7dcf\u4ed5\u4e0a\u3052\u3068\u3057\u3066 Itamae + <a href=\"http:\/\/serverspec.org\/\" target=\"_blank\">Serverspec<\/a> \u3092\u7528\u3044\u3066PHP\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u52d5\u304f\u30b5\u30fc\u30d0\u3092\u81ea\u52d5\u69cb\u7bc9\u30fb\u81ea\u52d5\u30c6\u30b9\u30c8\u306b\u30c1\u30e3\u30ec\u30f3\u30b8\u3057\u3066\u307f\u307e\u3057\u3087\u3046\uff01<\/p>\n<p>\u672c\u8a18\u4e8b\u57f7\u7b46\u6642\u306b\u5229\u7528\u3057\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u3001CentOS 7.0, Ruby 2.1.2p95, specinfra 2.10.4, Itamae 1.0.13, Serverspec 2.7.1 \u3067\u3059\u3002<\/p>\n<div class=\"booklink-box\" style=\"text-align:left;padding-bottom:20px;font-size:small;\/zoom: 1;overflow: hidden;\">\n<div class=\"booklink-image\" style=\"float:left;margin:0 15px 10px 0;\"><a href=\"http:\/\/www.amazon.co.jp\/exec\/obidos\/asin\/4774163678\/koemu-22\/\" name=\"booklink\" rel=\"nofollow\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/images-fe.ssl-images-amazon.com\/images\/I\/51H9OChx3QL._SL160_.jpg\" style=\"border: none;\" \/><\/a><\/div>\n<div class=\"booklink-info\" style=\"line-height:120%;\/zoom: 1;overflow: hidden;\">\n<div class=\"booklink-name\" style=\"margin-bottom:10px;line-height:120%\"><a href=\"http:\/\/www.amazon.co.jp\/exec\/obidos\/asin\/4774163678\/koemu-22\/\" name=\"booklink\" rel=\"nofollow\" target=\"_blank\">Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c[\u3057\u304f\u307f\u3001\u958b\u767a\u3001\u74b0\u5883\u69cb\u7bc9\u30fb\u904b\u7528\u2026\u5168\u4f53\u50cf\u3092\u6700\u65b0\u77e5\u8b58\u3067\u6700\u521d\u304b\u3089! ] (Software Design plus)<\/a><\/p>\n<div class=\"booklink-powered-date\" style=\"font-size:8pt;margin-top:5px;font-family:verdana;line-height:120%\">posted with <a href=\"http:\/\/yomereba.com\" rel=\"nofollow\" target=\"_blank\">\u30e8\u30e1\u30ec\u30d0<\/a><\/div>\n<\/div>\n<div class=\"booklink-detail\" style=\"margin-bottom:5px;\">\u548c\u7530 \u88d5\u4ecb,\u77f3\u7530 \u7d62\u4e00 (uzulla),\u3059\u304c\u308f\u3089 \u307e\u3055\u306e\u308a,\u658e\u85e4 \u7950\u4e00\u90ce \u6280\u8853\u8a55\u8ad6\u793e 2014-03-11    <\/div>\n<\/div>\n<div class=\"booklink-footer\" style=\"clear: left\"><\/div>\n<\/div>\n<h3>Itamae, Serverspec \u306e\u6e96\u5099<\/h3>\n<p>\u6700\u521d\u306b\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u884c\u3046\u5bfe\u8c61\u3068\u306a\u308b\u30b5\u30fc\u30d0\u3092\u6e96\u5099\u3057\u307e\u3059\u3002\u6b21\u306e\u72b6\u614b\u3092\u6574\u3048\u3066\u304a\u3044\u3066\u4e0b\u3055\u3044\u3002<\/p>\n<ul>\n<li>CentOS 7\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30de\u30b7\u30f3\u3092\u6e96\u5099\u3057\u307e\u3059\u3002VMware\u306a\u3069\u3001\u624b\u5143\u306e\u30de\u30b7\u30f3\u4e0a\u3067\u52d5\u304fVM\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u5927\u4e08\u592b\u3067\u3059\u3002<\/li>\n<li>SSH\u306e\u516c\u958b\u9375\u8a8d\u8a3c\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u624b\u9806\u306f\u3001\u5148\u306e\u30e0\u30c3\u30af 3.2\u7bc0 P.115\u306b\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n<li>Ruby 2.0\u7cfb\u4ee5\u4e0a\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u306a\u3044\u65b9\u306f\u3001\u5148\u306e\u30e0\u30c3\u30af 2.8\u7bc0 P.65\u4ee5\u964d\u3092\u53c2\u8003\u306b\u3057\u3066\u4e0b\u3055\u3044\u3002<\/li>\n<li>\u53ef\u80fd\u3067\u3042\u308c\u3070\u3001\u69cb\u7bc9\u76f4\u5f8c\u306e\u72b6\u614b\u3067Snapshot\u3092\u53d6\u3063\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002<\/li>\n<\/ul>\n<p>\u4ee5\u4e0a\u306e\u6e96\u5099\u304c\u7d42\u308f\u308a\u307e\u3057\u305f\u3089\u3001\u6b21\u306e\u624b\u9806\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n$ mkdir (\u30b3\u30fc\u30c9\u3092\u4fdd\u5b58\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea)\r\n$ cd (\u30b3\u30fc\u30c9\u3092\u4fdd\u5b58\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea)\r\n$ gem install bundler\r\n$ vim Gemfile   # \u4ee5\u4e0b\u306e\u5185\u5bb9\u3092\u53c2\u8003\u306b\u3057\u3066\u8a18\u8ff0\r\n$ bundle install\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n# Gemfile\r\nsource &quot;https:\/\/rubygems.org&quot;\r\n\r\ngem &quot;rake&quot;\r\ngem &quot;itamae&quot;\r\ngem &quot;serverspec&quot;\r\n<\/pre>\n<p>\u4ee5\u4e0a\u3067\u7d42\u4e86\u3067\u3059\u3002<\/p>\n<h3>\u30b3\u30fc\u30c9\u3092\u66f8\u304f<\/h3>\n<h4>Itamae\u306e\u30ec\u30b7\u30d4\u3092\u66f8\u304f<\/h4>\n<p>MySQL, Apache, PHP\u306e\u30ec\u30b7\u30d4\u3092\u66f8\u3044\u3066\u884c\u304d\u307e\u3057\u3087\u3046\u3002\u300c<a href=\"\/blog\/2014\/12\/16\/lets-challenge-centos7\/\" title=\"CentOS 7\u3067Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c\u306e\u30b5\u30f3\u30d7\u30eb\u3092\u52d5\u304b\u3057\u3066\u307f\u308b(PHP\u7de8)\">CentOS 7\u3067Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c\u306e\u30b5\u30f3\u30d7\u30eb\u3092\u52d5\u304b\u3057\u3066\u307f\u308b(PHP\u7de8)<\/a>\u300d\u306e\u624b\u9806\u3092\u57fa\u306b\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002\u3059\u304c\u3055\u3093\u306e\u30a8\u30f3\u30c8\u30ea\u3092\u3054\u89a7\u9802\u3044\u3066\u3044\u308b\u65b9\u306b\u306f\u3001\u96e3\u306a\u304f\u66f8\u3051\u308b\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>\u57fa\u672c\u3001\u30b3\u30fc\u30c9\u3092\u793a\u3057\u3064\u3064\u3001\u7559\u610f\u70b9\u3092\u8ffd\u52a0\u3067\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001MySQL\u304b\u3089\u30024\u884c\u76ee\u306f\u3001packages\u30ea\u30bd\u30fc\u30b9\u304c\u73fe\u72b6source\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u306a\u3044\u305f\u3081\u3001command\u3067\u4ee3\u7528\u3057\u3066\u3044\u307e\u3059\u300220\u884c\u76ee\u4ee5\u964d\u306fmysql_secure_installation\u5185\u90e8\u306e\u30b3\u30de\u30f3\u30c9\u3092\u30b7\u30df\u30e5\u30ec\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u300123\u884c\u76ee\u306ftest\u30c6\u30fc\u30d6\u30eb\u304c\u306a\u304f\u306a\u3063\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u3042\u308b\u305f\u3081\u3001DROP\u6642\u306b\u30a8\u30e9\u30fc\u304c\u8d77\u304d\u3066\u3082\u7121\u8996\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: ruby; title: ; notranslate\" title=\"\">\r\n# recipes\/mysqld\/mysqld.rb\r\nMYSQL_PASSWORD=node&#x5B;ENV&#x5B;'TARGET_HOST']]&#x5B;'mysqld']&#x5B;'password']\r\n\r\nexecute &quot;yum -t -y install http:\/\/dev.mysql.com\/get\/mysql-community-release-el7-5.noarch.rpm&quot;\r\n\r\n%w{\r\n  mysql-community-client\r\n  mysql-community-devel\r\n  mysql-community-server\r\n}.each do |pkg_name|\r\n  package pkg_name do\r\n    action :install\r\n  end \r\nend\r\n\r\nservice &quot;mysqld&quot; do\r\n  action &#x5B; :enable, :start ]\r\nend\r\n\r\nexecute &quot;mysql -u root -e \\&quot;SET PASSWORD=PASSWORD('#{MYSQL_PASSWORD}');\\&quot;&quot;\r\nexecute &quot;mysql -uroot -p#{MYSQL_PASSWORD} -e \\&quot;DELETE FROM mysql.user WHERE User='';\\&quot;&quot;\r\nexecute &quot;mysql -uroot -p#{MYSQL_PASSWORD} -e \\&quot;DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\\&quot;&quot;\r\nexecute &quot;mysql -uroot -p#{MYSQL_PASSWORD} -e \\&quot;DROP DATABASE test;\\&quot;; echo&quot;\r\nexecute &quot;mysql -uroot -p#{MYSQL_PASSWORD} -e \\&quot;DELETE FROM mysql.db WHERE Db='test' OR Db='test\\\\_%'\\&quot;&quot;\r\nexecute &quot;mysql -uroot -p#{MYSQL_PASSWORD} -e \\&quot;FLUSH PRIVILEGES;\\&quot;&quot;\r\n<\/pre>\n<p>\u7d9a\u3044\u3066\u3001Apache, PHP\u3067\u3059\u3002\u3053\u3061\u3089\u306fMySQL\u306b\u6bd4\u3079\u307e\u3059\u3068\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002 php.ini \u306f\u3001\u65e2\u306b\u7de8\u96c6\u6e08\u307f\u306e\u3082\u306e recipes\/httpd\/php.ini.erb \u3068\u3057\u3066\u6e96\u5099\u3057\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: ruby; title: ; notranslate\" title=\"\">\r\n# recipes\/httpd\/httpd.conf\r\n%w{\r\n  httpd\r\n  php\r\n  php-gd\r\n  php-mbstring\r\n  php-xml\r\n  php-pdo\r\n  php-mysql\r\n}.each do |pkg_name|\r\n  package pkg_name do\r\n    action :install\r\n  end \r\nend\r\n\r\ntemplate &quot;\/etc\/php.ini&quot; do\r\n  source &quot;php.ini.erb&quot;\r\nend\r\n\r\nservice &quot;httpd&quot; do\r\n  action &#x5B; :enable, :start ]\r\nend\r\n\r\nexecute &quot;firewall-cmd --permanent --add-service=http&quot;\r\nexecute &quot;firewall-cmd --reload&quot;\r\nexecute &quot;setsebool -P httpd_can_network_connect 1&quot;\r\n<\/pre>\n<p>\u4ee5\u4e0a\u3088\u308a\u3001\u6848\u5916\u30b9\u30c3\u30ad\u30ea\u66f8\u3051\u307e\u3059\u3002Chef\u306e\u6587\u6cd5\u306b\u4f3c\u3066\u3044\u307e\u3059\u304c\u3001Chef\u307b\u3069\u8907\u96d1\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u899a\u3048\u3084\u3059\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h4>Serverspec\u306e\u30c6\u30b9\u30c8\u3092\u6d41\u7528\u3059\u308b<\/h4>\n<p>Serverspec\u306e\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u306f\u3001\u300c<a href=\"\/blog\/2014\/12\/20\/lets-challenge-serverspec\/\" title=\"Serverspec\u3067\u30b5\u30fc\u30d0\u69cb\u7bc9\u7d50\u679c\u3092\u30c6\u30b9\u30c8\u3057\u3066\u307f\u308b(PHP\u7de8)\">Serverspec\u3092\u5229\u7528\u3057\u305f\u81ea\u52d5\u5316(20\u65e5\u76ee)<\/a>\u300d\u3067\u4f5c\u6210\u3057\u305f\u3082\u306e\u3092\u305d\u306e\u307e\u307e\u6d41\u7528\u3057\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u3067\u306f\u3001\u65e2\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u3044\u308b\u30b3\u30fc\u30c9\u3092\u6d41\u7528\u3059\u308b\u30b3\u30de\u30f3\u30c9\u3067\u3059\u3002Windows\u306e\u65b9\u306f\u3001\u6050\u308c\u5165\u308a\u307e\u3059\u304c\u624b\u52d5\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u304a\u9858\u3044\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n$ mkdir -p spec\/mysqld\r\n$ cd spec\/mysqld\r\n$ wget https:\/\/raw.githubusercontent.com\/koemu\/webapp_mook_servertest\/master\/spec\/saito-hb-vm007\/mysql_spec.rb\r\n$ cd ..\/..\/\r\n$ mkdir -p spec\/httpd\r\n$ cd spec\/httpd\r\n$ wget https:\/\/raw.githubusercontent.com\/koemu\/webapp_mook_servertest\/master\/spec\/saito-hb-vm007\/httpd_spec.rb\r\n$ cd ..\/..\/\r\n$ cd spec\r\n$ wget https:\/\/raw.githubusercontent.com\/koemu\/webapp_mook_servertest\/master\/spec\/spec_helper.rb\r\n$ cd ..\r\n<\/pre>\n<p>\u30c6\u30b9\u30c8\u3057\u305f\u3044\u72b6\u614b\u304c\u5168\u304f\u540c\u3058\u3060\u304b\u3089\u3001\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u304c\u6d41\u7528\u3067\u304d\u308b\u306e\u3067\u3059\u3002<\/p>\n<h4>Rakefile\u3092\u6574\u3048\u308b<\/h4>\n<p>Itamae \u306f\u30b3\u30de\u30f3\u30c9\u304b\u3089\u76f4\u63a5\u30ec\u30b7\u30d4\u3092\u5b9f\u884c\u3067\u304d\u308b\u306e\u3067\u3059\u304c\u3001\u305b\u3063\u304b\u304f\u306a\u3089 Serverspec \u3082\u4e00\u7dd2\u306b\u5b9f\u884c\u3057\u305f\u3044\u3067\u3059\u3088\u306d\u3002\u305d\u3053\u3067\u3001\u540c\u50da\u306e @<a href=\"http:\/\/twitter.com\/rrreeeyyy\" target=\"_blank\">rrreeeyyy<\/a> \u3055\u3093\u304c\u4f5c\u6210\u3057\u305f <a href=\"https:\/\/gist.github.com\/rrreeeyyy\/84efc2907814c56a2b4a\" target=\"_blank\">Rakefile<\/a> \u3092\u53c2\u8003\u306b\u3057\u307e\u3059\u3002\u3053\u308c\u3092\u4f7f\u3046\u3068\u3001\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb properties.json \u306b\u8a18\u8ff0\u3057\u305f\u30b5\u30fc\u30d0\u306b\u5bfe\u3057\u3066\u3001 Itamae \u306b\u3088\u308b\u69cb\u7bc9\u3068 Serverspec \u306b\u3088\u308b\u30c6\u30b9\u30c8\u3092\u540c\u6642\u306b\u3053\u306a\u305b\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u5927\u5909\u4fbf\u5229\u3067\u3059\u3002<\/p>\n<p>\u306a\u304a\u3001\u5148\u306eRakefile\u306f\u4eca\u56de\u306e\u30d6\u30ed\u30b0\u7528\u306b\u6570\u30ab\u6240\u7de8\u96c6\u3057\u3066\u3044\u307e\u3059\u3002\u4ee5\u4e0b\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u5229\u7528\u3057\u3066\u4e0b\u3055\u3044\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n$ wget https:\/\/raw.githubusercontent.com\/koemu\/webapp_mook_itamae_demo\/master\/Rakefile\r\n<\/pre>\n<p>\u7d9a\u3044\u3066 properties.json \u3092\u6e96\u5099\u3057\u307e\u3059\u3002\u4eca\u56de\u306f\u3001\u30db\u30b9\u30c8\u540d:saito-hb-vm007, IP\u30a2\u30c9\u30ec\u30b9:192.168.29.107 \u306e\u30b5\u30fc\u30d0\u306b\u5bfe\u3057\u3066\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u306a\u304a\u3001\u30db\u30b9\u30c8\u540d\u30fbIP\u30a2\u30c9\u30ec\u30b9\u306f\u3001\u3054\u81ea\u8eab\u306e\u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u66f8\u304d\u63db\u3048\u3066\u4e0b\u3055\u3044\u3002<\/p>\n<p>(properties.json \u306e\u8a18\u8ff0\u4f8b)<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n{\r\n  &quot;saito-hb-vm007&quot;: {\r\n    &quot;ssh_user&quot;: &quot;root&quot;,\r\n    &quot;ssh_port&quot;: 22,\r\n    &quot;roles&quot;: &#x5B;&quot;mysqld&quot;, &quot;httpd&quot;]\r\n  }\r\n}\r\n<\/pre>\n<p>\u6700\u5f8c\u306b\u3001SSH\u3067\u63a5\u7d9a\u3067\u304d\u308b\u3088\u3046\u306b .ssh\/config \u3092\u7de8\u96c6\u3057\u307e\u3057\u3087\u3046\u300220\u65e5\u76ee\u306e\u30a8\u30f3\u30c8\u30ea\u3067\u65e2\u306b\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308c\u3070\u4f55\u3082\u3057\u306a\u304f\u3066\u7d50\u69cb\u3067\u3059\u3002<\/p>\n<p>(.ssh\/config \u306e\u8a18\u8ff0\u4f8b)<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nHost saito-hb-vm007\r\n  HostName 192.168.29.107\r\n  User (\u4efb\u610f\u306e\u30e6\u30fc\u30b6\u540d)\r\n<\/pre>\n<p>\u3042\u3089\u304b\u3058\u3081\u3001recipes\u3068spec\u306f\u4ee5\u4e0b\u306b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u304a\u304f\u4e8b\u3067\u3001\u30ed\u30fc\u30eb\u3068\u3057\u3066\u5206\u985e\u3059\u308b\u4e8b\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u5f93\u3063\u3066\u3001 mysqld \u3060\u3051\u3092\u5b9f\u884c\u3059\u308b\u4e8b\u3082\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>\u4ee5\u4e0a\u3067\u6e96\u5099\u5b8c\u4e86\u3067\u3059\u3002\u304a\u3064\u304b\u308c\u3055\u307e\u3067\u3057\u305f\u3002<\/p>\n<h3>\u3044\u3056\u5b9f\u884c\uff01<\/h3>\n<p>\u307e\u305a\u3001 rake \u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u306e\u969b\u306b\u4f7f\u3048\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\u3053\u3053\u307e\u3067\u306e\u4f5c\u696d\u304c\u6b63\u3057\u304f\u3067\u304d\u3066\u3044\u308b\u5834\u5408\u3001\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3059\u308b\u3068\u6b21\u306e\u7d50\u679c\u304c\u5f97\u3089\u308c\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n$ bundle exec rake -vT\r\nrake itamae:saito-hb-vm007      # Run itamae to saito-hb-vm007\r\nrake serverspec:saito-hb-vm007  # Run serverspec to saito-hb-vm007\r\n<\/pre>\n<p>\u3067\u306f\u3001\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n$ bundle exec rake itamae:saito-hb-vm007 serverspec:saito-hb-vm007\r\nbundle exec itamae ssh -h saito-hb-vm007 -u root -i  -p 22 -j properties.json recipes\/mysqld\/mysqld.rb recipes\/httpd\/httpd.rb\r\n INFO : Starting Itamae...\r\n INFO : Loading node data from \/Users\/saito\/repos\/webapp_mook_itamae_demo\/properties.json...\r\n INFO : Recipe: \/Users\/saito\/repos\/webapp_mook_itamae_demo\/recipes\/mysqld\/mysqld.rb\r\n INFO :    execute&#x5B;yum -y install http:\/\/dev.mysql.com\/get\/mysql-community-release-el7-5.noarch.rpm]\r\n INFO :       action: run\r\n(\u4e2d\u7565)\r\n  MySQL\u306broot\u30e6\u30fc\u30b6\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\r\n    Command &quot;mysql -uroot -pCHANGE_ME~ -e &quot;SELECT user FROM mysql.user&quot;&quot;\r\n      exit_status\r\n        should eq 0\r\n\r\nFinished in 1.03 seconds (files took 0.2482 seconds to load)\r\n21 examples, 0 failures\r\n<\/pre>\n<p>\u7121\u4e8b\u3001\u81ea\u52d5\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3001\u305d\u3057\u3066\u81ea\u52d5\u30c6\u30b9\u30c8\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u306e\u3042\u3068\u3001\u5148\u306e\u30e0\u30c3\u30af\u306ePHP\u7528\u30c7\u30e2\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3042\u308b Tinitter \u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3068\u3001 Tinitter \u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3>\u307e\u3068\u3081<\/h3>\n<p>\u3053\u3053\u307e\u3067\u3001Itamae + Serverspec \u3092\u7528\u3044\u305f\u3001\u30b5\u30fc\u30d0\u306e\u69cb\u7bc9\u30fb\u30c6\u30b9\u30c8\u306e\u81ea\u52d5\u5316\u306b\u3064\u3044\u3066\u304a\u8a71\u3057\u3057\u307e\u3057\u305f\u3002\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u958b\u767a\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u7528\u306e\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u306e\u3068\u3068\u3082\u306b\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3088\u3046\u306b\u3001IT\u30a4\u30f3\u30d5\u30e9\u3092\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3067\u81ea\u52d5\u5316\u3059\u308b\u3068\u304d\u306b\u3082\u3001\u69cb\u7bc9\u624b\u9806\u3068\u72b6\u614b\u30c6\u30b9\u30c8\u3092\u540c\u6642\u306b\u8a18\u8ff0\u3059\u308b\u4e8b\u304c\u3067\u304d\u308b\u306e\u3092\u77e5\u3063\u3066\u3044\u305f\u3060\u3051\u305f\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u3053\u3053\u307e\u3067\u7d39\u4ecb\u3057\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u3001GitHub <a href=\"https:\/\/github.com\/koemu\/webapp_mook_itamae_demo\" target=\"_blank\">koemu\/webapp_mook_itamae_demo<\/a> \u306b\u4fdd\u5b58\u3057\u3066\u3044\u307e\u3059\u3002\u3042\u308f\u305b\u3066\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u81ea\u52d5\u69cb\u7bc9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u3068\u3001\u30b5\u30fc\u30d0\u5897\u8a2d\u3084\u30c6\u30b9\u30c8\u30b5\u30fc\u30d0\u69cb\u7bc9\u6642\u3082\u5f53\u7136\u81ea\u52d5\u5316\u3067\u304d\u307e\u3059\u304b\u3089\u3001\u305d\u306e\u30e1\u30ea\u30c3\u30c8\u306f\u307e\u3059\u307e\u3059\u306f\u3063\u304d\u308a\u3057\u3066\u304d\u307e\u3059\u3002\u624b\u52d5\u306b\u3088\u308b\u6696\u304b\u307f\u306e\u3042\u308b\u30b5\u30fc\u30d0\u69cb\u7bc9\u306f\u305d\u308d\u305d\u308d\u7d42\u308f\u308a\u306b\u3057\u3066\u3001\u30b5\u30fc\u30d0\u69cb\u7bc9\u3092\u3055\u304f\u3055\u304f\u81ea\u52d5\u5316\u3059\u308b\u3053\u3068\u3067\u3001\u65e9\u304f\u5e30\u3063\u3066\u9152\u3092\u98f2\u307f\u307e\u3057\u3087\u3046\uff01\uff01\uff01<\/p>\n<p>\u306a\u304a\u3001\u4ee5\u4e0a\u306e\u4e8b\u3092\u672c\u683c\u7684\u306b\u53d6\u308a\u7d44\u3080\u5834\u5408\u306f\u3001 Rakefile \u3068 spec_helper.rb \u306b\u5de5\u592b\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u3042\u305f\u308a\u3092\u3057\u3063\u304b\u308a\u3084\u308d\u3046\u3068\u3059\u308b\u3068 Ruby \u306e\u77e5\u8b58\u304c\u3088\u308a\u6df1\u304f\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u6642\u306f\u3001\u3059\u304c\u3055\u3093\u305f\u3061\u304c\u57f7\u7b46\u3057\u3066\u3044\u308b\u300c<a href=\"http:\/\/www.amazon.co.jp\/gp\/product\/4774158798\/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774158798&#038;linkCode=as2&#038;tag=koemu-22\">\u30d1\u30fc\u30d5\u30a7\u30af\u30c8Ruby<\/a><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ir-jp.amazon-adsystem.com\/e\/ir?t=koemu-22&#038;l=as2&#038;o=9&#038;a=4774158798\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\" \/>\u300d\u306a\u3069\u3092\u8aad\u3093\u3067\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u3061\u3087\u3063\u3068\u3060\u3051\u5ba3\u4f1d\u3067\u3059\u3002<\/p>\n<p>\u50d5\u306e\u73fe\u8077\u306e\u4e0a\u53f8\u3067\u3042\u308b @<a href=\"https:\/\/twitter.com\/netmarkjp\" target=\"_blank\">netmarkjp<\/a> \u3055\u3093\u304c\u3001IT\u30a4\u30f3\u30d5\u30e9\u306e\u8a2d\u8a08\u30fb\u69cb\u7bc9\u30fb\u904b\u7528\u30fb\u305d\u3057\u3066\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u307e\u3067\u3092\u4f53\u7cfb\u7684\u306b\u89e3\u8aac\u3057\u305f\u672c\u3092\u51fa\u3057\u307e\u3059\u3002\u7279\u306b\u3001\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u305f\u3081\u306e\u6307\u6a19\u306e\u8aad\u307f\u65b9\u306f\u591a\u304f\u306e\u65b9\u306b\u5f79\u7acb\u3064\u3082\u306e\u306b\u306a\u308b\u3068\u601d\u3044\u307e\u3059\u3002IT\u30a4\u30f3\u30d5\u30e9\u306b\u304a\u60a9\u307f\u306e\u65b9\u3001\u5148\u306e\u30e0\u30c3\u30af\u306e\u5185\u5bb9\u3088\u308a\u66f4\u306b\u4e00\u6b69\u9032\u3093\u3067\u307f\u305f\u3044\u65b9\u306f\u3001\u305c\u3072\u304a\u8cb7\u3044\u6c42\u3081\u4e0b\u3055\u3044\u3002<\/p>\n<div class=\"booklink-box\" style=\"text-align:left;padding-bottom:20px;font-size:small;\/zoom: 1;overflow: hidden;\">\n<div class=\"booklink-image\" style=\"float:left;margin:0 15px 10px 0;\"><a href=\"http:\/\/www.amazon.co.jp\/exec\/obidos\/asin\/4839953554\/koemu-22\/\" name=\"booklink\" rel=\"nofollow\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/images-fe.ssl-images-amazon.com\/images\/I\/51%2BYTLRuB7L._SL160_.jpg\" style=\"border: none;\" \/><\/a><\/div>\n<div class=\"booklink-info\" style=\"line-height:120%;\/zoom: 1;overflow: hidden;\">\n<div class=\"booklink-name\" style=\"margin-bottom:10px;line-height:120%\"><a href=\"http:\/\/www.amazon.co.jp\/exec\/obidos\/asin\/4839953554\/koemu-22\/\" name=\"booklink\" rel=\"nofollow\" target=\"_blank\">Web\u30a8\u30f3\u30b8\u30cb\u30a2\u304c\u77e5\u3063\u3066\u304a\u304d\u305f\u3044\u30a4\u30f3\u30d5\u30e9\u306e\u57fa\u672c ~\u30a4\u30f3\u30d5\u30e9\u306e\u8a2d\u8a08\u304b\u3089\u69cb\u6210\u3001\u76e3\u8996\u3001\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u307e\u3067~<\/a><\/p>\n<div class=\"booklink-powered-date\" style=\"font-size:8pt;margin-top:5px;font-family:verdana;line-height:120%\">posted with <a href=\"http:\/\/yomereba.com\" rel=\"nofollow\" target=\"_blank\">\u30e8\u30e1\u30ec\u30d0<\/a><\/div>\n<\/div>\n<div class=\"booklink-detail\" style=\"margin-bottom:5px;\">\u99ac\u5834 \u4fca\u5f70 \u30de\u30a4\u30ca\u30d3 2014-12-27    <\/div>\n<\/div>\n<div class=\"booklink-footer\" style=\"clear: left\"><\/div>\n<\/div>\n<p>\u305d\u308c\u3067\u306f\u7686\u69d8\u3001\u3054\u304d\u3052\u3093\u3088\u3046\u3002<\/p>\n<div class=\"booklink-box\" style=\"text-align:left;padding-bottom:20px;font-size:small;\/zoom: 1;overflow: hidden;\">\n<div class=\"booklink-image\" style=\"float:left;margin:0 15px 10px 0;\"><a href=\"http:\/\/www.amazon.co.jp\/exec\/obidos\/asin\/4774163678\/koemu-22\/\" name=\"booklink\" rel=\"nofollow\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/images-fe.ssl-images-amazon.com\/images\/I\/51H9OChx3QL._SL160_.jpg\" style=\"border: none;\" \/><\/a><\/div>\n<div class=\"booklink-info\" style=\"line-height:120%;\/zoom: 1;overflow: hidden;\">\n<div class=\"booklink-name\" style=\"margin-bottom:10px;line-height:120%\"><a href=\"http:\/\/www.amazon.co.jp\/exec\/obidos\/asin\/4774163678\/koemu-22\/\" name=\"booklink\" rel=\"nofollow\" target=\"_blank\">Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c[\u3057\u304f\u307f\u3001\u958b\u767a\u3001\u74b0\u5883\u69cb\u7bc9\u30fb\u904b\u7528\u2026\u5168\u4f53\u50cf\u3092\u6700\u65b0\u77e5\u8b58\u3067\u6700\u521d\u304b\u3089! ] (Software Design plus)<\/a><\/p>\n<div class=\"booklink-powered-date\" style=\"font-size:8pt;margin-top:5px;font-family:verdana;line-height:120%\">posted with <a href=\"http:\/\/yomereba.com\" rel=\"nofollow\" target=\"_blank\">\u30e8\u30e1\u30ec\u30d0<\/a><\/div>\n<\/div>\n<div class=\"booklink-detail\" style=\"margin-bottom:5px;\">\u548c\u7530 \u88d5\u4ecb,\u77f3\u7530 \u7d62\u4e00 (uzulla),\u3059\u304c\u308f\u3089 \u307e\u3055\u306e\u308a,\u658e\u85e4 \u7950\u4e00\u90ce \u6280\u8853\u8a55\u8ad6\u793e 2014-03-11    <\/div>\n<\/div>\n<div class=\"booklink-footer\" style=\"clear: left\"><\/div>\n<\/div>\n<p>\u203b\u5927\u578b\u66f8\u5e97\u3067\u7acb\u3061\u8aad\u307f\u3057\u3066\u307f\u3066\u306d\uff01<\/p>\n<h3>\u8b1d\u8f9e<\/h3>\n<ul>\n<li>Rakefile \u306e\u5185\u5bb9\u306b\u3064\u3044\u3066\u306f\u3001 @<a href=\"http:\/\/github.com\/rrreeeyyy\">rrreeeyy<\/a> \u3055\u3093\u306e <a href=\"https:\/\/gist.github.com\/rrreeeyyy\/84efc2907814c56a2b4a\">Rakefile<\/a> \u3092\u30d9\u30fc\u30b9\u306b\u3057\u307e\u3057\u305f\u3002\u3069\u3046\u3082\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c Advent Calendar 2014 23\u65e5\u76ee\u306e\u8a18\u4e8b\u3067\u3059\u3002 \u3053\u308c\u307e\u3067\u3001Web\u30a2\u30d7\u30ea\u30a8\u30f3\u30b8\u30cb\u30a2\u990a\u6210\u8aad\u672c(\u4ee5\u4e0b \u5148\u306e\u30e0\u30c3\u30af)\u306ePHP\u30c7\u30e2\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092CentOS 7\u3067\u52d5\u304b\u3059\u304a\u8a71\u3092\u3057\u3066 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-2938","post","type-post","status-publish","format-standard","hentry","category-it-infra","category-programming"],"aioseo_notices":[],"_edit_lock":"1588928440:2","_edit_last":"2","_aioseo_title":"","_aioseo_description":"","_aioseo_keywords":"","_aioseo_og_title":"","_aioseo_og_description":"","_aioseo_og_article_section":"","_aioseo_og_article_tags":"","_aioseo_twitter_title":"","_aioseo_twitter_description":"","_jd_tweet_this":"yes","_oembed_7af84259280f3819d0c1e5347b48b2a9":"","_oembed_time_7af84259280f3819d0c1e5347b48b2a9":"","_oembed_7634e39d4ed0be4d10a97eb0741284fe":"","_oembed_time_7634e39d4ed0be4d10a97eb0741284fe":"","SBM_count":"","_wp_old_slug":"","_thumbnail_id":"","_jd_twitter":"","_wp_jd_clig":"","_wp_jd_bitly":"http:\/\/bit.ly\/1x33nWZ","_wp_jd_wp":"","_wp_jd_yourls":"","_wp_jd_url":"","_wp_jd_target":"http:\/\/www.koemu.com\/blog\/2014\/12\/23\/lets_challenge_automation\/?utm_campaign=utm_source=twitter&utm_medium=tweet&utm_campaign=Twitter&utm_medium=twitter&utm_source=twitter","_jd_wp_twitter":["\u30d6\u30ed\u30b0\u66f8\u3044\u305f: Itamae   Serverspec \u3067\u30b5\u30fc\u30d0\u69cb\u7bc9\u30fb\u30c6\u30b9\u30c8\u81ea\u52d5\u5316 \u7dcf\u4ed5\u4e0a\u3052\uff01 http:\/\/bit.ly\/1x33nWZ"],"_jd_post_meta_fixed":"","_wpt_short_url":"http:\/\/www.koemu.com\/blog\/2014\/12\/23\/lets_challenge_automation\/?utm_campaign=utm_source=twitter&utm_medium=tweet&utm_campaign=Twitter&utm_medium=twitter&utm_source=twitter","rftp_tweet":"","wp_jd_bitly":"","jd_tweet_this":"","wp_jd_target":"","travelify_sidebarlayout":"default","_wpt_status_message":"Tweet sent successfully.","_oembed_86fa8277a8d7ce66dcfee44bbbd51e64":"","_oembed_ec93745e0bb62267198d809adfd6e7ff":"","_oembed_1f5115e676f2bc0ad275ae7611f1bee1":"","_oembed_a3b3ae89adb1a1558fbce6d10d100bc9":"","_oembed_28759a6151461bd4bbb28c90ed32dca4":"","_oembed_ba816cc2e05a94d0ee7e9a844244d8dd":"","_oembed_b31e57225a15d41c6a18e20e85b23138":"","_oembed_6d8106b1ef508f44a9dce87488d21512":"","_oembed_dec3d64437fd71382b8f0ee11dfffb4c":"","_oembed_424209275087a3fb168baaf61a1253c5":"","_aioseop_opengraph_settings":"","_syntaxhighlighter_encoded":"1","_wpt_failed":"","_wp_old_date":"","_aioseop_keywords":"","_aioseop_description":"","_aioseop_title":"","_aioseop_custom_link":"","_aioseop_sitemap_exclude":"","_aioseop_disable":"","_aioseop_disable_analytics":"","_aioseop_noindex":"","_aioseop_nofollow":"","_wpt_tweet_id":"","_oembed_29e3617a1d7a89c344ab6cdc228e0c39":"","_oembed_e601c1e2ff4f427590bbf66636e0ba1c":"","_oembed_f213ba69d40801b8496174ba2cb828b4":"","_oembed_time_f213ba69d40801b8496174ba2cb828b4":"","_oembed_a6c0cf41bc3f379e44c82773e97f7f42":"","_oembed_time_a6c0cf41bc3f379e44c82773e97f7f42":"","_oembed_fdd3ccfef04133848bafbf039a6cee4b":"","_oembed_fe341b816b5af943f80fcbbe95432f33":"","_oembed_time_fe341b816b5af943f80fcbbe95432f33":"","_oembed_088ddcba00488ca063978d3c1ebc12c9":"","_oembed_4cd00905ef4a8c5dfe5183e065b8f9be":"","_oembed_time_4cd00905ef4a8c5dfe5183e065b8f9be":"","_links":{"self":[{"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/posts\/2938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/comments?post=2938"}],"version-history":[{"count":29,"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/posts\/2938\/revisions"}],"predecessor-version":[{"id":2979,"href":"https:\/\/www.koemu.com\/blog\/wp-json\/wp\/v2\/posts\/2938\/revisions\/2979"}],"wp:attachment":[{"href":"https:\/\/www.koemu.com\/blog\/wp-json\/?parent=2938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}