入門 Chef Solo 第10章 サービスを起動したい - Service と Notification

  • Package リソースでパッケージをインストールするだけではサービスの自動起動は行なわれないので Service というリソースを使って、起動、OS起動時の自動起動設定などを行なう
  • Service
    • action に :enable を渡して OS 起動時の自動起動の設定
    • action に :start を渡してその場での起動
    • support でこのサービスで使えるコマンド(start, stop, restart, reload など)をChefに教えるために設定
      • たとえば restat が true なら再起動には restart を使うが、なければ stop + start を使う、など
  • Notification
    • 設定ファイルの更新のリソースから notifies :reload, 'service[nginx]' のようにしてある Resource から別の Resource を指定して任意のアクションを呼べる。Service に限らず任意の Resource に対して呼べる
    • Notification で呼んだアクションはすぐ実行されるのではなく最後のほうでまとめて実行される
      • 第3引数 :immediately を渡すとすぐ実行される
  • Subscribe
    • Notification と逆に別のリソースのアクションを監視してその時に何らかのアクションを実行する
    • ex) subscribes :restart, "template[td-agent.conf]"
      • Service 側で Template の td-agent.conf のリソースが変更されたら restart アクションを実行する
    • Notification とどちらを使っても同じ