GNU/Linux >> Tutoriels Linux >  >> Linux

Installer et configurer Ansible sous Linux

Ce guide étape par étape vous guide à travers les étapes d'installation et de configuration d'Ansible sous Linux. Il explique également comment configurer Ansible homelab sous Linux pour apprendre les bases d'Ansible.

1. Présentation

Ansible est un outil d'automatisation informatique grâce auquel vous pouvez automatiser un nombre "N" de tâches dans votre environnement logiciel. Pour savoir ce qu'est Ansible et ses fonctionnalités, consultez notre "Introduction à Ansible" guider.

Ansible est évidemment conçu pour la gestion de configuration à grande échelle. Si votre objectif est d'apprendre et de pouvoir recréer rapidement votre environnement, alors vous êtes sur la bonne voie !

Ansible est un sans agent architecture. Signification :aucun agent/processus ansible n'est en cours d'exécution sur les nœuds gérés.

Comme je l'ai déjà mentionné dans l'article d'introduction d'Ansile, il existe deux types de nœuds dans ansible.

  • Nœud maître/contrôleur - Serveur/poste de travail sur lequel ansible sera installé. À partir de ce nœud, vous exécuterez tous les playbooks et commandes ansibles.
  • Nœuds gérés - Liste des hôtes qui seront gérés à l'aide d'ansible.

Tous les nœuds gérés n'ont pas besoin d'être exécutés avec la même version ou le même type de distribution. Vous pouvez avoir différentes versions de Linux en tant que nœuds gérés.

La communication entre le contrôleur et les nœuds gérés s'effectuera à l'aide de l'authentification basée sur une clé ssh .

Ce guide pratique vous apprendra comment configurer Ansible lab dans les distributions Linux.

Remarque :

  1. Vous ne pouvez pas utiliser Windows comme nœud de contrôleur.
  2. Il est possible de configurer plusieurs nœuds de contrôleur.

Avant de commencer avec Ansible, laissez-moi vous montrer la représentation picturale de ma configuration de homelab Ansible.

2. Schéma d'architecture pour le laboratoire ansible à 3 nœuds

L'illustration graphique suivante vous donne une belle représentation picturale de l'apparence du laboratoire.

À des fins de démonstration, je configure un nœud de contrôleur sur Ubuntu 20.04 et 2 nœuds gérés sur CentOS 8 et Ubuntu 21.04.

3. Installer et configurer Ansible sous Linux

Tout d'abord, nous verrons comment configurer le nœud géré Ansible sous Linux.

3.1. Installer Ansible sous Linux

Comme Ansible est écrit en Python, votre machine Linux doit avoir installé python pour qu'ansible fonctionne.

Heureusement, toutes les distributions Linux sont livrées avec Python préinstallé. Ansible prend en charge Python 2.7 et Python 3.5 et versions ultérieures.

Pour vérifier quelle version de python est installée sur votre machine, vous pouvez utiliser les commandes suivantes. La sortie peut varier en fonction de la configuration de Python dans votre distribution.

$ which python python2 python3
/usr/bin/python2
/usr/bin/python3

Vérifier la version de Python :

$ python2 --version
Python 2.7.18rc1
$ python3 --version
Python 3.8.5
$ compgen -c python | grep -P '^python..\d'
python3.8
python3.8-config
python2.7

Vous pouvez installer ansible sous Linux de deux manières.

  1. Utilisation du gestionnaire de packages du système d'exploitation
  2. Utiliser PIP - Gestionnaire de paquets Python

3.1.1. Installez Ansible à l'aide du gestionnaire de packages système

Tout d'abord, nous verrons comment utiliser le gestionnaire de packages de votre distribution pour installer ansible. En fonction de votre distribution Linux, exécutez les commandes suivantes.

Installez Ansible dans Arch Linux, EndeavourOS, Manjaro Linux :

$ sudo pacman -S ansible

Debian :

Modifier /etc/apt/sources.list fichier :

$ sudo nano /etc/apt/sources.list

Ajouter la ligne suivante :

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Exécutez ensuite les commandes suivantes :

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Fedora :

$ sudo dnf install ansible

CentOS, RHEL, AlmaLinux, Rocky Linux :

$ sudo dnf install epel-release
$ sudo dnf install ansible

Ubuntu et ses dérivés :

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

Votre distribution peut être livrée avec une version obsolète d'Ansible. Si vous souhaitez installer une version mise à jour d'Ansible sur votre système, vous pouvez utiliser Pip , le gestionnaire de packages Python.

3.1.2. Installer Ansible avec Pip

Tout d'abord, vérifiez si PIP est installé en exécutant les commandes suivantes :

$ which pip pip3
/usr/bin/pip
/usr/bin/pip3
$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Si PIP n'est pas installé, exécutez les commandes suivantes pour l'installer.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user

Une fois PIP installé, exécutez la commande suivante pour installer ansible :

$ sudo python3 -m pip install ansible

Cela installera la dernière version d'Ansible.

Vous pouvez également installer une version spécifique d'Ansible, par exemple 2.9, comme ci-dessous :

$ sudo python3 -m pip install 'ansible==2.9'

Après avoir installé Ansible, exécutez la commande suivante pour vérifier la version ansible :

$ ansible --version

Cette commande donne des informations sur l'emplacement de votre fichier hôte, de votre fichier de configuration et de votre fichier binaire ansible, ainsi que sur la version d'Ansible installée.

Exemple de résultat :

ansible 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/karthick/.ansible/plugins/modules',
  '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

3.2. Configurer Ansible

Comme indiqué précédemment, Ansible communiquera avec les nœuds gérés à l'aide de ssh protocole d'authentification.

