attributes/default.rb
設定値をまとめておく
default["wp"]["db_user"] = "wpuser" default["wp"]["db_pass"] = "himitsu_dayo" default["wp"]["db_host"] = "localhost" default["wp"]["db_name"] = "wordpress"
recipes/default.rb
ファイル分割してみる
include_recipe "wordpress::install_packages" include_recipe "wordpress::setup_mysqld"
recipes/setup_mysqld.rb
# mysqlサーバを起動、有効化 service "mysqld" do action [:enable, :start] supports :start => true, :stop => true, :restart => true, :reload => true end # bashで何かするリソース bash "craete_db" do code <<-EOS # create table文を mysql に流しこむ # db名は↑のattributesで設定する echo "create database #{node['wp']['db_name']} charset utf8;" | mysql EOS action :nothing # ただし、↑のmysqlサーバ起動後、しばらくしてから叩く subscribes :run, "service[mysqld]", :delayed # すでにDB作成済みならスキップする ## not_if command ## => commandの終了ステータス(シェル)を評価 => 正常終了(0)だったら実行しない ## not_if {command} ## => rubyブロックとして評価 => trueだったら実行しない not_if "echo 'show databases;'| mysql | grep '#{node['wp']["db_name"]}'" end