GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer et configurer Ansible sur Redhat Enterprise Linux 8

Ce didacticiel couvre étape par étape l'installation et la configuration d'Ansible sur Redhat Enterprise Linux 8.
Ansible est le principal système de gestion de configuration Open Source. Il permet aux administrateurs et aux équipes d'exploitation de contrôler facilement des milliers de serveurs à partir d'une machine centrale sans y installer d'agents.

Dans ce didacticiel, vous apprendrez :

  • Présentation d'Ansible
  • Installer et configurer Python
  • Définir SSH sans mot de passe
  • Installer Ansible
  • Tester et gérer Ansible

Architecture ansible.

Configuration logicielle requise et conventions utilisées

Configuration logicielle requise et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version du logiciel utilisée
Système Red Hat Enterprise Linux 8
Logiciel Python3, Ansible
Autre Accès privilégié à votre système Linux en tant que root ou via le sudo commande.
Conventions # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande
$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié

Présentation d'Ansible

Ansible est un moteur d'automatisation informatique radicalement simple qui automatise le provisionnement du cloud, la gestion de la configuration, le déploiement d'applications, l'orchestration intra-service et de nombreux autres besoins informatiques.

Conçu pour les déploiements à plusieurs niveaux depuis le premier jour, Ansible modélise votre infrastructure informatique en décrivant comment tous vos systèmes sont interdépendants, plutôt que de simplement gérer un système à la fois.

Il n'utilise aucun agent et aucune infrastructure de sécurité personnalisée supplémentaire, il est donc facile à déployer - et surtout, il utilise un langage très simple (YAML, sous la forme d'Ansible Playbooks) qui vous permet de décrire vos tâches d'automatisation d'une manière qui approche pur anglais. Ansible fonctionne en se connectant à vos nœuds et en leur envoyant de petits programmes, appelés "modules Ansible".
Ces programmes sont écrits pour être des modèles de ressources de l'état souhaité du système. Ansible exécute ensuite ces modules (sur SSH par défaut) et les supprime une fois terminé.

Votre bibliothèque de modules peut résider sur n'importe quelle machine et aucun serveur, démon ou base de données n'est requis. En règle générale, vous travaillerez avec votre programme de terminal préféré, un éditeur de texte et probablement un système de contrôle de version pour suivre les modifications apportées à votre contenu.

Installer et configurer Python

La version par défaut de Python dans RHEL 8 est Python 3.6. Mais Python 2 reste disponible dans RHEL 8. Si, pour une raison quelconque, Python 3.6 est absent de l'installation de Red Hat Enterprise Linux 8, vous devrez l'installer manuellement.

Python 3.6 peut être installé sur RHEL 8 en exécutant la commande ci-dessous sur votre terminal. Python doit être installé à la fois sur le serveur Ansible et sur tous les hôtes/clients auxquels il se connectera.

# yum install python3
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 8:59:59 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Dependencies resolved.
======================================================================================================================================================
 Package                 Arch                  Version                                     Repository                                            Size
======================================================================================================================================================
Installing:
 python36                x86_64                3.6.6-17.el8+2102+a4bbd900                  rhel-8-for-x86_64-appstream-beta-rpms                 22 k
Enabling module streams:
 python36                                      3.6                                                                                                   

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm                                                                        6.0 kB/s |  22 kB     00:03    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 6.0 kB/s |  22 kB     00:03     
warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-beta-rpms-64aba9de5ea7e089/packages/python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                         3.2 kB/s | 3.3 kB     00:01    
Importing GPG key 0xF21541EB:
 Userid     : "Red Hat, Inc. (beta key 2) <[email protected]>"
 Fingerprint: B08B 659E E86A F623 BC90 E8DB 938A 80CA F215 41EB
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
Is this ok [y/N]: y
...
Installed:
  python36-3.6.6-17.el8+2102+a4bbd900.x86_64                                                                                                          

Complete!

Pour utiliser Python 3, tapez simplement python3 dans le terminal.

