damianlewis.apache

Ansibleロール: Apache

Apacheをインストールして設定します。

要件

なし。

ロール変数

利用可能な変数は以下の通りです。デフォルト値についてはdefaults/main.ymlを参照してください。

apache_use_ppa: false

ApacheをインストールするためにPPAリポジトリを使用するには、apache_use_ppa変数をtrueに設定します。

apache_user: www
apache_group: www

Apacheが動作するユーザーおよびグループを変更できます。デフォルトでは、Apacheはwww-dataをユーザーとグループの両方に使用します。

apache_timeout: '100'
apache_enable_keepalive: false
apache_max_keepalive_request: '200'
apache_keepalive_timeout: '300'
apache_enable_hostname_lookups: true

Apacheで使用される主要な設定指令の一部は、上記の変数を設定することでオーバーライドできます。

apache_log_path: /path/to/logs
apache_error_log_level: warn

apache_error_log_level変数を使用してエラーログを設定できます。エラーログレベルには、trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,またはemergのいずれかを指定できます。デフォルトでは、エラーログレベルはwarnです。

ログファイルが保存されるデフォルトの場所は、apache_log_path変数を設定することでオーバーライドできます。デフォルトの場所は/var/log/apache2です。

apache_disable_default_site: true

Apacheにインストールされるデフォルトサイトを無効にします。

apache_pid_file: logs/apache.pid

デフォルトのpid指令設定は/var/run/apache2/apache2.pidです。これをオーバーライドするには、apache_pid_file変数を使用します。

apache_run_path: /var/run/apache2
apache_lock_path: /var/lock/apache2

apache_run_pathapache_lock_path変数を使用して、テンポラリーステートファイルの場所に使用するデフォルト値をオーバーライドします。apache_run_pathのデフォルトは/var/run/apache2apache_lock_pathのデフォルトは/var/lock/apache2です。

apache_http_port: '8080'
apache_https_port: '44300'

HTTPとHTTPSに使用するデフォルトポートをオーバーライドするには、apache_http_portおよびapache_https_port変数を使用します。

apache_allow_additional_confs: false

デフォルトでは、Apacheはconf.dまたはconf-enabledフォルダー内の設定ファイルを含めます。これらの追加設定を除外するには、apache_allow_additional_confs変数をfalseに設定します。

apache_modules:
- name: headers
- name: rewrite
- name: ssl
  state: absent

apache_modules変数を使用して、Apacheモジュールを有効/無効にします。name属性は必須で、モジュール名を指定する必要があります。デフォルトでは、リストされたモジュールは有効になります。モジュールを無効にするには、state属性をabsentに設定します。

apache_sites:
- hostname: www.example.com
  root: /var/www/html
  alias: *.example.com

apache_sites変数を使用してサイトを追加および設定します。サイトに必要な属性はhostnamerootフォルダーへのパスのみです。オプションでサーバーaliasを追加できます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  state: absent

デフォルトでは、apache_sites変数に追加されるとサイトが作成されます。サイトを無効/削除するには、state属性をabsentに設定します。

apache_sites:
- hostname: example.com
  root: /var/www/html
  enable_http_to_https_redirect: true

enable_http_to_https_redirect変数を設定して、HTTPリクエストをHTTPSプロトコルにリダイレクトします。SSL証明書が設定されており、ApacheがSSLを使用するように設定されていることを確認してください。

apache_sites:
- hostname: www.sub.example.com
  root: /var/www/subdomain/sub
  virtualhost_directives: |
    ServerPath "/sub/"
    RewriteEngine On
    RewriteRule "^(/sub/.*)" "/var/www/subdomain$1"

追加のバーチャルホスト指令は、virtualhost_directives属性を使用して追加できます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  headers:
  - 'X-Frame-Options "DENY"'
  - 'X-Content-Type-Options "nosniff"'
  - 'X-XSS-Protection "1; mode=block"'

headers属性を使用してサーバーレスポンスヘッダーを追加します。

apache_sites:
- hostname: example.com
  root: /var/www/html
  directories:
  - rule: '/var/www/html'
    block: |
      Options -Indexes +FollowSymLinks +MultiViews
      AllowOverride All
      Require all granted

ディレクトリ指令は、directories属性に追加することで作成できます。ディレクトリのruleを指定し、指令をblockに含めます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  filesmatches:
  - rule: '.+\.ph(p[3457]?|t|tml)$'
    block: |
      SetHandler proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost

FilesMatch指令は、filesmatches属性に追加することで作成できます。正規表現のruleを指定し、指令をblockに含めます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  enable_error_log: true
  error_log_level: warn
  enable_access_log: true
  access_log_format: main

個々のサイト用に別々のログファイルを作成するには、enable_error_logおよびenable_access_log属性をtrueに設定します。error_log_levelおよびaccess_log_format属性を使用してログを設定します。エラーログレベルは、trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,またはemergのいずれかを指定できます。デフォルトのエラーログレベルはwarnです。カスタムアクセスログ形式を使用するには、カスタム形式が存在することを確認してください。デフォルトのアクセスログ形式はcombinedです。

apache_sites:
- hostname: example.com
  root: /var/www/html
  ssl_certificate: /etc/ssl/example.com/certificate.crt
  ssl_certificate_key: /etc/ssl/private/example.com.key
  ssl_certificate_chain: /etc/ssl/example.com/fullchain.pem

HTTPSを使用するには、サーバーにSSL証明書をインストールする必要があります。証明書の場所をssl_certificate属性で指定し、プライベートキーの場所をssl_certificate_key属性で指定します。オプションでフルチェーン証明書をssl_certificate_chain変数を設定して使用できます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  https_virtualhost_directives: |
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLHonorCipherOrder on
    SSLUseStapling on
    SSLCompression off
    SSLSessionTickets off
  https_headers:
  - 'Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"'

追加のSSL指令およびヘッダーは、https_server_directivesおよびhttps_headers属性を使用して追加できます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  server_directives: |
    SSLStaplingCache shmcb:logs/stapling-cache(150000)

追加のサーバー指令は、server_directives属性を使用してバーチャルホストファイルに追加できます。

apache_sites:
- hostname: example.com
  root: /var/www/html
  ip_address: '*'
  http_port: '80'
  https_port: '443'

サイトを構成するために使用されるデフォルト値は上記の通りです。これらの属性をサイトに追加して値をオーバーライドできます。

依存関係

なし。

例プレイブック

- hosts: server
  become: yes

  tasks:
  - import_role:
      name: damianlewis.apache
プロジェクトについて

Installs and configures Apache

インストール
ansible-galaxy install damianlewis.apache
ライセンス
Unknown
ダウンロード
122
所有者