ansible-role-apache-vhosts
Ansible Роль: Apache vhosts
Цель
Я использую роль geerlingguy.apache вместе с ролями jdauphant.nginx и viasite-ansible.site.
Роль jdauphant.nginx управляет сайтами в отдельных файлах и поддерживает явное удаление сайтов.
Geerlingguy комментировал цель единственного vhosts.conf.
Роль viasite-ansible.site выполняет сложную настройку сайтов: создание пользователей, настройка nginx, apache, mysql и т. д. Каждый сайт функционирует как отдельная роль, поэтому мне тоже нужны отдельные apache vhosts.
Эта роль позволяет использовать geerlingguy.apache другим способом.
Другие роли "apache-vhosts", которые я нашел, делают то же, что и viasite-ansible.site: они тоже сложные.
Особенности
- Добавление сайтов с несколькими плейбуками
- Явное удаление сайтов
- Каждый сайт может иметь отдельный шаблон
Ограничения
- только Debian, Ubuntu и CentOS
- нет SSL (мы настраиваем SSL на nginx)
Проблемы приветствуются!
Использование
Перед использованием этой роли вы должны установить apache с помощью роли geerlingguy.apache или другим способом.
Некоторые имена и значения переменных совпадают с ролью geerlingguy (см. директории default и vars). Так что, вам не нужно определять их дважды.
Добавление сайтов:
Определение сайта также выглядит похоже:
apache_vhosts_sites:
www.local.dev:
servername: "www.local.dev"
serveralias: "local.dev"
documentroot: "/var/www/html"
extra_parameters: |
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Сравнение с geerlingguy:
apache_vhosts_sites:
- servername: "www.local.dev"
serveralias: "local.dev"
documentroot: "/var/www/html"
extra_parameters: |
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Пользовательский шаблон для сайта:
apache_vhosts_sites:
www.local.dev:
servername: "www.local.dev"
template: "custom.conf.j2"
Удаление сайтов:
apache_vhosts_remove_sites:
- www.local.dev
Пример плейбука
- hosts: all
roles:
- viasite-ansible.apache-vhosts
vars:
apache_vhosts_sites:
foo:
servername: "local.dev"
documentroot: "/var/www/html"
bar:
servername: "local2.dev"
documentroot: "/var/www/html"
templated_site:
template: tests/custom_template.conf.j2
servername: "other.dev"
somevariable: "somevalue"
apache_vhosts_remove_sites:
- baz
ansible-galaxy install pulse-mind/ansible-role-apache-vhosts