apache2

Роль weareinteractive.apache2 для Ansible

Статус сборки Galaxy Теги GitHub Звезды GitHub

weareinteractive.apache2 — это роль для Ansible, которая:

  • устанавливает apache2
  • настраивает apache2
  • включает/выключает конфигурации
  • создает сайты
  • включает/выключает сайты
  • включает/выключает модули
  • опционально удаляет хост по умолчанию
  • добавляет правила
  • настраивает сервис

Примечание:

Поскольку Ansible Galaxy теперь поддерживает организации, эта роль была перенесена с franklinkim.apache2 на weareinteractive.apache2!

Установка

С помощью ansible-galaxy:

$ ansible-galaxy install weareinteractive.apache2

С помощью requirements.yml:

- src: weareinteractive.apache2

С помощью git:

$ git clone https://github.com/weareinteractive/ansible-apache2.git weareinteractive.apache2

Зависимости

  • Ansible >= 2.4

Переменные

Вот список всех переменных по умолчанию для этой роли, которые также доступны в defaults/main.yml.

---
# apache2_packages:
#   - apache2
#   - apache2-mpm-prefork
# apache2_module:
#   - { id: auth, state: absent }
#   - { id: rewrite, state: present }
# apache2_confs:
#   - { id: security, state: absent }
#   - { name: mime, state: present }
#   - id: my_config
#     state: present
#     template: path/to/template.j2
# apache2_sites:
#   - id: mysite (обязательно)
#     name: mysite.local (обязательно)
#     ip: '*'
#     port: 80
#     state: present
#     add_webroot: no
#     template: path/to/template.j2
#     rules: []
#     aliases: []
#     redirects: []
#     ssl:
#       port: 443
#       key_name: mykey
#       cert_name: mycert
#       chain_name: mychain
#     auth:
#       name: mysite
#       file: mysite
#     append: ''
#

# пакеты (версии)
apache2_packages:
  - apache2
# порты для прослушивания
apache2_ports: [80]
# порты ssl для прослушивания
apache2_ssl_ports: [443]
# адреса для прослушивания (только 2.2)
apache2_listen_addresses: ['*']
# включенные/выключенные модули
apache2_modules: []
# включенные/выключенные конфигурации
apache2_confs: []
# включенные/выключенные сайты
apache2_sites: []
# где находятся корневые директории документов (по умолчанию /var/www означает /var/www/<SiteId>/htdocs)
apache2_sites_basedir: /var/www
# файл шаблона сайта по умолчанию
apache2_sites_template: etc/apache2/sites-available/site.j2
# удалить хост по умолчанию
apache2_remove_default: no
# запуск при загрузке
apache2_service_enabled: yes
# текущее состояние: started, stopped
apache2_service_state: started
# установить одно из: Full | OS | Minimal | Minor | Major | Prod
apache2_server_tokens: Prod
# установить одно из: On | Off | EMail
apache2_server_signiture: 'Off'
# установить одно из: On | Off | extended
apache2_trace_enable: 'Off'
# путь к сертификатам
apache2_certs_path: /etc/ssl/certs
# путь к ключам
apache2_keys_path: /etc/ssl/private

Обработчики

Это обработчики, которые определены в handlers/main.yml.

---

- name: проверить и перезапустить apache2
  command: apache2ctl configtest
  notify: перезапустить apache2

- name: проверить и перезагрузить apache2
  command: apache2ctl configtest
  notify: перезагрузить apache2

- name: перезапустить apache2
  service: name=apache2 state=restarted
  when: apache2_service_state != 'stopped'

- name: перезагрузить apache2
  service: name=apache2 state=reloaded
  when: apache2_service_state != 'stopped'

Правила

Некоторые фрагменты конфигурации, полученные из HTML 5 Boilerplate, будут скопированы в /etc/apache2/rules, которые затем можно использовать в ваших конфигурациях vhost (см. использование ниже).

  • сжатие
  • преобразование содержимого
  • cors
  • cors_images
  • cors_timing
  • cors_web_fonts
  • etag
  • истечение срока действия
  • конкатенация файлов
  • кэширование на основе имени файла
  • ie_cookies
  • ie_edge
  • mimes
  • безопасность доступа к файлам
  • безопасность хостов
  • безопасность mime
  • безопасность подписи
  • безопасность технологий
  • ssl
  • utf8

Использование

Вот пример playbook:

---
# этот пример использует связанные роли:
#
# - weareinteractive.apt  (https://github.com/weareinteractive/ansible-apt)
# - weareinteractive.openssl  (https://github.com/weareinteractive/ansible-openssl)
# - weareinteractive.htpasswd (https://github.com/weareinteractive/ansible-htpasswd)

- hosts: all
  become: yes
  roles:
    - weareinteractive.apt
    - weareinteractive.openssl
    - weareinteractive.htpasswd
    - weareinteractive.apache2
  vars:
    htpasswd:
      - name: foobar
        users:
          - { name: foobar, password: foobar }
    apache2_modules:
      - { id: ssl, state: present }
      - { id: mime, state: present }
      - { id: headers, state: present }
      - { id: rewrite, state: present }
    apache2_remove_default: yes
    openssl_generate_csr: yes
    openssl_self_signed:
      - name: 'foobar.local'
        country: 'DE'
        state: 'Бавария'
        city: 'Мюнхен'
        organization: 'Foo Bar'
        unit: 'Подразделение Foo Bar'
        email: '[email protected]'
    apache2_sites:
      - id: foobar
        state: present
        name: foobar.local
        rules:
          - mimes
          - expires
          - сжатие
        add_webroot: yes
        auth:
          name: Foo Bar
          file: foobar
        ssl:
          key_name: foobar.local
          cert_name: foobar.local

Тестирование

$ git clone https://github.com/weareinteractive/ansible-apache2.git
$ cd ansible-apache2
$ make test

Участие

Вместо формального стиля программирования, заботьтесь о поддержании существующего стиля кода. Добавляйте модульные тесты и примеры для любой новой или измененной функциональности.

  1. Создайте свой форк
  2. Создайте свою ветку функции (git checkout -b my-new-feature)
  3. Зафиксируйте ваши изменения (git commit -am 'Добавить новую функцию')
  4. Отправьте на ветку (git push origin my-new-feature)
  5. Создайте новый Pull Request

Примечание: Чтобы обновить файл README.md, пожалуйста, установите и запустите ansible-role:

$ gem install ansible-role
$ ansible-role docgen

Лицензия

Copyright (c) We Are Interactive по лицензии MIT.

О проекте

Installs and configures apache2

Установить
ansible-galaxy install weareinteractive/ansible-apache2
Лицензия
mit
Загрузки
15830
Владелец