pulse-mind.ansible-role-apache-vhosts
Rôle Ansible : Apache vhosts
Objectif
J'utilise le rôle geerlingguy.apache avec les rôles jdauphant.nginx et viasite-ansible.site.
Le rôle jdauphant.nginx gère les sites dans des fichiers séparés et le rôle permet de supprimer explicitement les sites.
Geerlingguy a commenté le but d'un seul vhosts.conf.
Le rôle viasite-ansible.site réalise une configuration complexe de site : création d'utilisateur, configuration de nginx, apache, mysql, etc. Chaque site fonctionne comme un rôle séparé, donc j'ai aussi besoin de vhosts apache séparés.
Ce rôle permet d'utiliser geerlingguy.apache différemment.
D'autres rôles "apache-vhosts" que j'ai trouvés font la même chose que viasite-ansible.site : c'est trop complexe.
Caractéristiques
- Ajouter des sites avec plusieurs playbooks
- Supprimer explicitement des sites
- Chaque site peut avoir un modèle séparé
Limitations
- uniquement Debian, Ubuntu et CentOS
- pas de SSL (nous configurons SSL sur nginx)
Les problèmes sont les bienvenus !
Utilisation
Avant d'utiliser ce rôle, vous devez installer apache avec le rôle geerlingguy.apache ou de toute autre manière.
Certains noms de variables et valeurs correspondent au rôle de geerlingguy (voir les répertoires default et vars). Donc, vous n'avez pas besoin de les définir deux fois.
Ajouter des sites :
La définition du site correspond également de près :
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]
Comparé avec celui de 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]
Modèle personnalisé pour le site :
apache_vhosts_sites:
www.local.dev:
servername: "www.local.dev"
template: "custom.conf.j2"
Supprimer des sites :
apache_vhosts_remove_sites:
- www.local.dev
Exemple de 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