Modifications entre les versions 11 et 12
Version 11 à la date du 2016-09-09 22:30:49
Taille: 5122
Commentaire: on bascule vers Ansible 2.x par défaut ! :-)
Version 12 à la date du 2016-09-09 22:57:17
Taille: 5123
Commentaire: petit souci de shell…
Texte supprimé. Texte ajouté.
Ligne 96: Ligne 96:
exec python ~/bin/ansible-debian-versions.py "$@" exec python ~/bin/ansible-debian-versions.py "\$@"

Cette page présente l'utilisation de Ansible à l'AuF.

Démarrer avec Ansible

Voici quelques instructions pour démarrer rapidement avec Ansible :

  • se placer sur une machine bien sécurisée, depuis laquelle on gérera ensuite toutes les autres machines (via des connexions SSH) :
    • dans une petite implantation, avec peu de machines à gérer, cela pourra être le poste client du responsable technique
    • dans une implantation plus importante, on pourra dédier une machine pour la gestion technique
  • installer « la bonne version » de Ansible (maintenant la 2.1, non plus la 1.9) :

    sudo aptitude install ansible
  • {i} la version 2.1 est disponible pour Debian/Jessie dans jessie-backports et pour Ubuntu/Xenial dans notre DépôtAPT

  • se placer dans un dossier de travail, par exemple :

    mkdir ~/sysadmin ; cd ~/sysadmin

  • créer un fichier de configuration ansible.cfg :

    [defaults]
    inventory = ./hosts
    retry_files_enabled = True
    retry_files_save_path = .
    
    [ssh_connection]
    # nécessaire quand son profil est chiffré avec ecryptfs
    control_path = %(directory)s/%%h-%%p-%%r
  • créer un fichier d'inventaire des machines à gérer hosts, par exemple :

    [central]
    www.auf.org
    
    [ca-debian]
    sogo.ca.auf.org
    mail.ca.auf.org
    
    [ca-bsd]
    pfsense.wifi.ca.auf ansible_python_interpreter=/usr/local/bin/python
    
    [ca:children]
    ca-debian
    ca-bsd
  • vérifier que tout est fonctionnel :
    • vérifier l'accès SSH :

      ssh www.auf.org
    • (!) il faut une première connexion pour enregistrer la clé publique du serveur

    • (!) il faut que l'accès puisse se faire sans demander le mot de passe de la clé SSH1

    • vérifier le bon fonctionnement de Ansible :

      ansible all -m ping
    • (!) Ansible nécessite, du côté de la machine à laquelle il se connecte, la présence d'un Python avec support JSON, donc soit Python 2.7, soit une version inférieure à laquelle on ajoutera la librairie simplejson (sudo apt-get install python-simplejson)

  • expérimenter l'équivalent de dsh :

    ansible all -m command -a 'uname -a'

Génération du bilan wiki des versions Debian avec Ansible

Le script AUF nécessite pour le moment une ancienne version de Ansible.

On commence donc par créer un environnement Python contenant Ansible 1.9 :

mkdir -p ~/lib
virtualenv --system-site-packages ~/lib/venv-ansible1.9
. ~/lib/venv-ansible1.9/bin/activate
pip install 'ansible<2'
ansible --version # doit répondre une version 1.9
deactivate

Ensuite on récupère le script AUF :

mkdir -p ~/bin
wget -O ~/bin/ansible-debian-versions.py 'http://git.auf.org/?p=ansible.git;a=blob_plain;f=scripts/ansible-debian-versions'

On créer un script shell de lancement du script AUF avec Ansible 1.9 :

cat << __EOF__ > ~/bin/ansible-debian-versions
#!/bin/sh
. ~/lib/venv-ansible1.9/bin/activate
exec python ~/bin/ansible-debian-versions.py "\$@"
__EOF__
chmod a+rx ~/bin/ansible-debian-versions

Et pour finir on teste le script AUF :

ansible-debian-versions all

Ansible avec pfSense

Pour pouvoir utiliser Ansible avec pfSense il est nécessaire d'y installer Python (2.7 recommandé).

Voici un exemple de commande pour pfSense 2.1 :

pkg_add -r http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/8.3-RELEASE/packages/Latest/python27.tbz

Il sera ensuite nécessaire de spécifier le chemin particulier de l'interpréteur Python dans notre inventaire :

pfsense.wifi ansible_python_interpreter=/usr/local/bin/python

Source : http://www.laurent-napias.com/post/2015/08/29/connexion-ansible-sur-pfsense-nas-qnap-et-synology

Détection erronée d'un hôte KVM

Le module kvm est parfois chargé inutilement et cela induit Ansible en erreur quant à la détection du type de virtualisation utilisée sur un système. Voir Debian (fin de page) pour la solution à adopter à défaut de l'inclusion de mon correctif chez Ansible.


  1. il faut pour ce faire utiliser un agent tel que ssh-agent (ou gpg-agent quand on a une YubiKey), ce qui est automatique avec une session graphique Ubuntu, puis propager l'usage de l'agent en utilisant un ssh -A pour se connecter sur la machine de gestion (1)

Ansible (dernière édition le 2016-09-09 22:57:17 par JeanChristopheAndré)