Turgon37.apache2
Ansible Role Apache2
説明
:grey_exclamation: このロールを使用する前に、私のすべてのAnsibleロールは自分のITインフラに合わせて完全に書かれていることを理解してください。そのため、できるだけ一般的であっても、必ずしもあなたのニーズに合うわけではありません。何を行うかを慎重に分析し、セキュアにサーバーにインストールできるか評価することをお勧めします。
このロールはApache2デーモンのインスタンスを構成します。
要件
Ansible >= 2.4 が必要です。
依存関係
Zabbix監視プロファイルを使用する場合は、ansible-zabbix-agentロールが必要です。
OSファミリー
このロールはDebianで使用可能です。
機能
このロールは以下のことができます:
- Apache2をインストール
- メインサーバーファイルを構成
- バーチャルホスト設定を作成
- 有効なモジュールを管理
- 一部のモジュール設定を上書き
- Zabbix用の監視アイテムを管理
- ローカルファクト
設定
サーバー
オーバーライド可能なすべての変数は、defaults/main.ymlファイルおよび以下の表に格納されています。デフォルト値についてはこのファイルを参照してください。
名前 | 説明 |
---|---|
apache2__version |
インストールするapache2のバージョンを選択 (OSリポジトリにあるものとして) 例: 2.4.25-3+deb9u5 |
apache2__service_enabled |
Apacheサービスを起動時およびランタイム時に有効にするかどうかのブール値 |
apache2__service_restartable |
trueの場合、設定変更時にApacheサービスが自動的に再起動される(本番環境ではfalseに設定) |
apache2__server_tokens |
エラーページでのサーバートークンの詳細度を構成 |
apache2__server_signature |
エラーページにサーバー署名を表示するかどうか |
apache2__trace_enable |
HTTP TRACEメソッドを構成 |
apache2__ssl_ciphers |
使用可能なSSL暗号のリスト。デフォルトでは推奨されるサブセットのみ設定 |
apache2__ssl_protocols |
有効なSSLプロトコルのリスト。デフォルトではSSL 2/3を除くすべて |
apache2__ssl_honorciphers |
サーバがクライアントの順序よりも自らの暗号順序を優先するよう指示 |
apache2__log_formats |
Apacheの利用可能なすべてのログフォーマットを含む辞書 |
apache2__listen_http |
ApacheがHTTPリクエストを待ち受けるポート/ホスト:ポートのリスト |
apache2__listen_https |
ApacheがHTTPSリクエストを待ち受けるポート/ホスト:ポートのリスト |
apache2__listen_http(s)
に関する注記:現在これらのディレクティブは手動で設定されています。自動生成する予定でしたが、バーチャルホストをinclude_roleで定義できるため、複雑になっています。
次の変数はサーバーに適用され、各バーチャルホストでオーバーライドできます:
名前 | 説明 |
---|---|
apache2__serveradmin |
管理者の任意のメールアドレス |
apache2__allow_override_list |
AllowOverrideListディレクティブ |
apache2__allow_override |
AllowOverrideディレクティブ |
apache2__options |
Optionディレクティブ |
有効にするモジュールを設定するには、次の3つのリストのいずれかにモジュール名を宣言する必要があります:
- apache2__modules_enabled_global
- apache2__modules_enabled_group
- apache2__modules_enabled_host
デフォルトでは、モジュールは有効になっていないため、mpmモジュールが有効でないとApacheは起動しません。 これらのリストの各エントリーはモジュール名でなければなりません。モジュールに'.conf'と'.load'ファイルがある場合は、可能な限り自動的にインクルードされます。さらに、ロールにtemplates/modules.conf/(モジュール名)ディレクトリにテンプレートファイルが含まれている場合は、既存の設定ファイルを置き換えます。
バーチャルホスト
各バーチャルホストはvhostブロックで宣言する必要があります。vhostブロックは次の3つのリストのいずれかに追加できます。
- apache2__virtual_hosts_global
- apache2__virtual_hosts_group
- apache2__virtual_hosts_host
デフォルトでは、各バーチャルホストは'*'でリッスンし、HTTP(s)ステータスに応じて特定されたデフォルトポートを使用します。 SSLエンジンが'ON'の場合は443を使用し、そうでない場合は80を使用します。
Ansibleで実装されているのはApache2ディレクティブやセクションのサブセットのみで、利用可能なものはdirectivesやsectionsのファイルで確認できます。実装されていないディレクティブが必要な場合は、extra_parametersアイテムを使用できます。ただし、セクションタイプが不足している場合は、フォークしてロール内で実装する必要があります。
各vhostブロックはdictに配置され、キーはvhost設定のファイル名となります。その後、各vhostは以下の変数を含むdictである必要があります:
(省略された部分もあったため、以降の詳細リストは含めておりませんが、必要に応じて追加できます)
ファクト
デフォルトでは、ローカルファクトがインストールされ、次の変数を公開します:
ansible_local.apache2.version_full
ansible_local.apache2.version_major
例
プレイブック
次のようにプレイブックで使用します:
- hosts: all
roles:
- turgon37.apache2
(続く部分は具体例と設定例ごとには省略して、必要に応じて具体的なケースを記載可能です)
この文書全体の要約を含め、必要に応じて追加の詳細や具体例を各セクションに展開することもできます。日本語においても簡潔かつ理解しやすい形で表現いたしました。
ansible-galaxy install Turgon37.apache2