GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Ansible sur Ubuntu 20.04 LTS

La configuration et le déploiement d'applications sur un seul serveur est généralement une tâche simple. Cependant, dans un environnement informatique complexe avec plusieurs serveurs, cela peut être une tâche ardue et chronophage. Développé et maintenu par RedHat, Ansible est un outil open source de configuration de serveur et de provisionnement de logiciels qui simplifie le déploiement d'applications et la gestion de la configuration. Il soulage les équipes d'exploitation informatique et automatise la configuration des serveurs et le déploiement des applications de manière simple et efficace.

Comparé à ses homologues tels que le chef et la marionnette, Ansible est l'outil le plus utilisé car il ne nécessite pas d'agent pour communiquer avec les hôtes distants. Ansible exploite le protocole SSH pour communiquer avec des cibles distantes et, ce faisant, les ressources CPU des hôtes distants ne sont pas affectées.

Configuration d'Ansible Lab

Pour notre environnement de test, nous avons deux nœuds :le nœud de contrôle où Ansible sera installé et l'hôte distant qui sera configuré à partir du nœud de contrôle Ansible :

Nœud de contrôle Ansible IP 192.168.2.101Ubuntu 20.04

Hôte distant IP 192.168.2.104Ubuntu 20.04

De plus, assurez-vous d'avoir un utilisateur sudo configuré sur le nœud de contrôle Ansible et que le démon SSH s'exécute sur les deux nœuds.

Sans plus tarder, voyons comment installer Ansible sur Ubuntu 20.04

Étape 1 :Installer Ansible

Dès le départ, connectez-vous au serveur maître Ansible et installez Ansible en tant qu'utilisateur sudo comme suit.

$ sudo apt install ansible

Cela installe Ansible aux côtés d'une multitude de packages Python3 qui sont essentiels pour qu'Ansible fonctionne sans problème.

Une fois installé, vous pouvez confirmer la version Ansible comme indiqué.

La sortie fournit des informations détaillées. Il affiche la version d'Ansible - dans ce cas, Ansible 2.9.6 - le module et le chemin de l'exécutable Ansible ainsi que la version Python installée sur votre système.

Le fichier de configuration – ansible.cfg – est le fichier de configuration Ansible situé dans le répertoire /etc/ansible annuaire. Les paramètres déterminent comment Ansible s'exécute et interagit avec les clients distants. De plus, le répertoire contient un fichier d'inventaire appelé hosts. C'est là que les hôtes distants ou gérés sont définis. Au fur et à mesure que nous avancerons dans ce didacticiel, nous définirons l'hôte distant dans ce fichier d'inventaire.

Étape 2 :Configurez une connexion SSH sans mot de passe

Le protocole SSH propose deux méthodes d'authentification :l'authentification par mot de passe et par clé publique/privée. À l'aide des clés SSH, nous allons configurer une méthode de connexion ssh sans mot de passe pour fournir un moyen plus sûr et plus pratique d'interagir avec l'hôte distant. La méthode de connexion SSH sans mot de passe offre un moyen transparent d'interagir avec l'hôte puisque nous ne serons pas tenus de fournir un mot de passe lors de l'exécution des fichiers de playbook.

Pour configurer la connexion SSH sans mot de passe, nous allons d'abord générer la paire de clés SSH comme indiqué :

$ ssh-keygen

Appuyez à fond sur ENTREE pour accepter les suggestions par défaut.

La paire de clés SSH comprend une clé privée et une clé publique. Nous avons le id_rsa qui est la clé privée. De plus, nous avons le id_rsa.pub qui est la clé publique.

Ensuite, nous allons copier la clé publique sur l'hôte distant en utilisant l'utilisateur root comme utilisateur de l'hôte distant.

REMARQUE

Avant de copier le fichier de clé publique ssh, nous allons configurer l'utilisateur distant dans le fichier de configuration Ansible comme indiqué.

$ sudo vim /etc/ansible/ansible.cfg

Définissez l'utilisateur distant sur root.

remote_user=root

Enregistrez le fichier.

Ensuite, dirigez-vous vers l'hôte distant et activez la connexion root à distance en modifiant le /etc/ssh/ssh_config fichier.

$ sudo vim /etc/ssh/ssh_config

Ajoutez la ligne ci-dessous

PermitRootLogin yes

Encore une fois, enregistrez et quittez.

Nous pouvons maintenant continuer et copier la clé publique SSH sur l'hôte distant comme indiqué.

