Comment apprendre ansible ? principes et installation

Xavier Pestel (Xavki)
3 min readDec 13, 2020

--

Comment maintenir d’importantes infrastructures ? Comment éviter se rendre sur des serveurs pour répéter sans cesse les mêmes actions ? Comment être descriptif et non pas impératif ?

Crédits : https://wallhaven.cc/w/3911w9

Une des premières réponses à ces questions est de passer à l’infra as code mais bien sûr ce n’est qu’une brique dans ce domaine (avec les CI/CD etc). Et dans ce domaine, une technologie émerge depuis quelques années: ansible.

Alors attention, il existe d’autres technologies disposant d’autres atouts mais ansible permet de se lancer dans ce domaine en toute simplicité. Et c’est justement les principes d’ansible qu’ils font que beaucoup d’entreprises se tournent vers lui.

Quelques principes à retenir

Ansible repose sur un principe, la méthode push. A savoir que le serveur central va déployer des configurations, installations etc… via ssh et donc sans agent. On peut donc dire qu’il est léger et discret.

Si vous accédez à des serveurs avec un simple ssh, il y a de très fortes chances pour que vous puissiez le manager avec ansible et ça c’est kool. Cela modulo une chose, disposer de python sur le serveur source et sur les cibles. De nos jours cela n’est plus vraiment un problème.

Donc ansible repose sur le langage python. Mais pour l’utiliser, il ne sera pas nécessaire de faire du python mais plutôt du yaml. Et oui bienvenu dans le monde descriptif. Yaml est souvent délicat à manipuler à cause de son indentation assez stricte mais on s’y fait très vite.

Quelques définitions dans le monde de ansible

La plupart des outils actuellement repose sur leurs propres concepts et définitions. Ansible n’échappe pas à la règle. Donc si vous apprenez ansible, il vous faudra vous faire à ces définitions et vous former dessus.

En voici les principales :

  • l’inventory : il décrit votre infrastructure et classe vos serveurs dans des groupes pour créer une architecture cohérente
  • group_vars et host_vars : ce que l’on appelle les variables d’inventaire. Elles permettent de fixer les variables spécifiques à un groupe de serveurs ou encore plus spécifiquement à un serveur
  • un rôle : c’est un ensemble de tâches cohérentes pour installer un ou plusieurs serveurs de manière similaire (par exemple un serveur web)
  • la task : il s’agit d’une action d’un rôle ou d’un playbook. Par exemple créer un utilisateur, installer un paquet avec apt…
  • le playbook : c’est un fichier qui permet de coordonner les rôles et l’inventaire. Ainsi on y indique quels groupes ou quels serveurs se voient jouer tel ou tel rôle.

Comment installer ansible ?

Vous pouvez installer ansible de différentes manières :

  • le binaire
  • le module python
  • les paquets via les gestionnaires de paquets classiques (apt, yum…)

Personnellement, je préfère de loin l’installer avec mon gestionnaire de paquet sur Debian : apt.

sudo apt install ansible

Pour commencer à tester ansible et si vous avez accès en ssh à une machine distante, vous pouvez taper la commande suivante :

ansible -i "<votre_serveur>," all -u <votre_user> -m ping

Ainsi, l’option -i permet de définir l’inventaire. Mais nous n’en avons pas et du coup on lui passe directement soit le nom du serveur (si vous avez un dns) soit une ip directement.

Le groupe “all” mais nous reverrons cela plus tard.

Le -u pour spécifier à quel user vous allez vous connecter sur la machine distante.

Et enfin le -m pour spécifier un module à utiliser. Dans notre cas on utilise simplement le module “ping”. Il permet de faire un ping dans le sens ansible à savoir une connexion ssh et non un ping icmp.

Et pour en voir encore un peu plus, découvrez ce tutoriel ansible

Mon article plus complet sur mon blog : introduction à ansible.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Xavier Pestel (Xavki)
Xavier Pestel (Xavki)

Written by Xavier Pestel (Xavki)

Microservices architecture and opensource. I’m maintainer of xavki https://youtube.com/c/xavki-linux about opensource. My blog : https://xavki.blog/

No responses yet

Write a response