Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Section


Column


Column
width75%


Volet
titleSommaire

 

Sommaire



Intro

Ansible est un outil pour administrateur système de déploiement d'applications, de gestion centralisée de configuration et pour faire des actions ponctuelles sur des groupes de machines.

Installation (sur voidlinux)

Bloc de code
languagebash
titleInstallation d'ansible sur voidlinux
sudo xbps-install -S ansible
mkdir -p /etc/ansible
cat > /etc/ansible/hosts <<EOF
[migration-puppet]
host1.ul.local
host2.ul.local
host3.ul.local
host4.ul.local
host5.ul.local
host6.ul.local
EOF


Quelques commandes utiles

...

Bloc de code
languagebash
titleFaire en sorte d'égrainer les hosts pour valider les clés des machines à ajouter aux known-hosts
# ssh-keyscan -f fichier_liste_de_dns_ou_ip_de_machines_une_par_ligne
# exemple avec un fichier de hosts à la *ansible*
time grep -v '^#\|^[[:space:]]*$\|^\[[^]]*\]$' ~/ansible/hosts-def/hosts | ssh-keyscan -H -f - >> ~/.ssh/known_hosts


Quelques commandes utiles

Bloc de code
languagebash
ansible -i /etc/ansible/hosts migration-puppet -a 'grep "server = " /etc/puppet/puppet.conf'
ansible -i /etc/ansible/hosts migration-puppet -a 'sudo rm -rf /var/lib/puppet/ssl'
ansible -i /etc/ansible/hosts migration-puppet -a 'sudo puppet agent -t --server=nouveauserver.puppet.local'

Annexe - Installation (sur archlinux)

Bloc de code
languagediff
titleInstallation ansible sur ArchLinux
yaourt -S ansible-git
# éditer le fichier PKGBUILD
# et changer comme suit :
diff --git a/PKGBUILD b/PKGBUILD
index 68dc6ce..3ec6221 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -34,7 +34,7 @@ package() {
 
 mkdir -p ${pkgdir}/usr/share/ansible
 cp ./library/* ${pkgdir}/usr/share/ansible/
- python setup.py install -O1 --root=${pkgdir}
+ python2 setup.py install -O1 --root=${pkgdir}
 
 install -D docs/man/man1/ansible.1 ${pkgdir}/usr/share/man/man1/ansible.1
 install -D docs/man/man1/ansible-playbook.1 ${pkgdir}/usr/share/man/man1/ansible-playbook.1
# puis valider l'installation

 

Remarques importantes

  • Ansible n'est utilisable que sur les machines ayant, au minimum, python 2.4 d'installé. Cela exclu donc les machines en RHEL 4.x qui n'ont que python 2.3.
  • Certaines fonctionnalités, pour les machines en python 2.4, ne sont disponibles qu'à la condition d'installer, sur les machines clientes, le module python-simplejson.

Exemples simples

Comme ssh parallélisé

Bloc de code
languagebash
titlels -al ~
ansible -i ~/ansible/hosts mailservers \
        -u monlogin \
        --private-key=~monlogin/.ssh/id_rsa \
        -m shell \
        -a 'HOME=$(/bin/grep monlogin /etc/passwd|cut -d: -f 6)/ ls -al $HOME'
  • -i ~/ansible/hosts – Le fichier des noms/ip de machines administrées.
  • mailservers – Le groupe de machines sur lesquelles faire les opérations.
  • -u monlogin – Le login a utiliser pour se connecter en ssh sur les machines interrogées.
  • --private-key=~monlogin/.ssh/id_rsa – Si on a besoin de donner une clé ssh particulière.
  • -m shell – Utilisation du module ansible shell pour pouvoir faire des commandes à distance en masse et en parallèle sur toutes les machines.
  • -a … – Les arguments à passer au module utilisé (ici shell). Dans notre cas, il s'agit de la commande que l'on veut voir exécuter sur tout le groupe mailservers.

Liens, articles, etc.

  • https://news.ycombinator.com/item?id=11256819 – Concernant les interrogations concernant le grand nombre de modules sur ansible-galaxy : cette discussion donne quelques pistes sur le pourquoi de la chose. En gros : il y a, dans ansible, des problèmes d'espace de noms pour les variables et cela pose parfois des problèmes pour ce qui est de la réutilisabilité des modules poussés dans le ansible-galaxy. Sur ce lien, aussi, quelques autres avis de gros utilisateurs qui donnent quelques bémols à l'intérêt d'ansible. En résumé : gros problèmes de scalabilité pour plusieurs milliers de machines mais une très bonne lisibilité des recettes et donc une grande facilité à comprendre ce qui est fait.
  • https://communities.sas.com/t5/SAS-Communities-Library/Desired-State-is-a-Destination-not-a-Journey/ta-p/370736 – Une petite démonstration du fonctionnement d'ansible, avec des commandes et des explications qui donnent envie d'essayer ce logiciel.

Références

Voir aussi