56
packageブロックでNGINXをインストールします。serviceブロックは、NGINXが開始
されて起動時に有効になっていることを確認し、その後残りのChefに対し、nginxサー
ビスがどのようなアクションをサポートするか残りのChefに宣言します。templateブロッ
クはERBファイルをテンプレートとし、ファイル の所有者とグループをrootにしてその
ファイル を/etc/nginx.conf に 配 置 し ま す 、ま た 、templateブロックはmodeを644に設定
して、nginxサービスにリロードするよう通知しますが、:delayedステートメントにより
Chef実行の終了が宣言されるまで待機します。テンプレート化された構成ファイルは
含 ま れ ま せ ん 。デ フ ォ ル ト の NGINX構成ファイルをインストールするシンプルなもの
や、ERBテンプレートのループや変数置換により複雑になるものもあります。
解説
Chefは、Rubyをベースにした構成管理ツールです。クライアント サーバー構成で実行す
ることも、Chef Zeroとして 知られ る単 独の 構 成 で も 実 行 できます。Chefに は 、パ ブ リ ッ
クのクックブックや、スーパーマーケットと呼ばれる非常に大きなコミュニティがありま
す。スーパーマーケットによるパブリッククックブックはBerkshelfと呼ばれるコマンドラ
インユーティリティを使ってインストール/保 守 可能 です。Chefは非常に多機能であり、
ここに示したのはほんの小さなサンプルです。スーパーマーケットのパブリックNGINX
クックブックは柔軟性が高く、パッケージマネージャーまたはソースからNGINXを簡単
にインストールするオプションや多数の異なるモジュールをコンパイルしてインストール
する機能、そして基本構成をテンプレート化する機能を提供します。
関連項目
Chef ドキュメンテーション
Chef パッケージ
Chef サービス
Chef テンプレート
Chef Supermarket for NGINX
5.6 Ansibleを使ったインストール
問題
Ansibleを 使 用して NGINXをインストール、構成し、NGINX構 成 をコ ードとして 管 理し 、
その他のAnsible構 成に準 拠する必 要があります。
解決法
Ansibleプレイブックを作成して、NGINXをインストールしてnginx.conf ファイルを管 理
し ま す。以 下 が 、NGINXをインストールするプレイブックのためのタスクファイルの一
例です。構成ファイルがテンプレートになっていること、NGINXが 実行されていること
を 確 認してくだ さい 。
| 第5章:プログラマビリティと自動化