2.6. 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 のエスケープ文字が含まれる点です。たとえば、Web サーバーポートを指定するために使用する httpd_port などがあります。

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 パッケージがインストールされていることを確認します。
  • この /etc/httpd/conf.d/myserver.conf ファイルの content は、以前に作成した 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 サーバーディレクトリーの作成が表示されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.