技術情報HOME技術情報ブログchef実行サイクルで押さえておきたいポイントchef実行サイクルで押さえておきたいポイントNオガワです。今回は、chefを始めるにあたり知っておきたいchefの実行サイクルのポイントに関してご紹介します。chefを触ったことがない方向けです。chef実行サイクル実装する上で、押さえておきたいポイントは以下の順序の実行サイクルです。以降で押さえておきたいポイントの詳細を説明していきます。Notifications(Timersに[:delayed]指定)[補足]chefserverとの通信、認証処理、cookbookのダウンロード等他にも処理はありますが、実装上意識するケースはそんなにないと思いますので割愛しています。cookbookのコンパイル(rubyスクリプトの実行はここ)ここで紹介したいのは、cookbookのコンパイルがこのタイミングで行われるということよりも、rubyスクリプトの実行がコンパイル時に行われるということです。以下のコード例でレシピを実行した結果を確認します。"実行順序テスト2"」がrubyスクリプトに該当します。"実行順序テスト2"実行結果をみてみます。以下のログから、rubyスクリプトはレシピ内のリソースが実行されるよりも前に、コンパイル時に実行されていることがみてとれます。converge実行時のログで確認しています。(2m28.78s).ではrubyスクリプトをリソースが実行されるタイミングで実施するにはどうすれば良いか?ということですが、その場合は、ruby_blockリソースを利用します。例にあげたコードのrubyスクリプトの実行箇所を以下に書き換えます。endend実行結果は以下になります。ruby_blockリソースにrubyスクリプトを含めることで、コンパイル後のリソースの実行時に、rubyスクリプトが実行されていることがわかります。(0m7.78s).Notifications(Timersに[:delayed]指定)テストコード上で以下の通り、packageリソース内にnotifiesを利用してリソース実行時にserviceリソースへ通知して、apacheの再起動を実施しています。ここで説明したいのは「:delayed」の記述です。restart)が最後に行われていることがわかります。このように「:delayed」を指定すると、全リソース実行の一番最後に処理が行われます。(2m28.78s).通知元のリソースが実行された直後に通知先のリソースを実行したい場合は、「:immediately」を利用します。以下実行時の結果です。restart)が行われていることがわかります。(1m3.71s).最後にchefの実行サイクルに関してご紹介させていただきました。初めに実行サイクルや、Notificationsの実行タイミングを押さえておくと、処理の順番を意図的に操作するときに便利です。読んでいただきありがとうございました。BalancerのLoadBalancerNameの説明がよく分からない。その1)Gitのクライアント側で、リモートのmaster,developヘのpushを阻止する。■お手軽な冗長構成の構築NRPEを利用した踏み台サーバ経由の監視Windows7環境にLinuxコマンド環境を作ってみた。#2EC2サーバのトラフィックをレスポンシブに見る方法NginxのチューニングとFastCGIcacheの設定Ghostを利用してみた。WrodPressを動かそうGHOSTをインストールしてみた。FAX:06-6231-8897認証範囲はこちらをご覧ください。