2.4. HTTP サーバーのインストール

Puppet モジュールは、HTTP サーバーの実行に必要なパッケージをインストールします。これには、httpd パッケージの設定を定義するリソース定義が必要です。

モジュールの manifests ディレクトリーに、httpd.pp という名前の新規のマニフェストファイルを作成します。

# touch mymodule/manifests/httpd.pp

このマニフェストには、モジュールのすべての HTTP 設定が含まれます。組織上の理由から、このマニフェストを init.pp マニフェストから分離します。

以下の内容を新しい httpd.pp マニフェスト追加します。

class mymodule::httpd {
  package { 'httpd':
    ensure => installed,
  }
}

このコードは、httpd と呼ばれる mymodule のサブクラスを定義し、続いて httpd パッケージのパッケージリソース宣言を定義します。ensure ⇒ installed 属性は、パッケージがインストールされているかどうかを確認するよう Puppet に指示します。インストールされていない場合には、Puppet は yum を実行してパッケージをインストールします。

また、メインのマニフェストファイルにこのサブクラスを含める必要があります。init.pp マニフェストを編集します。

class mymodule {
  include mymodule::httpd
}

ここで、モジュールをテストします。以下のコマンドを実行します。

# puppet apply mymodule/examples/init.pp --noop
...
Notice: /Stage[main]/Mymodule::Httpd/Package[httpd]/ensure: current_value absent, should be present (noop)
...

この出力通知メッセージは、ensure ⇒ installed 属性の結果です。current_value absent は、httpd パッケージがインストールされていないことを Puppet が検出したことを意味します。--noop オプションを指定しないと、Puppet は httpd パッケージをインストールします。

puppet apply コマンドは、マニフェスト内の設定をシステムに適用します。メインの init.pp マニフェストを参照するテスト init.pp マニフェストを使用します。--noop は、設定のドライランを実行します。これは出力のみを表示しますが、実際には設定を適用しません。