最近chefを勉強しているので適当にMySQL用のレシピを書いてみた。入門的にやったのでCentOSにしか使えないし、良い設定みたいなのは適用していないので、ちゃんとしたところには使わないほうが良いです。
setup
まずはcookbookのセットアップをしないといけません。以下のコマンドで雛形ができます。
$ cd target-directory $ knife cookbook create mysql -o site-cookbooks
client用
clientはpackageを入れればいいだけなので簡単に作れる。
# site-cookbooks/mysql/recipes/client.rb %w{mysql mysql-devel}.each do |package_name| package package_name do action :install end end
server用
serverの方は少し面倒。packageを入れて、mysql_install_dbして、service startする必要がある。
# site-cookbooks/mysql/recipes/server.rb include_recipe "mysql::client" package "mysql-server" do action :install end execute "mysql-install-db" do command "mysql_install_db" action :run not_if { File.exists?('/var/lib/mysql/mysql/user.frm') } end service "mysqld" do supports status: true, restart: true, reload: true action [ :enable, :start ] end
まとめ
今回は勉強がてら適当にmysqlのレシピを書いてみた。もうちょっとちゃんとやろうとするとtemplateとかを使ったりして、設定ファイルをちゃんと作るとかしないといけないですね。