edo1z blog

プログラミングなどに関するブログです

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