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して、再度上記を実行したらエラーになった。残念だった。