apache
Ansible Роль: Apache
Устанавливает и настраивает Apache.
Требования
Нет.
Переменные роли
Доступные переменные перечислены ниже, см. defaults/main.yml
для значений по умолчанию.
apache_use_ppa: false
Чтобы использовать PPA репозиторий для установки Apache, установите переменную 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'
Значения по умолчанию для настройки сайта показаны выше. Добавьте любые из этих атрибутов, чтобы переопределить их значение.
Зависимости
Нет.
Пример Playbook
- hosts: server
become: yes
tasks:
- import_role:
name: damianlewis.apache
ansible-galaxy install damianlewis/ansible-role-apache