Ansible : Quirks
Variables Utiles & Quirks divers
Ansible contient des variable globales assez utiles. Il contient également beaucoup de fonctions particulières et part un peu dans tous les sens; cependant, on trouve toujours réponse à ses problèmes.
Ne pas avoir à ajouter l'hôte au fichier known_hosts
Ajouter dans la partie [group:vars]:
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Des caractères spéciaux dans les mots de passe
En cas d'utilisation d'un fichier d'inventaire chiffré contenant des mots de passe, il faut que ceux-ci soient entre simples quotes afin d'éviter que les caractères spéciaux comme $ ne soient interprétés.
blocks
- name: Attempt and graceful roll back demo block: - debug: msg: 'I execute normally' - name: i force a failure command: /bin/false - debug: msg: 'I never execute, due to the above task failing, :-(' rescue: - debug: msg: 'I caught an error' - name: i force a failure in middle of recovery! >:-) command: /bin/false - debug: msg: 'I also never execute :-(' always: - debug: msg: "This always executes"
tags
Il est possible de taguer des tâches afin de "faire du tri". Le but est de pouvoir choisir de n'exécuter par exemple que certains tags (avec --tags), ou de les éviter (avec --skip-tags). Ajouter des tags sur des tâches individuelles est assez simple :
<syntaxhighlight lang='yaml'> tasks: - yum:
name: "Modèle:Item" state: present loop: - httpd - memcached tags: - packages
- template:
src: templates/src.j2 dest: /etc/foo.conf tags: - configuration
</syntaxhighlight>
Bien entendu, on peut appliquer le même tag à plusieurs tâches.
Héritage des tags
L'héritage de tags, c'est le fait d'ajouter à un play, des tâches importées, ou autre... des tags qui seront appliqués à toutes les tâches incluses. Cela se fait avec la syntaxe "tags: " :
<syntaxhighlight lang='yaml'> - hosts: all
tags: - bar tasks: ...
- hosts: all
tags: [ foo ] tasks: ...
</syntaxhighlight>