httpd

Обзор: ansible-role-httpd

Этот ролик настраивает httpd (Apache), конфигурирует любые виртуальные хосты, которые вы определили, и настраивает любые правила переписывания/перенаправления. Я настраиваю свои виртуальные хосты так, как меня научили старшие администраторы, когда я работал в дата-центре. С тех пор я продолжаю следовать этому методу на протяжении всей своей карьеры. Эта настройка субъективна. Возможно, вы не согласны.


Определения переменных

Используйте это, если вы запускаете httpd за балансировщиком нагрузки, таким как ELB или HaProxy. Если установлено в true, скопирует customer_logger.conf в /etc/httpd/conf.d/. Логгер клиента получит заголовок x-forwarded source IP.

httpd_is_behind_loadbalancer: false

Устанавливает корневой каталог документа по умолчанию в /etc/httpd/conf/httpd.conf. Обычно его нужно переопределить для Vagrant, в противном случае оставьте без изменений.

httpd_conf_docrootdir: /var/www/domains

Устанавливает порты, на которых будет прослушивать httpd.

httpd_conf_port: 80
httpd_conf_port_ssl: 443

Включает или отключает директиву keepalive для httpd. Логическое значение для Ansible. Документация

httpd_conf_keepalive_enable: true

Модуль многопроцессности для обработки запросов. Документация

httpd_conf_mpm: prefork # Другие допустимые опции: 'event' и 'worker'

Используйте mod_headers, чтобы устанавливать httponly и secure для всех куки. В этом есть свои последствия. Логическое значение, по умолчанию false. Документация

httpd_conf_securecookies: false

Пример плейбука

---
- hosts: localhost
  connection: local
  become: true
  become_method: sudo

  vars:
    httpd_vhosts_enabled:
      - url: jenkins.philporada.com
        enable_ssl_vhost: false
        #path_to_ssl_ca: /path/to/ca.pem
        #path_to_ssl_cert: /path/to/cert.pem
        #path_to_ssl_key: /path/to/key.pem
        #path_to_ssl_chain: /path/to/bundle.pem
        aliases: []
        serveradmin: [email protected]
        errorlog: "/var/log/httpd/error_log"
        accesslog: "/var/log/httpd/access_log"
        directory: "/var/www"
        docrootdir: public_html
        extra_parameters_main: |
          #
            #RewriteEngine On
          # Переписывает запросы с ELB на https
          # Мы хотим сопоставить с http, а не с отрицательным, !https, из-за сбоев проверки работоспособности при 301 перенаправлении
          #RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
          #RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
        extra_parameters_include: |
          #
          # Это специфично для Vagrant
          #EnableSendfile Off
          # Скрыть данные, связанные с git
          RewriteRule ^(.*/)?\.git+ - [R=404,L]
          RewriteRule ^(.*/)?\.gitignore+ - [R=404,L]

  roles:
    - ansible-roles-httpd
...

Как эффективно работать с этой ролью

Перед выполнением любых тестов вы должны проверить вашу синтаксис с помощью yamllint.

find . -type f -name "*.yml*" | sed "s|\./||g" | egrep -v "(\.kitchen/|\[warning\]|\.molecule/)" | xargs yamllint -f parsable

Вы должны увидеть вывод, подобный следующему, на который можете принять меры или просто игнорировать. Однако вы легко можете заметить, что мы нашли ошибку. Ошибка, вероятно, помешала ansible завершить работу. Обнаружение таких ошибок — это ХОРОШО.

$ find . -type f -name "*.yml*" | sed "s|\./||g" | egrep -v "(\.kitchen/|\[warning\]|\.molecule/)" | xargs yamllint -f parsable
defaults/main.yml:41:121: [warning] строка слишком длинная (127 > 120 символов) (длина строки)
meta/main.yml:7:22: [error] синтаксическая ошибка: здесь не допускаются значения отображения
test/integration/default/default.yml:4:1: [warning] комментарий не отступлен как содержание (отступ комментариев)
test/requirements.yml:2:2: [warning] отсутствует начальный пробел в комментарии (комментарии)

Вам понадобится среда Ruby, чтобы установить гемы для test-kitchen. Мы устанавливаем гемы через bundler.

git clone [email protected]:pgporada/ansible-role-httpd.git
bundle install
bundle update
bundle exec kitchen create
bundle exec kitchen converge
bundle exec kitchen verify
bundle exec kitchen destroy

Теперь вы должны иметь возможность получить доступ к странице по умолчанию, как определено в файле .kitchen.yml.


Музыка

The Skatalites - Ska Ska Ska


Информация об авторе

GPLv3

Phil Porada

О проекте

Installs and configures httpd. Enables programmatic creation of vhosts.

Установить
ansible-galaxy install pgporada/ansible-role-httpd
Лицензия
Unknown
Загрузки
131
Владелец
Just a guy with a computer. 🌞🔒