2.5 KiB
Bonnes pratiques
Rester simple !
Rester clair !
-
Apporter tout le soin nécessaire à la lisibilité du code Ansible.
-
Nommer toujours vos Plays et Tasks de manière précise et significative.
-
Privilégiez la syntaxe YAML native.
(Pas de :name=httpd state=started enabled=yes
) -
Ainsi fait, le code Ansible peut devenir la documentation de référence de votre workflow.
Penser "déclaratif"
-
Ansible permet de décrire un état désiré.
-
Si vous essayez d'écrire du code dans vos playbooks et rôles, vous augmentez le risque d'échec.
-
Utilisez prioritairement les Modules Ansible chaque fois que c'est possible.
Utiliser les Roles
-
Utilisez les Roles !
-
Ils permettent un très bon découpage du code Ansible.
-
Ils permettent de gérer des variables par défaut pour les composants.
Attention aux variables !
-
Ansible permet de déclarer des variables dans une grande variété d'emplacements. Il devient facile de s'y perdre !
-
Évitez de trop disperser les déclarations de variables dans le code Ansible.
-
Limitez les déclarations de variables à deux ou trois emplacements clés :
- variables de groupes
- variables de rôles
-
Documenter précisément les variables que vous déclarez dans votre code Ansible.
Eviter autant que possible les Modules "Commands"
-
Les modules de commandes génériques tels que
shell
oucommand
peuvent conduire à certains dysfonctionnements. En effet les commandes Shell :-
ne sont pas toujours idempotentes.
-
s'exécuteront toujours et retourneront l'état
changed
(à moins de spécifierchanged_when
).
-
-
Les modules plus spécifiques sont souvent prévus pour être agnostique du système d'exploitation, ce qui permet d'augmenter la ré-utilisabilité du code.
Eviter le module "lineinfile"
-
Utiliser les modules
copy
outemplate
plutôt quelineinfile
oureplace
-
Pas besoin de connaître la syntaxe
regex
. -
Permet de contrôler exactement le contenu du fichier final.
-
Créer des fichiers d’inventaires séparés
- Si vous devez gérer plusieurs environnements, créez des fichiers d'inventaires séparés afin d'éviter les problèmes !
Les bonnes pratiques selon Ansible
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
Autres bonnes pratiques
https://www.serverraumgeschichten.de/2018/04/ansible-best-practices/