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_path
とapache_lock_path
変数を使用して、テンポラリーステートファイルの場所に使用するデフォルト値をオーバーライドします。apache_run_path
のデフォルトは/var/run/apache2
、apache_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
変数を使用してサイトを追加および設定します。サイトに必要な属性はhostname
とroot
フォルダーへのパスのみです。オプションでサーバー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