Ansible est une plate-forme d'automatisation gratuite et open source utilisée par les administrateurs système pour installer, configurer et provisionner plusieurs systèmes à la fois. De nos jours, les environnements informatiques sont très complexes et doivent souvent évoluer très rapidement. L'automatisation facilite le travail des administrateurs système et des développeurs et leur permet de se concentrer sur d'autres tâches qui ajoutent de la valeur à une organisation. Ansible est très simple à configurer et à utiliser. vous n'avez besoin d'aucune compétence en codage pour utiliser Ansible.
Dans cet article, nous allons vous montrer comment installer Ansible sur Oracle Linux 8.
Prérequis
- Serveur exécutant Oracle Linux 8 sur la plate-forme cloud Atlantic.Net. Ce sera votre nœud de gestionnaire
- Un deuxième serveur exécutant Oracle Linux 8 sur la plate-forme cloud Atlantic.Net. Ce sera votre nœud de travail
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Oracle Linux 8 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf update -y
Étape 2 – Configurer une authentification basée sur une clé SSH
Avant de commencer, vous devrez configurer une connexion SSH sans mot de passe entre le nœud de contrôle Ansible et le nœud de gestionnaire. Vous pouvez le faire en configurant une authentification basée sur une clé SSH.
Tout d'abord, générez une clé privée et publique à l'aide de la commande suivante :
ssh-keygen -t rsa
Vous devriez voir le résultat suivant :
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0qOchzAC0Asm8WPlduL7ZxN6C5NUelScBo2nYVuqPMs [email protected] The key's randomart image is: +---[RSA 3072]----+ |oo . .=.. | |+o.o +.B | |+.+.+ ..oO | | o.+ o =+ | | . +.+.S | | . *+B.. | | ..O+.. | | .E+= | | .+.o | +----[SHA256]-----+
Ensuite, copiez la clé publique générée sur les nœuds gérés Ansible à l'aide de la commande suivante :
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Vous devriez voir le résultat suivant :
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. ECDSA key fingerprint is SHA256:4K4sZbu1hLHzDGlwmWAJng6nDbxDqp6hnv65KDaOAn0. Are you sure you want to continue connecting (yes/no/[fingerprint])? 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 [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]<server-ip>'" and check to make sure that only the key(s) you wanted were added.
Maintenant, exécutez la commande suivante pour tester la connexion SSH sans mot de passe :
ssh [email protected]
Étape 3 - Installer Ansible sur Oracle Linux 8
Maintenant, vous devrez installer le package Ansible sur le nœud de contrôle Ansible. Par défaut, le package Ansible n'est pas disponible dans le référentiel par défaut d'Oracle Linux 8, vous devrez donc l'installer à partir du référentiel EPEL.
Tout d'abord, installez le référentiel EPEL à l'aide de la commande suivante :
dnf install -y epel-release
Ensuite, installez le package Ansible à l'aide de la commande suivante :
dnf install ansible -y
Une fois Ansible installé, vérifiez la version d'Ansible avec la commande suivante :
ansible --version
Vous devriez voir le résultat suivant :
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, Nov 10 2021, 06:50:23) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3.0.2)]
Étape 4 - Configurer les hôtes Ansible
Ensuite, vous devrez modifier le fichier de configuration des hôtes Ansible et définir le serveur Linux distant que vous souhaitez gérer.
Vous pouvez le modifier avec la commande suivante :
nano /etc/ansible/hosts
Ajoutez les lignes suivantes :
[web] server1 ansible_ssh_host=<manager-node-ip> ansible_ssh_port=22 ansible_ssh_user=root [database] dbserver1 ansible_ssh_host=<worker-node-ip> ansible_ssh_port=22 ansible_ssh_user=root
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, modifiez le fichier de configuration Ansible et désactivez les avertissements d'obsolescence et la vérification de la clé de l'hôte :
nano /etc/ansible/ansible.cfg
Ajoutez la ligne suivante sous [defaults] :
deprecation_warnings=False host_key_checking = False
Enregistrez et fermez le fichier lorsque vous avez terminé.
Étape 5 - Comment utiliser Ansible
À ce stade, Ansible est installé et configuré. Maintenant, vous devrez vérifier la fonctionnalité d'Ansible à l'aide des commandes ad hoc d'Ansible :
Commencez par vérifier la connectivité de tous les nœuds gérés à l'aide de la commande suivante :
ansible -m ping all
Si tout va bien, vous devriez voir le résultat suivant :
dbserver1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" } server1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Si vous souhaitez uniquement vérifier la connectivité du serveur de base de données, exécutez la commande suivante :
ansible -m ping database
Vous obtiendrez le résultat suivant :
dbserver1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Pour vérifier la mémoire libre sur le nœud du serveur Web, exécutez la commande suivante :
ansible -m shell -a "free -m" web
Vous obtiendrez le résultat suivant :
server1 | CHANGED | rc=0 >> total used free shared buff/cache available Mem: 1817 621 210 21 985 1006 Swap: 0 0 0
Pour vérifier la version de MySQL sur le nœud du serveur de base de données, exécutez la commande suivante :
ansible -m shell -a "mysqladmin --version" database
Vous devriez voir le résultat suivant :
dbserver1 | CHANGED | rc=0 >> mysqladmin Ver 8.0.26 for Linux on x86_64 (Source distribution)
Étape 6 – Créer un playbook Ansible pour installer des packages sur des nœuds gérés
Ansible nous permet de créer un playbook pour définir toutes les tâches que nous voulons effectuer sur les nœuds gérés. Tout d'abord, créez un répertoire pour stocker votre playbook.
mkdir project
Ensuite, accédez au répertoire créé et créez un fichier YAML à l'aide de la commande suivante :
cd project nano app.yaml
Ajoutez la configuration suivante :
- name: Install Packages hosts: - web - database tasks: - name: Install php and nginx package: name: - php - httpd state: present
Enregistrez et fermez le fichier, puis exécutez le playbook à l'aide de la commande suivante :
ansible-playbook app.yaml
Une fois le playbook Ansible exécuté avec succès, vous obtiendrez le résultat suivant :
PLAY [Install Packages] ********************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [server1] ok: [dbserver1] TASK [Install php and apache] **************************************************************************************************************** ok: [server1] changed: [dbserver1] PLAY RECAP *********************************************************************************************************************************** dbserver1 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 server1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Vous pouvez maintenant vérifier la version de PHP sur le nœud du serveur Web à l'aide de la commande suivante :
ansible -m shell -a "php -v" web
Vous obtiendrez le résultat suivant :
server1 | CHANGED | rc=0 >> PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Conclusion
Dans ce guide, nous avons expliqué comment installer Ansible sur Oracle Linux 8. Nous avons également expliqué comment utiliser les commandes ad hoc et le playbook d'Ansible pour provisionner des nœuds gérés. Vous pouvez désormais utiliser Ansible pour provisionner et gérer facilement l'ensemble de votre infrastructure informatique. Essayez-le sur l'hébergement VPS d'Atlantic.Net !