Nous allons créer une paire de clés ssh et les distribuer sur tous les nœuds gérés. Ainsi, chaque fois qu'une commande ansible est soumise, elle s'authentifie auprès des nœuds gérés à l'aide de ces clés.

3.2.1. Générer une paire de clés SSH pour les nœuds gérés

Créez un nouvel utilisateur appelé ansible dans le contrôleur et les nœuds gérés.

$ sudo useradd ansible               ##create user 
$ sudo passwd ansible                ##set password for ansible user.

Connectez-vous/changez en tant qu'utilisateur ansible et créez une paire de clés ssh à l'aide des commandes :

$ su - ansible
$ ssh-keygen -t rsa

Cette commande générera une paire de clés SSH.

Distribuez maintenant la clé publique à tous les nœuds gérés.

Vous pouvez utiliser le ssh-copy-id commande pour copier la clé publique sur le nœud cible.

Pour copier la clé publique sur le nœud cible avec la commande ssh-copy-id, exécutez :

$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]

Si vous avez plus de nœuds, utilisez for loop pour copier la clé ssh sur tous les nœuds cibles.

Pour les besoins de ce guide, j'ai 2 nœuds gérés et je les ai nommés centos1 (centos8) et ubuntu1 (ubuntu 20.04). Pour copier la clé sur les deux nœuds, j'ai utilisé le code suivant :

$ for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa [email protected]${node} done

Connectez-vous maintenant à votre nœud géré pour vérifier si l'authentification par clé fonctionne correctement.

$ ssh [email protected]

La configuration d'ansible est maintenant terminée. À l'étape suivante, un fichier d'inventaire doit être créé et exécuter des commandes ansibles sur les hôtes gérés.

3.2.2. Tester la configuration d'Ansible

Ansible a deux fichiers importants qui sont nécessaires pour soumettre Adhoc ou playbook commandes.

  1. Ansible.cfg - fichier de configuration ansible.
  2. Hosts - Fichier d'inventaire où les détails de l'hôte sont fournis.

Eh bien, discutez plus en profondeur des fichiers de configuration et d'inventaire dans un article séparé. Pour le moment, pour exécuter la première commande ansible, il vous suffit d'ajouter les noms d'hôte de vos nœuds gérés dans le fichier d'inventaire.

Le fichier de configuration Ansible se trouve dans /etc/ansible/ansible.cfg dossier. Vous pouvez également obtenir ce détail en exécutant la ansible version commande :

$ ansible --version
ansible 2.9.0
 config file = /etc/ansible/ansible.cfg
 configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
 executable location = /usr/local/bin/ansible
 python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

Ouvrez ansible.cfg fichier et recherchez l'inventaire des paramètres. Ce paramètre sera référencé par ansible pendant l'exécution pour obtenir le chemin du fichier d'inventaire.

$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory        = /etc/ansible/hosts

L'inventaire par défaut pointe vers /etc/ansible/hosts dossier. Ouvrir les hosts fichier et ajoutez le nom d'hôte/l'adresse IP du nœud géré.

J'ai un mappage DNS vers IP, j'ai donc donné le nom DNS dans le fichier de l'hôte. Vous pouvez également donner l'adresse IP.

Tout est mis en place pour exécuter notre tâche dans ansible !

Semblable à "Hello world" programme en programmation, ansible a également pour tradition d'exécuter un ping module comme première commande pour vérifier la connectivité entre le contrôleur et les nœuds gérés.

Le ping le module essaiera d'atteindre les nœuds gérés et vérifiera si un interpréteur python est disponible et répondra en tant que pong .

$ ansible all -m ping

Vous pouvez également spécifier explicitement le fichier hosts en utilisant -i drapeau comme ci-dessous :

$ ansible all -m ping -i flag <path-to-host-file>

Vous pouvez maintenant commencer à jouer avec n'importe quel module avec lequel vous voulez jouer.

Si vous souhaitez ajouter plus de nœuds de contrôleur, tout ce que vous avez à faire est de copier la clé SSH du nœud de contrôleur vers le nouveau nœud et d'ajouter l'entrée IP/DNS dans le fichier de l'hôte. Et puis, ansible peut commencer à récupérer le nœud géré nouvellement ajouté. C'est aussi simple que ça !

Conclusion

Dans ce guide, nous avons expliqué comment installer et configurer Ansible sous Linux. Nous vous avons également montré comment configurer manuellement un homelab Ansible à trois nœuds.

Il existe d'autres solutions automatisées telles que la configuration d'un laboratoire ansible à l'aide de Vagrant ou Docker . Nous aborderons ces sujets dans nos prochains articles.

Ansible est un vaste sujet ! Nous n'avons couvert que les bases d'Ansible. Consultez la documentation officielle d'Ansible pour en savoir plus sur l'utilisation d'Ansible.

Lire la suite :

  • Configuration automatisée d'Ansible Lab avec Vagrant et Virtualbox sous Linux
  • Fichiers d'inventaire et de configuration Ansible

Linux
  1. Comment installer et tester Ansible sur Linux

  2. Comment installer et configurer Ansible sur Fedora 35

  3. Comment installer et configurer Ansible sur Rocky Linux/CentOS 8

  4. Comment installer et configurer EMC PowerPath sous Linux

  5. 12 étapes pour installer et configurer Alfresco sur UNIX / Linux

Comment installer et configurer Django sur le système Linux

Comment installer et configurer PrestaShop sur le système Linux

Comment installer et configurer Elasticsearch sur le système Linux

Comment installer et configurer Slack sur les distributions Linux

Comment installer et configurer Perf dans les distributions Linux

Comment installer et configurer Terraform dans les distributions Linux