pulse-mind.ansible-role-apache-vhosts
Rola Ansible: Apache vhosts
Cel
Używam roli geerlingguy.apache wraz z rolami jdauphant.nginx i viasite-ansible.site.
Rola jdauphant.nginx zarządza stronami w oddzielnych plikach i wspiera explicite usuwanie stron.
Geerlingguy skomentował cel pojedynczego pliku vhosts.conf.
Rola viasite-ansible.site dokonuje kompleksowej konfiguracji witryn: tworzenie użytkowników, konfiguracja nginx, apache, mysql itd. Każda strona działa jako oddzielna rola, dlatego potrzebuję również oddzielnych vhosts dla apache.
Ta rola pozwala na użycie geerlingguy.apache w inny sposób.
Inne role "apache-vhosts", które znalazłem, robią to samo co viasite-ansible.site: są zbyt skomplikowane.
Funkcje
- Dodawanie stron za pomocą kilku playbooków
- Explicite usuwanie stron
- Każda strona może mieć oddzielny szablon
Ograniczenia
- tylko Debian, Ubuntu i CentOS
- brak SSL (konfigurujemy SSL na nginx)
Problemy są mile widziane!
Użycie
Przed użyciem tej roli musisz zainstalować apache za pomocą roli geerlingguy.apache lub w inny sposób.
Niektóre nazwy i wartości zmiennych odpowiadają roli geerlingguy'a (zobacz katalogi default i vars). Możesz więc nie definiować ich dwa razy.
Dodawanie stron:
Definicja strony jest bardzo podobna:
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]
W porównaniu do geerlingguy'a:
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]
Niestandardowy szablon dla strony:
apache_vhosts_sites:
www.local.dev:
servername: "www.local.dev"
template: "custom.conf.j2"
Usuwanie stron:
apache_vhosts_remove_sites:
- www.local.dev
Przykładowy Playbook
- 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