httpd
Роль Ansible httpd
Простая роль Ansible для установки и настройки веб-сервера Apache на RHEL/CentOS 7. В частности, обязанности данной роли включают:
- Установку необходимых пакетов;
- Поддержку основного конфигурационного файла;
- Поддержку конфигурационного файла для
mod_ssl
. Настройки по умолчанию основаны на рекомендациях Генератора конфигурации SSL от Mozilla; - Установку пользовательских файлов сертификатов;
- Включение и поддержку конфигурационного файла для
mod_status
.
Виртуальные хосты и другие функции не предусмотрены. Другие роли, если добавлены, будут создавать виртуальные хосты по мере необходимости и добавлять дополнительные модули.
Требования
- Настройки брандмауэра не учитываются в этой роли. Вы можете использовать другую роль для этого, например, clusterapps.rh-base.
Зависимости
Зависимостей нет.
Переменные роли
Никакие из перечисленных ниже переменных не являются обязательными.
Переменная | По умолчанию | Примечания |
---|---|---|
httpd_access_log |
logs/access_log | Путь к файлу журнала доступа (http) |
httpd_access_log_ssl |
logs/ssl_access_log | Путь к файлу журнала доступа (https) |
httpd_document_root |
'/var/www/html' | Путь к корневой папке (директории, содержащей html файлы) |
httpd_error_log |
logs/error_log | Путь к файлу журнала ошибок (http) |
httpd_error_log_ssl |
logs/ssl_error_log | Путь к файлу журнала ошибок (https) |
httpd_extended_status |
on | Включить расширенную информацию о статусе (см. httpd_status_enable ) |
httpd_listen_ssl |
443 | Номер порта для https соединений |
httpd_listen |
80 | Номер порта для http соединений |
httpd_log_level_ssl |
warn | Уровень детализации журнала https |
httpd_log_level |
warn | Уровень детализации журнала http |
httpd_server_admin |
root@localhost | Адрес электронной почты администратора сервера |
httpd_server_name |
- | Имя хоста, которое сервер использует для самовидимости |
httpd_server_root |
'/etc/httpd' | Директория, содержащая конфигурационные файлы |
httpd_server_tokens |
Prod | См. документацию |
httpd_ssl_ca_certificate_file |
- | Имя файла сертификата CA. См. ниже, Установка сертификатов |
httpd_ssl_certificate_chain_file |
- | Имя файла цепочки сертификатов. См. ниже, Установка сертификатов |
httpd_ssl_certificate_file |
localhost.crt | Имя файла сертификата. См. ниже, Установка сертификатов |
httpd_ssl_certificate_key_file |
localhost.key | Имя файла ключа сертификата. См. ниже, Установка сертификатов |
httpd_ssl_cipher_suite |
... | См. переменные по умолчанию |
httpd_ssl_compression |
'off' | При 'on' включает сжатие на уровне SSL (что может вызвать проблемы с безопасностью) |
httpd_ssl_honor_cipher_order |
'on' | При 'on' отдает предпочтение порядку предпочтений шифрования сервера вместо клиента |
httpd_ssl_protocol |
'all -SSLv3 -TLSv1' | Указывает используемые версии протоколов SSL/TLS |
httpd_ssl_session_tickets |
'off' | При 'on' включает использование тикетов сеансов TLS (что может вызвать проблемы с безопасностью) |
httpd_ssl_stapling_cache |
'shmcb:/var/run/ocsp(128000)' | Настраивает кэш OCSP стаплинга (1) |
httpd_ssl_stapling_responder_timeout |
5 | Тайм-аут для запросов OCSP стаплинга (1) |
httpd_ssl_stapling_return_responder_errors |
'off' | При 'on' передает ошибки OCSP, связанные со стаплингом, клиенту (1) |
httpd_ssl_use_stapling |
'on' | При 'on' включает стаплинг ответов OCSP в процессе рукопожатия TLS (1) |
httpd_status_enable |
false | Включить mod_status |
httpd_status_location |
'/server-status' | Путь к странице статуса mod_status |
httpd_status_require |
'host localhost' | Контроль доступа для mod_status |
(1) Для получения дополнительной информации о протоколе статуса сертификатов в режиме онлайн (OCSP) стаплинга см. документацию Apache и раздел "Запрос статуса сертификата" RFC 6066.
Установка сертификатов
По умолчанию роль использует самоподписанный сертификат, который генерируется при установке mod_ssl
. Если вы хотите использовать пользовательский сертификат, поместите его в подкаталог с именем files/
, относительно вашего основного местоположения playbook. Затем установите соответствующие переменные роли. Для получения инструкций о том, как настроить свои собственные (самоподписанные) сертификаты, см. например, CentOS Wiki.
Например, у вас есть серверный ключ acme-inc.key
и файл сертификата acme-inc.crt
. Структура каталога должна выглядеть так:
.
├── playbook.yml
└── files
├── acme-inc.crt
└── acme-inc.key
Затем определите переменные роли в соответствующем месте (раздел vars:
playbook, group_vars
или host_vars
):
httpd_ssl_certificate_key_file: 'acme-inc.key'
httpd_ssl_certificate_file: 'acme-inc.crt'
То же самое касается файла цепочки сертификатов и файла сертификата CA. Убедитесь, что они доступны в каталоге files/
, и определите переменные httpd_ssl_certificate_chain_file
и httpd_ssl_ca_certificate_file
соответственно.
Пример Playbook
Скоро.
Тестирование
Скоро.
Участие
Вопросы, запросы на функции, идеи приветствуются и могут быть отправлены в разделе "Issues".
Запросы на изменение также очень приветствуются. Лучший способ отправить PR - это сначала создать форк этого проекта на Github, затем создать тему ветки для предложенного изменения и отправить эту ветку в свой форк. Затем Github может легко создать PR на основе этой ветки.
Лицензия
Лицензия BSD на 2 пункта, см. LICENSE.md.
Участники
Первоначальные участники:
- Bert Van Vreckem (сопредседатель)
- Richard Marko
- Lander Van den Bulcke
ansible-galaxy install clusterapps/ansible-role-httpd