Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Ansible ====== * [[https://opensource.com/article/19/2/ansible-windows-admin]] * [[https://blog.stephane-robert.info/post/introduction-ansible/|Apprendre et Maitriser Ansible l'outil de gestion de configuration]] * [[https://blog.microlinux.fr/formation-ansible-02-labo/|Ansible par la pratique (2) – Un labo pour Ansible]] et le [[https://gitlab.com/kikinovak/rocky-9-ansible|dépôt correspondant]] * https://pyinfra.com ==== Syntaxe globale ==== <code yaml playbook.yml> - hosts: all tasks: - name: echo coucou shell: echo "coucou" - name: set ip become: yes shell: | echo "ip ok" </code> ==== Inclure des variables ==== Dans une //task//: <code yaml playbook.yml> - name: include vars include_vars: file: vars.yaml </code> Le fichier //vars.yaml// contient la définition des variables, sous la forme d'un dictionnaire : <code yaml vars.yaml> var1: value1 var2: value2 </code> Les variables sont ensuite accessibles par ''<nowiki>{{ var1 }}</nowiki>''. ==== Tasks ==== === Définir l'IP === <code yaml playbook.yml> - name: set ip become: yes shell: | EXIST=`ip route show 172.21.0.0 | wc -l` if [ $EXIST -eq 0 ] then ip addr add {{ ip }}/16 dev eth1 ip route change default via 172.21.255.254 fi </code> === Définir le DNS === <code yaml playbook.yml> - name: set dns become: yes lineinfile: path: /etc/resolv.conf regexp: '^nameserver ' line: 'nameserver 10.210.18.138' firstmatch: yes </code> === S'assurer que la dernière version de Nginx est installée === <code yaml playbook.yml> - name: ensure nginx is at the latest version become: yes apt: name=nginx state=latest </code> === S'assurer que le service Nginx est lancé === <code yaml playbook.yml> - name: start nginx become: yes service: name: nginx state: started </code> === Importer un fichier template === De l'hôte vers l'invité, en remplaçant des variables par des valeurs : <code yaml playbook.yml> - name: adapt flag of website become: yes template: src: index.html dest: /var/www/html/index.html </code> Dans //index.html//, la variable est définie entre doubles accolades. === Utilisation de become qui ne fonctionne pas === * https://docs.ansible.com/ansible/latest/user_guide/become.html#risks-and-limitations-of-become Pour utiliser ''become'', il faut que le paquet ''acl'' soit installé sur le système cible. S'il n'y pas de tâches qui font des transferts de fichiers ou utilisent des modules non-Python, utiliser le pipelining SSH suffit (les commandes à exécuter sont directement pipées dans le Python de la machine cible) : <code cfg ansible.cfg> [ssh_connection] pipelining = true </code> ansible/accueil.txt Dernière modification : 2024/09/07 18:57de phsw