$ ssh-copy-id [email protected]

Si vous vous connectez pour la première fois en tant qu'utilisateur root, vous obtiendrez l'invite comme indiqué dans l'image ci-dessous. Tapez simplement "oui" pour continuer à vous connecter. Une fois que vous avez fourni le mot de passe root de l'hôte distant, la clé SSH sera ajoutée au répertoire d'accueil racine.

Pour les connexions ultérieures, vous n'aurez pas à fournir de mot de passe. Pour vérifier cela, quittez l'hôte distant et essayez de vous reconnecter une fois de plus.

$ ssh [email protected]

Cela vous amène automatiquement au shell de l'hôte distant, comme indiqué.

Parfait! Notre configuration de connexion SSH sans mot de passe est terminée. Nous allons maintenant créer un fichier playbook qui installera le serveur Web Apache.

Étape 3 :Ajoutez l'hôte distant dans le fichier de configuration Ansible

Ensuite, nous définirons notre hôte distant dans le fichier d'inventaire Ansible qui, par défaut, est le /etc/ansible/hosts dossier. Alors, ouvrez le fichier.

 $ sudo vim /etc/ansible/hosts

Le fichier héberge est structuré au format INI. Nous allons ajouter l'adresse IP de notre hébergeur sous les serveurs Web nom du groupe.

[webservers]
192.168.2.104

Enregistrez le fichier d'inventaire et fermez. Pour vérifier les hôtes définis dans le fichier d'inventaire, exécutez :

 $ ansible webservers --list-hosts

Sinon, pour vérifier tous les hôtes de tous les groupes d'hôtes, exécutez :

 $ ansible all --list-hosts

Nous allons maintenant tester la présence du module Ansible Python sur l'hôte distant.

 $ ansible -m ping webservers

REMARQUE :

Le ping module n'est pas une commande ping ICMP. C'est juste un test trivial pour vérifier si le module Python3 est installé et la présence de SSH.

La sortie ci-dessous montre que la commande a réussi. La sortie affiche également l'adresse IP de l'hôte distant défini sous les serveurs Web grouper. Si vous avez plusieurs hôtes définis sous plusieurs groupes, utilisez le tous option.

 $ ansible -m ping all

Étape 4 :Créer un fichier playbook pour configurer l'hôte distant

Avec l'hôte distant défini, nous allons maintenant créer un fichier playbook pour installer le serveur Web Apache. Un fichier playbook est un fichier YAML dans Ansible qui stipule les tâches à effectuer dans l'hôte distant.

 $ sudo vim /etc/ansible/apache.yml

Le fichier playbook est défini ci-dessous. Notez que le fichier commence par 3 traits d'union ( — ). Notez également les indentations.

Enfin, exécutez le fichier playbook comme suit.

$ ansible-playbook /etc/ansible/apache.yml

Pendant l'exécution, le playbook exécute les tâches méticuleusement et affiche chaque action sur le terminal. Il installe le serveur Web Apache et démarre le service.

Pour confirmer que le serveur Web a été installé avec succès, lancez un navigateur et parcourez l'adresse IP de l'hôte distant comme indiqué :

http://server-ip/

Résumé

Ansible est un outil d'automatisation largement utilisé dans DevOps et utilisé par des milliers de développeurs et d'administrateurs système pour configurer et déployer des applications sur des serveurs. Il permet de gagner du temps et de minimiser les efforts nécessaires pour gérer une multitude de serveurs dans une infrastructure informatique complexe. Nous espérons que vous pourrez installer et configurer confortablement Ansible sur Ubuntu 20.04.


Ubuntu
  1. Comment installer Docker sur Ubuntu 22.04 / 20.04 LTS

  2. Comment installer PlayOnLinux sur Ubuntu 20.04 LTS

  3. Comment installer MariaDB dans Ubuntu 20.04 LTS

  4. Comment installer et configurer Ansible sur Ubuntu 18.04 LTS

  5. Comment installer Ansible sur Ubuntu 18.04 LTS

Comment installer Go sur Ubuntu 22.04 LTS

Comment installer TeamViewer sur Ubuntu 16.04 LTS

Comment installer Go sur Ubuntu 18.04 LTS

Comment installer TeamViewer sur Ubuntu 18.04 LTS

Comment installer Go sur Ubuntu 20.04 LTS

Comment installer Chrome Remote Desktop sur Ubuntu 20.04 LTS