Menu Close

2.9. HTML ファイルの Web ホストへのコピー

Apache HTTP Server 設定を変更します。これにより、Puppet が設定できる Web ベースのアプリケーションをインストールするプラットフォームが提供されます。ただし、この例では、単純なインデックス Web ページを Web サーバーにコピーするだけです。

files ディレクトリーに index.html という名前の ファイル を作成します。以下の内容をファイルに追加します。

<html>
  <head>
    <title>Congratulations</title>
  <head>
  <body>
    <h1>Congratulations</h1>
    <p>Your puppet module has correctly applied your configuration.</p>
  </body>
</html>

manifests ディレクトリーに app.pp という名前のマニフェスト を作成します。以下の内容をファイルに追加します。

class mymodule::app {
  file { "/var/www/myserver/index.html":
    ensure => file,
    mode   => '755',
    owner  => root,
    group  => root,
    source => "puppet:///modules/mymodule/index.html",
    require => Class["mymodule::httpd"],
  }
}

この新規クラスには単一のリソース宣言が含まれます。この宣言により、モジュールのファイルディレクトリーから Puppet Server からシステムにコピーされ、パーミッションが設定されます。さらに、require 属性を適用する前に mymodule::httpd クラスの設定が正常に完了し mymodule::appます。

最後に、この新しいマニフェストをメインの init.pp マニフェストに追加します。

class mymodule (
  $httpd_port = 8120
) {
  include mymodule::httpd
  include mymodule::app
}

puppet apply コマンドを再度実行して、モジュールへの変更をテストします。出力は以下のようになります。

# puppet apply mymodule/tests/init.pp --noop
....
Notice: /Stage[main]/Mymodule::App/File[/var/www/myserver/index.html]/ensure: current_value absent, should be file (noop)
...

この出力通知メッセージは、index.html ファイルが Web サーバーにコピーされることを示しています。