そういうことだったんですね

いろいろ調べたり学んだりしたことを忘れないように書き連ねています

chef - レシピの基礎(3)

サービスの設定をする

サーバ類の起動・終了などをchef-clientで管理するには
service リソースを使います。

次の例では、mysqld をマシン起動時に自動起動させるようにし、
かつ、mysqldサーバを起動します。

service "mysqld" do
  action [:enable, :start]
end

設定ファイルを修正した後にサーバを起動させる

通知機能 (notifies, subscribes) を使います。

次の例では my.cnf の更新されたときにmysqldを再起動させています。

template "/etc/my.cnf" do
  notifies :restart, "service[mysqld]"
end

service "mysqld" do
  action :nothing
end

subscribes は、notifies と逆に動作します。
上の例を次のように書くこともできます。

template "/etc/my.cnf" do
end

service "mysqld" do
  action :nothing
  subscribe :restart, "template[/etc/my.cnf]"
end

通知機能は、デフォルトではレシピの最後に実行(:delayed)されます。
ただし、すぐに実行させたい場合は :immediately を指定します。

template "/etc/my.cnf" do
  notifies :restart, "service[mysqld]", :immediately
end