GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Ansible sur CentOS 8 Linux

Ansible est un outil d'automatisation informatique open source utilisé pour automatiser la gestion de la configuration, le provisionnement, le déploiement d'applications, l'orchestration et de nombreux autres processus informatiques sans qu'il soit nécessaire d'installer des agents sur les nœuds clients. Il s'appuie sur le protocole SSH pour communiquer avec les nœuds clients. Ansible offre une facilité d'utilisation et d'installation par rapport à d'autres outils similaires tels que puppet, chef, terraform, etc. Dans ce didacticiel, nous apprendrons comment installer Ansible sur CentOS 8 Linux et le configurer.

Installer Ansible sur CentOS 8 Linux

Étape 1 : Installer et activer EPEL référentiel

[root@install-ansible ~]# dnf install epel-release -y

Étape 2 : Téléchargez l'index distant des packages dans le cache de fichiers local pour accélérer les dnf suivants commandes.

[root@install-ansible ~]# dnf makecache
CentOS Linux 8 - AppStream 2.6 kB/s | 4.3 kB 00:01
CentOS Linux 8 - BaseOS 2.6 kB/s | 3.9 kB 00:01
CentOS Linux 8 - Extras 1.0 kB/s | 1.5 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 8.7 kB/s | 11 kB 00:01
Extra Packages for Enterprise Linux Modular 8 - x86_64 9.6 kB/s | 10 kB 00:01
Remi's Modular repository for Enterprise Linux 8 - x86_64 501 B/s | 833 B 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 802 B/s | 833 B 00:01
Metadata cache created.

Étape 3 : Installer Ansible

[root@install-ansible ~]# dnf install ansible -y
Last metadata expiration check: 0:02:17 ago on Tue 01 Mar 2022 10:28:48 AM IST.
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Installing:
ansible noarch 2.9.27-1.el8 epel 17 M
Installing dependencies:
python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k
python3-jmespath noarch 0.9.0-11.el8 appstream 45 k
python3-pyasn1 noarch 0.3.7-6.el8 appstream 126 k
python3-pynacl x86_64 1.3.0-5.el8 epel 100 k
sshpass x86_64 1.06-9.el8 epel 27 k
Installing weak dependencies:
python3-paramiko noarch 2.4.3-1.el8 epel 289 k

Transaction Summary
=============================================================================================================================================================
Install 7 Packages
Installed:
  ansible-2.9.27-1.el8.noarch          python3-bcrypt-3.1.6-2.el8.1.x86_64    python3-jmespath-0.9.0-11.el8.noarch    python3-paramiko-2.4.3-1.el8.noarch
  python3-pyasn1-0.3.7-6.el8.noarch    python3-pynacl-1.3.0-5.el8.x86_64      sshpass-1.06-9.el8.x86_64

Complete!

 Étape 4 : Vérifier l'installation d'ansible

[root@install-ansible ~]# ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]

Configurer Ansible sur CentOS 8

Considérez l'architecture ci-dessous pour ce tutoriel. Vous pouvez étendre la même chose à un nombre n de clients.

Gestion/administration des clients depuis Ansible Server

Pour gérer les clients, SSH doit être installé et en cours d'exécution. Les ports SSH doivent être ouverts et accessibles depuis le serveur Ansible.

Étape 5 : Ouvrez /etc/hosts fichier sur ansible-server

Dans cet article, nous utiliserons /etc/hosts fichier pour la résolution du nom DNS de l'adresse IP des clients.

[root@ansible-server ~]# vim /etc/hosts
Adresse IP ou noms DNS pour les clients

Vous pouvez utiliser l'adresse IP ou les noms DNS des clients à gérer

Ajoutez les entrées ci-dessous sur l'adresse IP et le nom d'hôte du client Ansible

10.180.10.122 ansible-client

Configurer l'authentification sans mot de passe SSH

Étape 6 : Générez des clés SSH sur Ansible Server (Management Node) sans être invité à entrer une phrase de passe.

[centos@ansible-server ~]$ ssh-keygen -f id_rsa -t rsa -N ''
Generating public/private rsa key pair.
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:vqvgSILGrVxCDsLuORbJojxiYDEFEFlNQi5ZrHeqYhE centos@ansible-server
The key's randomart image is:
+---[RSA 3072]----+
|+B*o.            |
|.+.o.            |
|o.o              |
|oE. .            |
|++=o    S        |
|@*o    .         |
|OB+o.   .        |
|OX=o .   .       |
|*=+ . ..o.       |
+----[SHA256]-----+

Étape 7 : Copiez les clés SSH dans Ansible Client

