Wiki-Tech.io/Configuration/Ansible/CLI.md

3.2 KiB

title description published date tags editor dateCreated
Ansible - CLI Comprendre et utiliser les commandes Ansibles true 2021-07-09T07:41:19.292Z commande, ansible, configuration markdown 2021-07-09T07:37:09.124Z

La commande ansible

Informations

  • peu utilisé (en proportion) au profit de ansible-playbook
  • permettre du test (ping, inventaire)
  • permet de jouer des tâches
  • beaucoup d'options similaires à la commande ansible-playbook

Principales options à connaître

  • -u : user distant utilisé
  • -b : passer les commandes en élévation de privilèges (sudo)
  • -k ou --ask-pass > password SSH
  • -K ou --ask-become-pass > password pour élévation privilèges
  • -C ou --check : faire un dry run
  • -D ou --diff : avoir un output de la diff
  • --key-file : lien direct vers la clef privée
  • -e ou --extra-vars : définir des variables
  • --ask-vault-pass : déchiffrer un secret vault
  • --vault-password-file : fichier pour déchiffrer
  • -f x ou --forks : paralléliser
  • -vvv : verbose

Commandes utiles

Test de connexions

ansible -i "node2," all -u vagrant -m ping

Définir des paramètres ssh

ansible -i "node2," all -u vagrant -k --ssh-extra-args="-o 'PreferredAuthentications=password'" -m ping

sshpass pour passer un password

sshpass -p 'vagrant' ansible -i "node2," all -u vagrant -k --ssh-extra-args="-o 'PreferredAuthentications=password'" -m ping

Affichage oneline

ansible -i "node2," all -u vagrant -m ping --one-line

Module command

ansible -i "node2," all -u vagrant -m command -a uptime

Passage d'une variable

ansible -i "node2," all -b -e "var1=xavki" -m debug -a 'msg={{ var1 }}'

Astuces avec les modules

Commandes utiles

Module command

ansible -i "node2," all -u vagrant -m command -a uptime

Module shell

ansible -i "node2," all -u vagrant -m shell -a "ps aux | grep vagrant | wc -l" --one-line

Exemple raw (sans python)

sudo apt autoremove --purge git
ansible -i "node2," all -u vagrant -b -K -m raw -a "apt install -y git"

Module apt

ansible -i "node2," all -b -m apt -a 'name=nginx state=latest'

Arrêt d'un service

ansible -i "node2," all -b -m service -a 'name=nginx state=stopped'

Faire un scp

ansible -i "node2," all -m copy -a 'src=toto.txt dest=/tmp/titi.txt'

Récupérer un fichier

ansible -i "node2," all -m fetch -a 'src=/tmp/titi.txt dest=xavki.txt flat=yes'

Lister les gathers facts

ansible -i "node2," all -m setup -a "filter=ansible_distribution*"