Accueil Entreprise Comment démarrer avec Ansible

Comment démarrer avec Ansible

by Auteur invité

Ansible est un excellent moyen de déployer en masse des modifications sur plusieurs machines. Par exemple, je l'ai utilisé pour effectuer une configuration de base sur une nouvelle machine et pour mettre à jour plusieurs hôtes simultanément. Il est également important de garder à l'esprit qu'Ansible n'est pas seulement utilisé dans les environnements homelab, mais qu'il est également très populaire dans les environnements d'entreprise, ce qui en fait une compétence très précieuse.

Ansible est un excellent moyen de déployer en masse des modifications sur plusieurs machines. Par exemple, je l'ai utilisé pour effectuer une configuration de base sur une nouvelle machine et pour mettre à jour plusieurs hôtes simultanément. Il est également important de garder à l'esprit qu'Ansible n'est pas seulement utilisé dans les environnements homelab, mais qu'il est également très populaire dans les environnements d'entreprise, ce qui en fait une compétence très précieuse.

Configurer Ansible sur une nouvelle machine

Tout d'abord, nous devons installer le package `ansible`, il devrait être aussi simple que :

`sudo apt mise à jour && sudo apt installer ansible`

Et nous devons créer notre répertoire Ansible pour travailler à partir de :

`mkdir ~/ansible && cd ~/ansible`

Vous devriez maintenant être dans le répertoire Ansible sur votre ordinateur local.

Présentation d'Ansible

Nous utilisons les deux principales fonctionnalités d'Ansible, les inventaires, qui stockent tous vos hôtes, et les playbooks, qui contiennent les "instructions" à exécuter sur les hôtes. Pour qu'Ansible puisse lire notre playbook et exécuter les actions, il doit savoir où se trouvent les hôtes, c'est-à-dire quel est le fichier d'inventaire. Il s'agit simplement d'un « inventaire » de tous les hôtes.

Maintenant que nous avons les playbooks eux-mêmes, une fois qu'Ansible a lu l'inventaire et est au courant de tous les hôtes, il commence à chercher quoi faire. C'est le playbook, qui n'est qu'un simple fichier YAML, qui utilise des "modules" pour effectuer les tâches. La documentation sur ces modules est disponible sur le Site Web d'Ansible. S'il y a quelque chose qui n'est pas clair, ceci [vidéo Ansible débutant] par NetworkChuck fait un bon travail pour expliquer les choses.

Création de notre inventaire Ansible

Maintenant que nous avons une compréhension de base d'Ansible et de son fonctionnement, nous pouvons créer notre inventaire. Le format peut être en YAML ou INI, dans un souci de simplicité, nous utiliserons INI et n'ajouterons qu'un seul hôte.

Voici un exemple de fichier :

inventaire.ini :
"`ini
[puissant]
192.168.1.78
“`

Nommez-le `inventory.ini` dans votre répertoire `ansible`. Ce fichier crée un "groupe" de "powerful" avec un seul hôte de "192.168.1.78". Nous pourrons l'utiliser dans nos playbooks plus tard. Vous pouvez lui donner le nom de groupe et l'adresse IP de votre choix, en fonction de votre configuration. Vous pouvez également ajouter d'autres hôtes au groupe si nécessaire.

Déployer des playbooks Ansible

Tout d'abord, nous voulons vérifier qu'Ansible fonctionne :

Gardez à l'esprit que notre clé publique ssh doit se trouver dans le fichier authorized_keys sur l'hôte que nous essayons d'atteindre. Sinon, cette commande échouera. Nous utilisons le groupe `powerful`, mais utilisez ce que vous avez nommé le vôtre.

`ansible -i ./inventory.ini -m ping -u administrateur puissant`

Si cela fonctionne, nous pouvons provisionner nos playbooks sur ce nœud.

Le playbook que nous déployons met simplement à jour le système, le redémarre, puis attend qu'il revienne en ligne. Si vous avez plusieurs nœuds dans le groupe, il passera par chaque nœud un par un, attendant que le précédent revienne en ligne avant de redémarrer le suivant. Cela donne aux services sur le nœud suffisamment de temps pour s'arrêter et migrer si vous utilisez quelque chose comme Essaim Docker.

mise à jour.yml :
"` Yaml
– nom : mettre à niveau tous les nœuds et redémarrer
rassemble_faits : non
hôtes : "{{ variable_hosts }}"
devenir : oui
série : 1

Tâches:
– nom : Mise à jour et mise à niveau | {{ nom_hôte_inventaire }}
apte:
# forcer la rétrocompatibilité
force_apt_get : oui
mise à jour_cache : oui
mise à jour : 'oui'

– nom : Redémarrer | {{ nom_hôte_inventaire }}
redémarrer:
# combien de temps il attend que le nœud revienne en ligne après le redémarrage
reboot_timeout : 300
# combien de temps attendre pour redémarrer après la fin de la tâche précédente (apt)
délai de pré-redémarrage : 60

– nom : Ping | {{ nom_hôte_inventaire }}
ping :

– nom : Pause | {{ nom_hôte_inventaire }}
pause:
minutes : 5 XNUMX
“`

`ansible-playbook -i ./inventory.ini -e variable_hosts=powerful -u administrateur -K ./update.yml`

![Image du Playbook en cours d'exécution](./002-ansible-playbook-executed.png)

Explication des drapeaux :
– -i : spécifiez le fichier d'inventaire.
– -e : Nous devons spécifier l'hôte, dans le playbook nous avons une variable `variable_hosts`, qui est transmise au playbook.
– -u : il s'agit de l'utilisateur utilisé pour exécuter les commandes sur l'hôte.
– -K : cela indique au playbook d'inviter l'utilisateur à entrer le mot de passe sudo, sinon le playbook échouera.

Réflexions de clôture

Ansible est un outil incroyablement puissant et polyvalent qui peut être utilisé pour une variété de choses. Nous avons à peine effleuré la surface avec cet article, mais vous devriez continuer à expérimenter et à automatiser les tâches pour en savoir plus à ce sujet. Qu'il s'agisse d'automatiser les déploiements Kubernetes ou simplement de mettre à jour vos systèmes comme nous l'avons fait aujourd'hui.

Site Ansible

-Ethan Edwards

S'engager avec StorageReview

Newsletter |  YouTube | LinkedIn | Instagram | Twitter | Facebook | TikTokFlux RSS