GNU/Linux >> Tutoriels Linux >  >> Linux

Comment télécharger et utiliser les rôles Ansible Galaxy dans Ansible Playbook

Ansible est l'outil de choix de nos jours si vous devez gérer plusieurs périphériques, que ce soit Linux, Windows, Mac, périphériques réseau, VMware et bien plus encore. Ce qui rend Ansible populaire, c'est sa fonctionnalité sans agent et son contrôle granulaire. Si vous avez travaillé avec python ou avez de l'expérience avec yaml , vous vous sentirez chez vous avec Ansible. Pour voir comment vous pouvez installer Ansible, cliquez ici.

Les modules de base Ansible vous permettront de gérer presque tout si vous souhaitez écrire des playbooks, mais il y a souvent quelqu'un qui a déjà écrit un rôle pour un problème que vous essayez de résoudre. Prenons un exemple, vous souhaitez gérer des clients NTP sur les machines Linux, vous avez 2 choix soit écrire un rôle qui peut être appliqué aux nœuds soit utiliser ansible-galaxy pour télécharger un rôle existant que quelqu'un a déjà écrit/testé pour vous. La galaxie ansible a des rôles pour presque tous les domaines et ceux-ci répondent à différents problèmes. Vous pouvez visiter https://galaxy.ansible.com/ pour avoir une idée des domaines et des rôles populaires dont il dispose. Chaque rôle publié sur le référentiel galaxy est minutieusement testé et a été évalué par les utilisateurs, vous avez donc une idée de la façon dont les autres personnes qui l'ont utilisé l'ont aimé.

Pour continuer à avancer avec l'idée NTP, voici comment vous pouvez rechercher et installer un rôle NTP à partir de galaxy.

Tout d'abord, lançons ansible-galaxy avec l'indicateur d'aide pour vérifier quelles options cela nous donne

[[email protected] ~]# ansible-galaxy --help

Comme vous pouvez le voir dans la sortie ci-dessus, certaines options intéressantes ont été présentées, puisque nous recherchons un rôle pour gérer les clients ntp, essayons l'option de recherche pour voir à quel point il est bon de trouver ce que nous recherchons.

[[email protected] ~]# ansible-galaxy search ntp

Voici la sortie tronquée de la commande ci-dessus.

Il a trouvé 341 correspondances basées sur notre recherche, comme vous pouvez le voir dans la sortie ci-dessus, bon nombre de ces rôles ne sont même pas liés à NTP, ce qui signifie que notre recherche a besoin d'être affinée, cependant, il a réussi à extraire certains rôles NTP, creusons plus profondément pour voir quels sont ces rôles. Mais avant cela, laissez-moi vous dire la convention de dénomination suivie ici. Le nom d'un rôle est toujours précédé du nom de l'auteur afin qu'il soit facile de séparer les rôles portant le même nom. Ainsi, si vous avez écrit un rôle NTP et que vous l'avez publié sur le référentiel galaxy, il ne sera pas confondu avec le référentiel de quelqu'un d'autre portant le même nom.

Avec cela à l'écart, continuons notre travail d'installation d'un rôle NTP pour nos machines Linux. Essayons bennojoy.ntp pour cet exemple, mais avant de l'utiliser, nous devons comprendre deux choses, ce rôle est-il compatible avec la version d'ansible que j'utilise. En outre, quel est le statut de la licence de ce rôle. Pour les comprendre, exécutons ci-dessous la commande ansible-galaxy,

[[email protected] ~]# ansible-galaxy info bennojoy.ntp

ok donc ceci dit que la version minimale est 1.4 et que la licence est BSD, téléchargeons-la

[[email protected] ~]# ansible-galaxy install bennojoy.ntp
- downloading role 'ntp', owned by bennojoy
- downloading role from https://github.com/bennojoy/ntp/archive/master.tar.gz
- extracting bennojoy.ntp to /etc/ansible/roles/bennojoy.ntp
- bennojoy.ntp (master) was installed successfully
[[email protected] ~]# ansible-galaxy list
- bennojoy.ntp, master
[[email protected] ~]#

Trouvons le rôle nouvellement installé.

[[email protected] ~]# cd /etc/ansible/roles/bennojoy.ntp/
[[email protected] bennojoy.ntp]# ls -l
total 4
drwxr-xr-x. 2 root root   21 May 21 22:38 defaults
drwxr-xr-x. 2 root root   21 May 21 22:38 handlers
drwxr-xr-x. 2 root root   48 May 21 22:38 meta
-rw-rw-r--. 1 root root 1328 Apr 20  2016 README.md
drwxr-xr-x. 2 root root   21 May 21 22:38 tasks
drwxr-xr-x. 2 root root   24 May 21 22:38 templates
drwxr-xr-x. 2 root root   55 May 21 22:38 vars
[[email protected] bennojoy.ntp]#

