Hey, bonjour tout le monde ! Bienvenue dans le podcast de Xavier Kee,
en parallèle de la chaîne YouTube du même nom. Mon but sur l'ensemble de ces podcasts,
ça va être de vous apprendre à progresser ensemble, sans chichis, sans égaux et en toute
simplicité. Le but très concrètement, ça va être de gagner du temps dans l'auto formation et ne
plus se sentir tout seul un petit peu sur son île quand on découvre des technologies où
qu'on a besoin de les apprendre, on est tous ensemble un petit peu dans le même bateau.
Aujourd'hui, à quoi va-t-on s'intéresser ? On va s'intéresser à Ansible et essayer de comprendre
pourquoi il faut se former dessus, pourquoi on le retrouve aussi souvent et pourquoi le mettre dans
sa boîte à boutique quand on veut devenir DevOps ou 6 admins. C'est parti !
Alors, en guise de plan, ce que je vous propose, c'est dans un premier temps de découvrir d'où ça
vient Ansible, un petit peu le coin du curieux pour se rappeler un petit peu des éléments
historiques. En deuxième partie, on va découvrir ça fait quoi Ansible ? À quoi ça sert ? C'est
très important de bien comprendre un petit peu les fondamentaux et dans une troisième partie,
la dernière partie, on va s'intéresser à pourquoi ça marche, pourquoi on a besoin de la voir dans
sa boîte à outils, pourquoi on le retrouve dans beaucoup de sociétés et pourquoi c'est l'outil un
peu hype, un peu à la mode. Alors, c'est parti pour la première partie. Donc, ça vient d'où Ansible ?
Donc, ça a été créé en 2012. Vous voyez maintenant, ça a une petite dizaine d'années par Michael
Dehan. C'est la personne qui était avant sur un outil qui s'appelle notamment Cobbler, qui s'intéresse
donc aux outils de provisionnement principalement. Et ça a été repris en 2015 par Red Hat, un petit
peu comme pour les gens qui connaissent Soul Stack. Ça a été repris par VMware. Ansible,
ça a été repris par Red Hat. Je dirais avec une meilleure poigne par Red Hat que VMware avec Soul
Stack. Mais en tout cas, ça a gardé surtout la fibre de la communauté et ça, c'est quelque
chose qui est très, très important. L'autre atout de l'Andesible et comme également Soul Stack,
par exemple, c'est basé sur du piton. Donc, du coup, ça rend quand même pas mal de choses un
petit peu plus abordables que d'autres outils. Alors, les autres outils, les concurrents Ansible,
c'est quoi si on devait les lister ? Il y a Peupette qui revient souvent dans les noms d'outils de
gestion de configuration. Basé sur du rubi, on a Chef également qui est basé sur du rubi également.
Soul Stack, on en a parlé. Capistrano également, il en existe. Pardon, encore d'autres. Alors,
Ansible, ça vient d'où ? Ça vient surtout d'une très, très grosse communauté qui a grandi
extrêmement vite. On a à l'heure actuelle, si vous regardez le depot GitHub de Ansible,
je vous invite à aller voir et éventuellement mettre une petite notification dessus de manière
à pouvoir le suivre et suivre les nouvelles versions notamment, les nouvelles releases.
Eh bien, Ansible, c'est plus de 5400 contributeurs. Donc, c'est juste énorme et c'est ce qui fait
que ça marche. Pourquoi ? Parce que si on le regarde par rapport aux autres outils de ce type,
les Peupette, Chef, etc., la communauté est beaucoup plus petite et beaucoup moins dynamique.
Donc, ça a joué à un effort, ça a été énorme, même si certains de ces autres outils ont existé
avant Ansible, Ansible les a largement dépassés dans ces domaines-là. Donc, ça a fait déjà
que les choses ont marché très, très fort. Historiquement également, c'est un outil qui a
été basé aussi pour essayer de pallier à des difficultés qu'on puisse rencontrer les outils
précédents, donc forcément une amélioration quelque part un petit peu continue par l'itération.
Et ça, c'est quelque chose qui est aussi très, très, très important avec une grosse part également
d'administrateurs systèmes ou d'administration systèmes ou réseaux qui font qu'on va retrouver
notamment des concepts un petit peu autour du KISS, du Keep It Simple, une stupide qu'on retrouve au
niveau de Linux en général. Et donc, ça, c'est plutôt très, très cool. Bien sûr, on retrouve
tout ça sur le dépôt GitHub dédié à Ansible. Je vous invite à aller le voir à GitHub.com,
Ansible, Ansible. Vous avez retrouvé plein de choses sur ce domaine-là. Et petit à petit,
cet environnement Ansible grandit. Alors heureusement, il ne grandit pas comme un environnement
comme Kubernetes par exemple, où ça se multiplie de plein d'outils et des fois,
il y en a beaucoup qui sont inutiles. Là, en l'occurrence, avec Ansible, il y a beaucoup,
beaucoup de bons outils, mais ça reste encore facile à suivre et des choses qui sont quand même
relativement intéressantes en moyenne en tout cas en général. Donc ça, c'est très, très cool.
Alors deuxième partie, très, très importante. Ça fait quoi Ansible ? C'est vrai qu'on aurait
pu le mettre en première partie, mais c'est quelque chose qui est primordial d'avoir en tête. Alors,
ça sert à quoi ? Ça sert à la gestion et au déploiement de configuration d'un point de vue
global assez large. C'est-à-dire qu'on entend par configuration aussi bien le petit fichier de
configuration qu'on va pousser sur une machine distante ou sur un parc plus ou moins étendu,
ou également sur la gestion quelque part d'une infrastructure cloud. On considérera que ça va
être, on va dire, la gestion de configuration d'un cloud. On va retrouver des modules par exemple AWS,
Azure, etc. Néanmoins, on va en parler un petit peu tout à l'heure, Terraform est plus intéressant
et beaucoup plus adapté puisque d'ailleurs, il a été basé et élaboré sur ce fondamental là,
qui est l'infrastructure AsCode sur le cloud. Donc Terraform est bien plus adapté pour la gestion
d'infrastructure cloud qu'Antisible. Néanmoins, il dispose de modules disponibles, mais avec des
petits éléments qui ne permettent pas d'en tirer le meilleur profit ou en tout cas les profits
qu'on arrive à en retrouver avec un Terraform. Ça sert également du coup sur le principe de
fonctionnement d'écrire des tâches qu'on va vouloir réaliser en cascade, les enchaîner
éventuellement. Là aussi, c'est une grande force de Terraform, ça va être de Antisible,
l'absus, de Antisible, ça va être de pouvoir conditionner les tâches, les unes par rapport aux
autres et au-delà de ça, de pouvoir également conditionner l'installation d'un serveur avec
l'installation d'autres serveurs. Ce que d'autres outils d'infra, de déploiement et de gestion de
configuration ne permettent pas de faire aussi bien que lui le fait. Donc ça, c'est très,
très cool. Par exemple, quand on va vouloir installer une stack ou un cluster dans lequel on a un
premier serveur qui va permettre d'initier le cluster et qui va générer potentiellement un
token aléatoire, on va pouvoir d'abord installer cette machine, récupérer les éléments qui vont
être réutilisés sur les autres machines et faire ça un petit peu en cascade avec une vraie
stratégie qui existe, même si d'autres outils disposent de stratégie, Antisible est vraiment très,
très bon dans ce domaine-là, donc c'est vraiment un outil très, très pratique. Mais en moins,
attention, il a quand même des défauts. Donc voilà, ce principe de Antisible, il est très
intéressant également pour paralléliser et automatiser ces tâches quand on va déployer une
infrastructure. Néanmoins, attention, c'est aussi un de ces défauts, c'est qu'il est sur son
fonctionnement, on va en parler un petit peu après, il va être plus délicat de déployer sur de très
large infrastructure parce qu'il va potentiellement mettre beaucoup de temps à déployer les choses.
Donc ça, c'est quelque chose d'important. Par exemple, en matière de tâches, on pourrait
citer déployer tout simplement des utilisateurs sur un parc de serveurs, des utilisateurs système,
et bien Antisible va être très, très doué pour ce genre de choses, installer des applicatifs,
etc. Au-delà de ça, également, on va pouvoir l'utiliser et le sortir, sa simplicité fait qu'on
peut le sortir de ce contexte strict de déploiement de configuration d'infrastructures, pour par exemple
l'utiliser au cours d'un pipeline de déploiement d'une CI-CD par exemple, et de se dire, tiens,
à un moment, j'ai besoin d'installer quelque chose, une base de données, ou c'était un
utilisateur dans une base de données, un topic dans le Kafka, etc. Et bien, on va pouvoir jouer
juste ce petit élément dans notre CI-CD grâce à Antisible et jouer et gagner sur l'ildem potence,
c'est-à-dire la capacité au fait que si on rejoue une deuxième fois la même tâche,
et bien Antisible va tout simplement découvrir qu'il a déjà fait le travail,
que l'élément est déjà présent, plus exactement, et qu'on n'a pas besoin de le recréer. Donc ça,
c'est aussi un élément qui est important, c'est qu'on va pouvoir l'utiliser très,
très ponctuellement sur de petites tâches, parce que finalement l'embarquer, c'est quand même
relativement peu coûteux. Donc ça, c'est quelque chose qui est très, très cool. Alors,
ça fait quoi également ? Ça utilise du piton et du SSH. Donc ça, c'est un petit peu l'envers de son
décor. Tout est basé sur des connexions SSH, ce qui fait que aussi cet outil est
très, très intéressant, il fonctionne sans agent. Donc ça, c'est quelque chose qui est assez cool.
En revanche, attention, donc si on doit faire un premier parallèle avec Teraform, on en fera peut-être
d'autres dans d'autres podcasts, mais ce parallèle avec Teraform est très, très important. Si on
prend Antisible et qu'on lui demande par exemple de créer un répertoire, donc on va créer une tâche
pour créer un répertoire, par exemple, SlashVarlib Postgres, par exemple, et bien si je lui fais créer
avec une tâche répertoire et que par la suite, je fais évoluer le code Antisible et que je supprime
cette tâche, pour autant Antisible ne va pas détruire le répertoire qu'il a lui-même créé. Pourquoi ?
Parce qu'il n'a pas connaissance de ce que lui a créé. C'est vraiment à l'utilisateur de faire les
démarches de comparaison de ce qui est existant et de ce qu'il doit réaliser pour compenser,
ou en tout cas, s'adapter, adapter l'existent à ce qui a été décrit dans le code en question.
Ça, c'est quelque chose qui est aussi très, très important. Terraform lui par contre, si on prend
son exemple, si on lui demande par exemple de créer un élément, ça va être enregistré,
notamment dans les states, qui sont une forme de database. Donc on va considérer cette Terraform
comme stateful et on pourrait dire que Antisible est stateless à côté. C'est un petit peu des
abus de vengages, mais ça représente tout à fait les choses. Et derrière, si on supprime la tâche
Terraform qui a permis de créer un élément, par exemple une instance dans le cloud, si on supprime
cette tâche, Terraform, si c'est lui qui l'a créé et si il dispose de cette information dans le
state Terraform en question, il va savoir qu'un élément a été supprimé, une tâche a été supprimée,
il va pouvoir supprimer cette instance, cet élément qui l'a créé lui-même. Donc ça,
c'est une grosse différenciation entre Antisible et Terraform. Donc ça, c'est quelque chose de très
important. Maintenant, dernière partie, pourquoi ça marche si fort que ça Antisible ? Alors,
première chose, c'est le mode très très simple de Antisible. C'est un mode Pouche. Donc à la
différenciation de ces concurrents qui sont souvent en mode master et agent à côté,
eh bien, on va se retrouver cette fois-ci en mode Pouche, même si Antisible a un mode Poule,
c'est le nom de l'outil en question. Eh bien, ce mode Pouche, c'est celui qui est généralement
utilisé, qui fonctionne par SSH. Donc ça donne quand même beaucoup de simplicité généralement,
quand on est administrateur système, on a un accès SSH à des serveurs. Alors,
l'idéal, c'est quand même de fonctionner avec des bastions, des machines intermédiaires,
des diarons de cible pour sécuriser les choses. Mais ça veut dire aussi une connexion simple à
établir. On n'a pas besoin d'installer des éléments complémentaires sur la machine distance,
il n'est que d'avoir piton pour réaliser à plupart des choses, encore que il existe des
petits tricks là-dessus, même si on n'a pas piton, on va pouvoir l'installer à partir de
Antisible également. Et donc ça, c'est idéal, vous voyez tout de suite, et ça a été pensé pour
de l'administration système. C'est-à-dire, voilà, j'ai une connexion SSH à quelque chose et je veux
paralléliser sur un ensemble de serveurs, automatiser ces tâches, les décrire dans du code. Donc ça,
c'est quelque chose qui est aussi très, très important. C'est quand Antisible, comme c'est
ses concurrents, est un outil de description à travers de code et ce code est réalisé en
format IAML. Donc ça, c'est ce qui fait également que ça marche. C'est très, très important d'avoir
une simplicité de langage. On le retrouve sur cet élément là. On le retrouve également aussi
dans l'outil de templating qui permet finalement d'instancier, à partir d'un système de template
déficier par exemple, on va avoir du Jinja qui est aussi très facile à utiliser, très facile à
utiliser, puisque sur une base de piton également. Donc ça, c'est très, très cool. C'est assez
pratique. Donc, simplicité d'utilisation sur ce côté-là. Même si, attention, l'envers du décor,
c'est quoi ? En fonction de la connexion SSH et c'est quand même assez difficile de paralléliser un
très grand nombre de connexions SSH. Là, on parle de dizaines de milliers de serveurs. Antisible va
mettre beaucoup, beaucoup de temps et alors il est capable de paralléliser, mais ça a quand même
rapidement une certaine limite, d'autant plus qu'on récupère à chaque fois des informations,
des serveurs distants pour pouvoir éventuellement récupérer des versions d'OS, etc. Et donc,
ça va être un peu plus dur de paralléliser et d'avoir des runs, on va appeler ça des runs
relativement courts. Donc ça, quelque chose de très important et c'est ce qui fait aussi que
certaines sociétés laissent de côté Antisible pour passer à des outils comme Soul Stack,
Peppet, Chef ou autre. Donc ça, quelque chose d'important. On a parlé aussi dans les autres
atouts très très très intéressants. C'est la possibilité de l'utiliser dans les CI CD. C'est
là où on retrouve un petit peu dans la chaîne DevOps. Quand on parle du poste DevOps qui est le
déploiement CI CD, pas la philosophie des DevOps en tant que tel, eh bien souvent, on va retrouver
du run-sibel sur ce profil de poste parce que tout simplement, voilà, ça va permettre de faire des
petites tâches qui vont permettre de bien mettre en place des applicatifs sur nos serveurs et sur
notre parc. Donc ça, c'est quelque chose qui est très très important. L'autre point extrêmement
important de Antisible, on l'a dit, il y a une très grande communauté au niveau de Antisible et
souvent on pêche un petit peu dans les entreprises dans ce domaine-là. C'est la documentation. De
ce côté-là, Antisible est extrêmement bien fourni. La documentation est dense, versionnée en
fonction des versions de Antisible tout simplement. Et surtout, on va retrouver une
documentation pour l'ensemble des modules et ça de manière relativement stricte sur ce qu'on
va y retrouver. C'est-à-dire toujours le même mode de documentation chaque page est construite de
la même manière avec des petits exemples qui donnent des informations vraiment intéressantes sur
la mise en oeuvre, mais également les différentes options qu'on va pouvoir y passer. On va retrouver
les liens éventuellement vers le code qui correspond. Donc ça, c'est très très cool. C'est
vraiment super super intéressant. Le troisième point qui est aussi très très intéressant pour
Antisible, c'est ces modules. Alors les modules, c'est quoi ? C'est pas les modules lunaire,
c'est pas... on n'est pas sur l'ISS, mais néanmoins les modules, c'est la part très très importante
de Antisible, ce qui en fait ça richesse. C'est-à-dire la capacité à l'utiliser sur différents
outils en faisant abstraction de finalement de l'outil sur lequel on est, ou en tout cas en
simplifiant les choses pour administrer cet outil. Par exemple, un module tout simplement
PostgreSQL va permettre de créer des utilisateurs, des data-bases, etc. On n'a pas du tout besoin
de parler en mode SQL, par exemple dans le cadre de PostgreSQL. On va pouvoir utiliser directement
du code en IAML qui va être descriptif et qui va nous permettre la création de ces outils là. Et
ça dans ce domaine là, Antisible est très très fort. Alors à une époque, j'avais compté le nombre de
modules, je crois qu'il n'y en avait pas loin de plus de 2000 modules Antisible, alors des plus
ou moins gros, bien sûr, mais dans des domaines extrêmement variés. Ça va aller à la fois sur
des parties applicatives, des parties systèmes, des parties réseaux également. Donc là,
c'est ce qui en fait une très grande richesse. Et si on le compare à d'autres outils, c'est de loin
celui qui est le plus riche en matière de modules avec des modules qui sont généralement bien suivis
et bien documentés. Ça, c'est extrêmement important, notamment pour les montées de
versions, c'est très très cool de pouvoir l'utiliser. Donc ça, c'est un point extrêmement
intéressant. Viens avec Antisible et ça, on y reviendra certainement dans mes prochains podcasts
des notions qui ne sont pas très complexes finalement. On a la notion d'inventory qui est
finalement l'inventaire de notre infrastructure, de notre parc. Et là, l'idée, c'est d'essayer
d'avoir un inventaire relativement unique, uniforme, tenu à jour. Il est possible de bénéficier
d'inventaires dynamiques, c'est-à-dire de se connecter par exemple à un cloud provider pour pouvoir
récupérer cet inventaire de manière dynamique sans avoir à intervenir ou en tout cas en intervenant
le moins possible. Ensuite, on a les rôles. Les rôles, c'est quoi ? C'est l'utilisation,
c'est la mise en retranscription, on va dire, de ce code, d'utilisation des différents modules.
Donc c'est là, on va retrouver vraiment le code Antisible et la jonction entre d'un côté les
inventaires, donc les machines sur lesquelles on va vouloir déployer des choses. Et de l'autre côté,
les rôles, eh bien, ça va être ce qu'on appelle le playbook. Le playbook, c'est l'articulation
des deux. C'est-à-dire, c'est là où je vais décrire sur quelle machine ou sur quelle
groupe de machines je vais installer telle ou telle application et je vais lancer telle rôle. Donc ça,
c'est quelque chose qui est très important à comprendre. Une fois que vous avez compris
cet élément-là, vous avez compris que par exemple dans le playbook, on va éviter de mettre du code,
du code de rôle, etc., on va vraiment se concentrer sur l'articulation du côté groupe
que je vais définir dans les inventaires et du côté quel rôle je vais jouer dessus.
Et généralement, les gens qui débutent sur Antisible, ils ont tendance à mettre du code
dans le playbook. Surtout, ça c'est à éviter. Dès que vous commencez à faire du Antisible,
vous créez un rôle, vous mettez votre code dans le rôle et le playbook sert à l'articulation
de 2. C'est un fondamental qu'il faut garder. Je vous le disais au tout début aussi dans les
points qui font que Antisible marche et marche bien. C'est des outils annexes qui existent.
Alors, il en existe pas mal, mais on va en citer notamment un qui est très important, Antisible
Vault. Souvent, dans pas mal d'outils de déploiement de configuration, on parle de secret, mais on a
du mal à gérer les secrets. C'est-à-dire, on va reposer sur un stockage de secret qui va être
et chacun va être obligé un petit peu d'aller trouver sa solution, etc. Ce qui est toujours le
cas avec Antisible. On peut fonctionner avec des outils externes, mais Antisible dispose lui-même
d'outils internes, d'un outil interne qui est assez pratique, formidable. C'est Antisible Vault.
Donc, ça, il est vraiment très, très sympathique. Vous pouvez le retrouver dans la playlist
Antisible sur la chaîne Xavki. Vous le retrouverez. On a Antisible Playbook dédié
au lancement des Playbooks Antisible Galaxy. On parlait de la communauté tout à l'heure.
Dans cette communauté, ce qui se passe, on a besoin, tout le monde développe un petit peu son code
de son côté, mais on a besoin de se recentrer et d'éviter de chacun réinventer la roue.
Par exemple, si vous avez besoin de déployer un cluster PostgreS, un cluster Kafka ou autre,
vous avez pouvoir vous rendre sur Antisible Galaxy. C'est gardien de la galaxie, mais version
plus et plus. Vous allez retrouver dessus des rôles qui sont dédiés à la création de cluster,
donc du code qui va déjà rédiger et les gens vont chercher à le partager, vont le maintenir,
vont le versionner, le faire évoluer au fur et à mesure du temps. Donc, ça fait gagner un temps
très, très précieux. Je dirais même qu'au bout d'un moment, un stage, j'en étais arrivé là,
c'est que, par exemple, on me dit, tiens, moi, j'ai besoin d'installer Kafka. Moi,
je ne connaissais pas Kafka. Qu'est-ce que j'ai fait ? J'étais dans Antisible Galaxy et sachant
ayant les réflexes pour lire du code Antisible, j'allais lire sur Antisible Galaxy mon code Antisible
tranquillement et je me disais, le fichier de configuration principal, il est à cet endroit-là.
Les éléments qui varient à l'intérieur, je vais pouvoir les retrouver puisque je sais lire le
template et je vais me dire, il y a tels et tels éléments qui ont tendance à être important
puisqu'on les fait varier, etc. Donc, ça, c'est vraiment très, très sympathique. Antisible
Doc qui permet de consulter la documentation de Antisible, notamment à travers le terminal,
très, très sympathique. Vous avez pouvoir l'inter avec Antisible, l'inter également tout votre code,
le faire, vous vous faire progresser un petit peu au fur et à mesure. Les possibilités d'installation
dans Antisible, vous avez plusieurs moyens de l'installer soit à travers du PIP, on reste quand
même dans l'univers Python. Moi, je ne suis pas très fan, mais je suis beaucoup plus fan de l'installation
par paquet, paquet d'Ebian. Vous allez le retrouver bien sûr sur Red Hat avec du RPM, etc. Il n'y a
pas de filet ou en tout cas l'utiliser à travers la source et ça, c'est possible également.
Alors, pour les gens qui veulent un petit peu plus loin, il y a AWX ou Tower. Donc,
c'est des outils qui vont être plus, plus pour Antisible. C'est une couche graphique qu'on
va remettre au-dessus et qui va permettre d'améliorer les capacités de Antisible. On parlait de
parallélisation, de multi-utilisateurs, de multi-usages, de gestion des secrets en même temps,
vraiment beaucoup, beaucoup de choses très, très sympathiques avec ces outils Tower AWX,
vraiment très, très bien. Voilà. Donc, n'hésitez pas à partager ce podcast,
à vous abonner pour ne pas manquer les prochains podcasts. N'oubliez pas à prener
et progressons ensemble. C'est le mot d'ordre de ce podcast. Donc, n'hésitez pas à me faire
des retours également. Et voilà, vous me retrouvez sur la plupart des outils de diffusion de podcast.
Je vous dis à très bientôt sur le podcast Xavki et sur la chaîne Xavki. Allez, ciao à tous !