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 サーバーにコピーされることを示しています。