Chefのrecipeを書いてみる その3 -recipeを分割してみる編-
前回書いた,Chefのrecipeを書いてみる その2 -recipeからインストールするversionを指定してみる編-に引き続きchefのrecipeを順を追って書いていきます.今日は,recipeを分割してみようと思います.
Recipeを分ける
現時点のrecipeを実行すると,mysql-connector
のrecipeも実行されてしまいます.
もし,MySQLではなく他のDBを使っていた場合,これはインストールしたくないと思います.
そのため,この部分を別のrecipeに分けて,必要に応じてインストールするように変更します.
flyway-cli/recipes/mysql-connector.rb の作成
mysql-connectorのrecipeを作成します.作り方はdefault.rbとほとんど変わりません. ついでに,jarファイルにシンボリックリンクを貼るのを忘れてたので追加.
execute "mysql-connector" do command <<-EOH wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.26.tar.gz -P /tmp tar xzfC /tmp/mysql-connector-java-5.1.26.tar.gz /opt/flyway/flyway/jars ln -nfs /opt/flyway/flyway/jars/mysql-connector-java-5.1.26/mysql-connector-java-5.1.26-bin.jar /opt/flyway/flyway/jars//mysql-connector-java-5.1.26-bin.jar EOH end
chef-repo/localhost.json
msql-connectorをlocalhost.jsonに追加します.
cookbook名の後ろに::
をつづけてrecipe名を指定することが出来ます.
{ "run_list" : [ "recipe[flyway-cli]", "recipe[flyway-cli::mysql-connector]" ] }
まとめ
今回は,今まで一緒になっていたrecipeを分けました.これでrecipeを使う人が必要に応じて指定することが出来便利になりました.
Chefのrecipeを書いてみる一覧
- Chefのrecipeを書いてみる その1 -とりあえずrecipeを書いてみる編-
- Chefのrecipeを書いてみる その2 -recipeからインストールするversionを指定してみる編-
- Chefのrecipeを書いてみる その3 -recipeを分割してみる編-
- Chefのrecipeを書いてみる その4 -インストール済みの場合は実行しないようにしてみる編-
- Chefのrecipeを書いてみる その5 -変数をAttribute化してみる編-