2.9. Web ホストへの HTML ファイルのコピー
これで、HTTP サーバー設定が完了しました。これにより、Web ベースのアプリケーションをインストールするプラットフォームが提供され、Puppet も設定することができます。ただし、この例では、簡単なインデックス 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 サーバーにコピーされることを示しています。