|
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.
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 |
# 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 |
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' |
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 |
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.