[centos@ansible-server ~]$ ssh-copy-id centos@ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/centos/.ssh/id_rsa.pub"
The authenticity of host 'ansible-client (10.180.141.122)' can't be established.
ECDSA key fingerprint is SHA256:oDKa1jiDVmPzHmD0HqKr5v10xhalFVbklrdudxAFx5M.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
centos@ansible-client's password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'centos@ansible-client'"
and check to make sure that only the key(s) you wanted were added.
Invite de mot de passe pour l'utilisateur centos sur ansible-client

Tapez le mot de passe de connexion de l'utilisateur centos sur Ansible-client pour la première fois. Une fois les clés SSH copiées, vous pourrez vous connecter sans mot de passe

Étape 8 : Vérifier la connexion sans mot de passe

[centos@ansible-server ~]$ ssh centos@ansible-client
Last login: Tue Mar 1 05:57:15 2022 from 10.180.6.115
[centos@ansible-client ~]$

Étape 9 :  Accès sudo pour centos utilisateur sur ansible-client

Assurez-vous que les centos l'utilisateur sur ansible-client a un accès sudo sans mot de passe. Cela aide ansible à exécuter n'importe quel root commandes sur ansible-client en utilisant centos utilisateur.

# visudo

## Add the below content
centos ALL=(ALL) NOPASSWD:ALL

Maintenant, le client ansible est prêt à être géré à partir du serveur ansible (nœud de gestion) à l'aide de centos utilisateur sur ansible-client.

Comment utiliser Ansible

Étape 10 : Créer un inventaire Ansible

Ansible conserve une liste de toutes les informations du client distant qu'il gère dans un fichier appelé inventory dossier. Le fichier d'inventaire Ansible est juste un simple fichier texte brut et l'emplacement du fichier par défaut est :/etc/ansible/hosts

Fichier d'inventaire Ansible

Nous pouvons créer un fichier d'inventaire Ansible à un autre emplacement que l'emplacement par défaut.

[centos@ansible-server ~]$ mkdir ~/ansible
[centos@ansible-server ~]$ cd ~/ansible
[centos@ansible-server ansible]$ vim hosts

Ajouter toutes les entrées du client ansible

ansible-client ansible_user=centos
Option ansible_user dans le fichier ansible/hosts

L'option ansible_user est utilisée pour définir l'utilisateur sur le client ansible qui exécutera les commandes.

Fichier d'inventaire Ansible - Mélange de nom d'hôte et d'adresse IP

Vous pouvez également mélanger les adresses IP et les noms DNS des clients distants dans le fichier d'inventaire

10.180.10.122 ansible_user=centos
Regrouper les clients distants dans le fichier d'inventaire

Vous pouvez également regrouper les clients distants dans le fichier d'inventaire en fonction de leur utilisation. Par exemple, si vous avez 4 clients en tant que serveur Web et 2 en tant que serveur de base de données.

[centos]
ansible-client ansible_user=centos

Étape 11 : Lister tous les hôtes du fichier d'inventaire

[centos@ansible-server ansible]$ ansible -i hosts --list-hosts all
  hosts (1):
    ansible-client

Étape 12 : Vérifiez que les hôtes sont actifs

[centos@ansible-server ansible]$ ansible -i hosts -m ping all
ansible-client | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}

Étape 13 : Exécutez des commandes sur le client ansible distant (basé sur tous/nom de groupe)

[centos@ansible-server ansible]$ ansible -i hosts -m shell -a "more /etc/redhat-release" ansible-client
ansible-client | CHANGED | rc=0 >>
CentOS Linux release 7.8.2003 (Core)

C'est ça! Commencez maintenant à gérer vos clients distants à l'aide d'ansible à votre manière.

Ansible Playbook aide à gérer vos serveurs plus facilement en réalisant des actions informatiques complexes exécutées avec une implication humaine limitée ou nulle. Nous essaierons de couvrir Ansible Playbook dans notre prochain article.


Cent OS
  1. Comment debootstrap sur CentOS Linux

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

  3. Comment installer Erlang sur Rocky Linux/Alma Linux/CentOS 8

  4. Comment installer Ansible sur CentOS 7

  5. Comment installer le noyau Linux 5.0 sur CentOS 7

Comment installer R sur CentOS 8

Comment installer Webmin sur CentOS Linux

Comment installer JIRA sur CentOS 8 Linux

Comment mettre à niveau CentOS 7 vers CentOS 8 Linux

Comment installer DRBD sur CentOS Linux

Comment installer Ansible sur Linux Mint 20