Menu Close
2.6. Apache HTTP サーバーの設定
これで、HTTP サーバーがインストールされ、有効化されました。次の手順では、いくつかの設定を提供します。HTTP サーバーには、ポート 80 に Web サーバーを提供する /etc/httpd/conf/httpd.conf にすでにデフォルト設定が含まれています。ユーザー指定のポートに追加の Web サーバーを提供するため、追加の設定を追加します。
ユーザー定義のポートには変数入力が必要なため、テンプレートファイルを使用して設定コンテンツを保存します。このモジュールで templates という名前のディレクトリーを作成し、新しいディレクトリーに myserver.conf.erb というファイルを追加します。以下の内容をファイルに追加します。
Listen <%= @httpd_port %> NameVirtualHost *:<%= @httpd_port %> <VirtualHost *:<%= @httpd_port %>> DocumentRoot /var/www/myserver/ ServerName <%= @fqdn %> <Directory "/var/www/myserver/"> Options All Indexes FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost>
このテンプレートは、Apache Web サーバー設定の標準構文に準拠します。唯一の違いは、モジュールから変数を挿入するための Ruby エスケープ文字が含まれる点です。たとえば httpd_port
、Web サーバーポートを指定するのに使用します。
が追加されている点に注意してください。これは fqdn
、システムの完全修飾ドメイン名を保存する変数で、これはシステムファクトとして知られています。システムファクトは、該当システムの Puppet カタログを生成する前に各システムから収集されます。Puppet は facter
コマンドを使用して、これらのシステムファクトを収集します。また、これらのファクトの一覧を表示 facter
するには、を実行します。
httpd.pp マニフェストを編集し、ハイライトされた行を追加します。
class mymodule::httpd { package { 'httpd': ensure => installed, } service { 'httpd': ensure => running, enable => true, require => Package["httpd"], } file {'/etc/httpd/conf.d/myserver.conf': notify => Service["httpd"], ensure => file, require => Package["httpd"], content => template("mymodule/myserver.conf.erb"), } file { "/var/www/myserver": ensure => "directory", } }
これにより、以下の操作が実行されます。
- サーバー設定ファイル /etc/httpd/conf.d/myserver.conf のファイルリソース宣言を追加します。
-
notify ⇒ Service["httpd"]
属性を使用して、設定ファイルとhttpd
サービスの間の関係を追加します。これにより、設定ファイルに変更がチェックされます。ファイルが変更された場合には、Puppet はサービスを再起動します。 - このファイルを追加する前に、httpd パッケージがインストールされていることを確認します。
-
content
この /etc/httpd/conf.d/myserver.conf ファイルは、以前に作成した myserver.conf.erb テンプレートです。 - 2 番目のファイルリソース宣言を追加します。これにより、Web サーバーの /var/www/myserver/ ディレクトリーが作成されます。
メインマニフェストファイルに httpd_port
パラメーターを含める必要もあります。init.pp マニフェストを編集し、以下のテキストを太字で追加します。
class mymodule ( $httpd_port = 8120 ) { include mymodule::httpd }
これにより、httpd_port
パラメーターのデフォルト値が 8120 に設定されます。この値は Satellite Server で上書きできます。
puppet apply
コマンドを再度実行して、モジュールへの変更をテストします。
# puppet apply mymodule/tests/init.pp --noop ... Notice: /Stage[main]/Mymodule::Httpd/File[/var/www/myserver]/ensure: current_value absent, should be directory (noop) ... Notice: /Stage[main]/Mymodule::Httpd/File[/etc/httpd/conf.d/myserver.conf]/ensure: current_value absent, should be file (noop) ...
この出力通知メッセージには、設定ファイルと Web サーバーディレクトリーの作成が表示されます。