Je mets en place un processus de provisioning automatisé pour un serveur Web utilisant Ansible. Pour cela, j’ai un tableau contenant des dictionnaires avec vhosts à configurer:
vhosts: - name: 'vhost1' server_name: 'domain1.com' - name: 'vhost2' server_name: 'domain2.com'
J’ai préparé un modèle avec une configuration générique de nginx vhost:
server { listen 80; server_name {{ item.server_name }}; root /home/www/{{ item.name }}/htdocs; index index.php; location / { try_files $uri $uri/ /index.php?$args; } }
Enfin, j’utilise la tâche suivante pour copier un modèle préparé sur l’hôte cible:
- name: Setup vhosts template: src=vhost.j2 dest=/etc/nginx/sites-available/{{ item.name }} with_items: vhosts
Les tâches itèrent sur la variable vhost
comme prévu. Malheureusement, Ansible ne transmet pas l’élément actuel de l’iterator au modèle, mais le modèle a access à toutes les variables actuellement valides.
Est-il possible de passer l’élément actuel de l’iterator au modèle?
Il s’avère que le code ci-dessus fonctionne parfaitement. il y avait un autre problème dans mes variables fichier YAML.