Ansible est un outil d'automatisation permettant de gérer plusieurs hôtes distants à partir d'une seule machine. Il vous offre une configuration facile pour un grand nombre d'hôtes distants. Par exemple, si vous effectuez les mêmes tâches sur plusieurs machines, Ansible vous offre la possibilité d'automatiser ces tâches.
Ce tutoriel vous aidera à installer Ansible sur les systèmes Debian 8 (Jessie).
Étape 1 - Configurer l'accès SSH
Vous pouvez configurer ssh basé sur une clé pour les hôtes Linux Ansible distants. Ainsi, le mot de passe ne sera pas requis pour SSH. Ansible vous permet également d'utiliser un mot de passe pour ssh, mais ssh basé sur une clé est plus sécurisé.
Générez une paire de clés ssh sur votre serveur Ansible :
ssh-keygen
Copiez la clé publique sur tous vos hôtes distants dont vous avez besoin pour vous connecter via cette clé ssh.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host
Étape 2 - Installer Ansible sur Debian 8
Ansible fournit son PPA officiel pour l'installation sur les systèmes Debian.
Ajoutez la ligne suivante à /etc/apt/sources.list fichier :
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Exécutez ensuite les commandes suivantes pour ajouter la clé de signature et installer Ansible.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 sudo apt update sudo apt install ansible
Étape 3 – Configurer les hôtes et les groupes Ansible
Votre serveur est prêt avec Ansible pour la gestion et l'automatisation des hôtes à distance. Vous pouvez avoir plusieurs hôtes dont vous avez besoin et les gérer avec un seul serveur Ansible.
Ici, vous devez définir vos systèmes distants dans le fichier d'hôtes Ansible (/etc/ansible/hosts). Vous pouvez également créer des groupes d'hôtes avec des types similaires. Ici, vous devez organiser correctement vos hôtes en groupes. Les groupes sont utilisés pour effectuer une tâche sur tous les hôtes distants définis sous celle-ci.
Modifier le fichier de configuration des hôtes Ansible. Par exemple :
sudo nano /etc/ansible/hosts
Ajoutez vos hôtes et organisez-les en groupes. Un hôte peut être ajouté à plusieurs groupes .
[webservers] web-host1 web-host2 [dbservers] db-host1
L'image ci-dessous vous aidera à comprendre le groupe et les hôtes sous un groupe.
Configuration de variables d'hôte unique
Vous devez définir les paramètres de vos hôtes. Le fichier spécifique à l'hôte doit porter le même nom que l'hôte (par exemple :web-host1) sous le répertoire host_vars.
sudo mkdir /etc/ansible/host_vars sudo vi /etc/ansible/host_vars/web-host1
Ajoutez les paramètres SSH à ce fichier pour l'hôte Web1.
ansible_ssh_host: 192.168.1.15 ansible_ssh_port: 22 ansible_ssh_user: root
Au cas où vous n'auriez pas utilisé l'étape 1 pour la connexion ssh pour cet hôte. Vous pouvez également ajouter l'une des méthodes ci-dessous au fichier de configuration web-hosts1 pour l'authentification.
ansible_ssh_pass: secret_password ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
Configuration des variables de groupe
Vous pouvez configurer les paramètres de variables communes d'un groupe sous les configurations de groupe. Le nom du fichier de groupe doit être le même que le nom du groupe (par exemple :serveurs Web) sous group_vars
répertoire.
sudo mkdir /etc/ansible/group_vars sudo vi /etc/ansible/group_vars/webservers
Ajoutez les variables communes à ce fichier utilisées par tous les hôtes ajoutés sous ce groupe.
ansible_ssh_port: 22 ansible_ssh_user: root
Étape 4 :Tester la configuration d'Ansible
Votre configuration Ansible est prête à être testée. Pour tester la connectivité de tous les hôtes à l'aide d'un module ping comme :
ansible -m ping all
Pour tester la connectivité d'un hôte ou d'un groupe d'hôtes spécifique
ansible -m ping web-host1 ## Specific host ansible -m ping webservers ## Specific group
Vous pouvez également exécuter une commande à l'aide du module shell. Par exemple, testez la mémoire libre sur web-host1. Vous pouvez également effectuer la même tâche pour un groupe. Utilisez simplement le nom du groupe au lieu du nom d'hôte.
ansible -m shell -a 'free -m' web-host1