Je vais exécuter ce rôle nouvellement téléchargé sur mon nœud Elasticsearch CentOS. Voici mon fichier hosts

[[email protected] ~]# cat hosts
[CentOS]
elastic7-01 ansible_host=192.168.1.15 ansibel_port=22 ansible_user=linuxtechi
[[email protected] ~]#

Essayons de pinger le nœud en utilisant le module ping ansible ci-dessous,

[[email protected] ~]# ansible -m ping -i hosts elastic7-01
elastic7-01 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[[email protected] ~]#

Voici à quoi ressemble le fichier ntp.conf actuel sur le nœud élastique.

[[email protected] ~]# head -30 /etc/ntp.conf

Puisque je suis en Inde, ajoutons le serveur in.pool.ntp.org à ntp.conf. Je devrais modifier les variables dans le répertoire par défaut du rôle.

[[email protected] ~]# vi /etc/ansible/roles/bennojoy.ntp/defaults/main.yml

Modifiez l'adresse du serveur NTP dans le paramètre "ntp_server", après la mise à jour, il devrait ressembler à ci-dessous.

La dernière chose maintenant est de créer mon playbook qui appellerait ce rôle.

[[email protected] ~]# vi ntpsite.yaml
---
 - name: Configure NTP on CentOS/RHEL/Debian System
   become: true
   hosts: all
   roles:
    - {role: bennojoy.ntp}

enregistrer et quitter le fichier

Nous sommes prêts à exécuter ce rôle maintenant, utilisez la commande ci-dessous pour exécuter ntp playbook,

[[email protected] ~]# ansible-playbook -i hosts ntpsite.yaml

La sortie du playbook ntp ansible ci-dessus devrait être quelque chose comme ci-dessous,

Vérifions le fichier mis à jour maintenant. allez au nœud élastique et affichez le contenu du fichier ntp.conf

[[email protected] ~]# cat /etc/ntp.conf
#Ansible managed

driftfile /var/lib/ntp/drift
server in.pool.ntp.org

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
[[email protected] ~]#

Au cas où vous ne trouveriez pas de rôle répondant à vos besoins, ansible-galaxy peut vous aider à créer une structure de répertoires pour vos rôles personnalisés. Cela aide vos playbooks ainsi que les variables, les gestionnaires, les modèles, etc. assemblés dans une structure de fichiers standardisée. Créons notre propre rôle, c'est toujours une bonne pratique de laisser ansible-galaxy créer la structure pour vous.

[[email protected] ~]# ansible-galaxy init pk.backup
- pk.backup was created successfully
[[email protected] ~]#

Vérifiez la structure de votre rôle à l'aide de la commande tree,

Permettez-moi d'expliquer rapidement à quoi servent chacun de ces répertoires et fichiers, chacun d'entre eux a un but.

Le tout premier est les par défaut répertoire qui contient les fichiers contenant des variables avec la priorité la plus faible, si les mêmes variables sont affectées dans le répertoire var, elles seront prioritaires sur default. Les gestionnaires répertoire héberge les gestionnaires. Le fichier et modèles conservez tous les fichiers que votre rôle peut avoir besoin de copier et les modèles jinja à utiliser respectivement dans les playbooks. Les tâches répertoire est l'endroit où vos playbooks contenant les tâches sont conservés. Le répertoire var est constitué de tous les fichiers hébergeant les variables utilisées dans role. Le répertoire de test se compose d'un exemple d'inventaire et de playbooks de test qui peuvent être utilisés pour tester le rôle. Le méta répertoire se compose de toutes les dépendances sur d'autres rôles ainsi que des informations sur l'auteur.

Enfin, README.md Le fichier se compose simplement de quelques informations générales comme la description et la version minimale d'ansible avec laquelle ce rôle est compatible.


Linux
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment installer et utiliser Ansible sur Debian 11

  3. Comment créer un Playbook Ansible

  4. Comment utiliser Ansible pour installer et configurer Redis 6 sur Debian 11

  5. RHCE Ansible Series #9 :Rôles Ansible

Comment créer et utiliser des faits personnalisés dans Ansible

Comment définir et utiliser des gestionnaires dans des playbooks Ansible

Comment créer et exécuter un fichier Playbook Ansible

Rôles Ansible et comment les utiliser dans les Playbooks

Comment utiliser Ansible pour configurer Vim

Comment installer et utiliser Ansible sur Debian 10