Vous devez avoir noté que pour utiliser Python 3, la commande est python3 et python2 pour Python 2. Et si vos applications sont configurées pour faire référence à python qui n'est pas disponible à l'échelle du système. Vous obtiendrez l'erreur bash ci-dessous.

# python
-bash: python: command not found

Vous pouvez utiliser le mécanisme des alternatives pour activer la commande python non versionnée à l'échelle du système et la définir sur une version spécifique. Pour définir Python 3 par défaut, exécutez la commande suivante.

# alternatives --set python /usr/bin/python3

L'exécution de python -V doit afficher la version Python par défaut configurée :

#python -V
Python 3.6.6

soit en démarrant une console Python :

# python
Python 3.6.6 (default, Oct 16 2018, 01:53:53) 
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Définir SSH sans mot de passe

Créer l'utilisateur ansible sur tous les hôtes :

# useradd ansible ;  echo "" | passwd --stdin ansible

Faites l'entrée nécessaire dans le fichier sudoers /etc/sudoers pour un utilisateur ansible pour un accès sudo sans mot de passe :

ansible ALL=(ALL) NOPASSWD: ALL

Générez maintenant la clé SSH dans Ansible Server :

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): 
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wNt/uNePRkrV+Hhv/DJgteXK2BjOGvPbr9yNigXM2EM ansible@rhel8-ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          ==o@ +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+

Copiez-le sur des serveurs distants en tant qu'utilisateur ansible :

$ ssh-copy-id ansible@rhel8-ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
The authenticity of host 'rhel8-ansible-client (192.168.1.109)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/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
ansible@rhel8-ansible-client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ansible@rhel8-ansible-client'"
and check to make sure that only the key(s) you wanted were added.

Installer Ansible

Une fois Python installé, procédez à l'installation de Pip qui est un gestionnaire de packages Python que nous utiliserons pour installer Ansible :

# yum -y install python3-pip
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 9:03:18 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Package python3-pip-9.0.3-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Une fois que nous avons pip3 installé, utilisez-le pour installer Ansible dans le système de gestion Ansible en tant qu'utilisateur ansible.

$ pip3 install ansible --user

Vous pouvez voir Ansible installé à l'aide de la commande suivante :

$ ansible --version
ansible 2.7.6
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.6/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.6.6 (default, Oct 16 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Test et gestion

Créez le fichier d'inventaire Ansible, la valeur par défaut est /etc/ansible/hosts mais vous pouvez copier le fichier hosts dans le répertoire personnel de l'utilisateur ansible. Vous pouvez également créer un groupe d'hôtes distants comme ci-dessous dans le fichier hosts.


[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110

Vous pouvez utiliser le module ping pour tester Ansible et après une exécution réussie, vous pouvez voir la sortie ci-dessous.

$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

L'option -i est utilisée pour fournir le chemin d'accès au fichier d'inventaire. Vous devriez obtenir le même résultat pour le nom du groupe "app".

$ ansible -i hosts app -m ping
192.168.1.108 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.110 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Conclusion

La simplicité d'Ansible et sa capacité à réduire la complexité d'autres outils en ont fait un candidat fiable pour votre environnement. Sa principale préoccupation est la sécurité et la fiabilité. Il utilise OpenSSH pour le transport, et le langage est conçu autour de l'auditabilité même par ceux qui ne sont pas familiers avec le programme. Ansible est suffisamment adapté pour gérer à la fois les petites configurations avec une poignée d'instances et les environnements d'entreprise.


Linux
  1. Comment installer et tester Ansible sur Linux

  2. Installer et configurer Ansible sous Linux

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

  4. Comment installer et configurer TensorFlow sur Rocky Linux 8

  5. Comment installer et configurer EMC PowerPath sous 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

Comment installer et configurer Gradle sur les distributions Linux

Comment installer et configurer Git sur les distributions Linux

Comment installer et configurer Yarn sur les distributions Linux