INFRA

EC2にChefでPHP、MySQL、Apacheなどを入れてみる

chefでresourceというのはchefが用意している命令のことらしい。OSの種類に応じて処理を実行してくれたり、エラーの場合の処理も内部でやってくれるので、Recipeに数行のresourceを書くだけでOKになっている。

packageもResourceですよね??packageを使って、php、mysql、httpdがインストールできそうなコードを試してみる。

%w{httpd php mysql}.each do |pkg|
package pkg do
action :install
end
end
%w{httpd mysqld}.each do |svc|
service svc do
supports :status => true, :restart => true, :reload => true
action [ :enable , :start ]
end
end

とりあえずこれで実行してみたらエラーでなくてインストールされたっぽい。

vimとかphpmyadminもインストールさせてみようと思ったらエラーになった。 phpmyadminのインストールは下記に書いてあった。 AWS EC2にPHPMyAdminをインストールする

%w{httpd php mysql vim git}.each do |pkg|
package pkg do
action :install
end
end
%w{httpd mysqld}.each do |svc|
service svc do
supports :status => true, :restart => true, :reload => true
action [ :enable , :start ]
end
end
rpmforge_file = "rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm"
execute 'get rpmforge packege' do
cwd '/tmp'
command "wget http://pkgs.repoforge.org/rpmforge-release/#{ rpmforge_file }"
not_if { ::File.exists?("/tmp/#{ rpmforge_file }") }
end
rpm_package "#{ rpmforge_file }" do
action :install
source "/tmp/#{ rpmforge_file }"
end
package 'phpmyadmin' do
action :install
end

まあこれだけできても特段有り難いものではない。 かといって全てを可能にする為の勉強工数もあまり有り難いものではないなあ。

追記: phpmyadminは、上記実行後に、sudo yum updateして、再度上記を実行したらエラーになった。残念だった。