Ansible, Ansible, Ansible ou les nouveaux usages dans l’IT
Ça va être un drôle de billet. Je vais partir en live et on verra où cela nous mènera. Il est d’ailleurs assez drôle de penser que souvent le lecteur imagine que le blogueur écrit avec des arguments, une fin prévue, l’idée qu’il sait où il va, qu’il va se limiter en taille du texte, finalement qu’il va être logique. Je fais souvent le contraire parce que putain j’aime ça, faire le truc en live et se retrouver en face de ses contradictions, c’est ça que c’est bon !
Je me suis retrouvé devant une page blanche ce jour du 18/01/2015. J’ai terminé deux nouveaux articles server@home et là maintenant je n’ai pas envie de continuer à avancer dessus. Je reprendrai la semaine prochaine probablement. J’ai trouvé une sorte de rythme, je fais 1 ou 2 articles techniques puis 1 article de réflexion. Je m’autorise bien sûr à faire ce que je veux et comme je le veux mais c’est le rythme que j’aime et qui me plaît.
J’ai beaucoup d’idées en stock et donc de sujets à traiter comme la veille, un nouvel article sur Ansible (technique), la sécurité, server@home et tant d’autres. Mais au moment où je me suis dit j’arrête server@home pour aujourd’hui, je n’ai pas su sur quoi partir comme article de réflexion.
Et puis Ansible m’est apparu comme une évidence mais attention, on ne va pas du tout parler technique mais du milieu informatique. Pourquoi Ansible ? Parce que j’aime ça, putain oui j’aime ça. Je balance pas un truc nouveau parce qu’il est nouveau, non, c’est tout le contraire. Je suis intraitable, mauvais public, curieux, extrêmement exigeant. Ansible est pour moi une petite révolution malgré ces critères.
Je crois que fondamentalement je veux parler d’Ansible car ça cristallise un malaise, une incompréhension que j’ai du secteur informatique, des adminsys et techniciens voire des utilisateurs en particulier.
Je vends Ansible comme un vendeur d’aspirateurs, c’est une catastrophe et j’en suis conscient. J’aime ce truc donc j’en parle souvent voire tout le temps, c’est mon gros coup de cœur du moment (attention j’en ai un tous les 5 ans). Pour autant je me rends compte de cet état, je sais m’en détacher et quand j’en parle même si c’est le cœur qui parle, j’écris de manière objective.
Ansible c’est une tuerie, vraiment, il faut vous y mettre. En fait tu vas tenter de nous convaincre de nous y mettre avec des arguments ? Bah en fait pas du tout, ce qui m’intéresse c’est ce malaise, cette incompréhension du secteur informatique que j’ai. Peut-être parce que je n’ai pas de cursus scolaire réel pour exercer mon métier, plus probablement parce que j’apprends sur le tas, je découvre par moi-même.
Tu peux en venir au problème stp j’ai autre chose à foutre ? Oui, excuses-moi. Donc j’aime Ansible (remarquez le verbe extrêmement fort utilisé). Évidemment je n’ai pas d’actions chez eux et je me dois aujourd’hui de faire un bilan, la série Ansible for the win a fait un bide. J’ai essayé de vendre le truc à d’autres (un vendeur d’aspirateurs je vous dis !) et objectivement tout le monde s’en fout. Pour autant vendredi j’ai passé la majorité de ma journée à écrire un playbook pour installer DokuWiki (avec Nginx et php5-fpm) et un autre pour restaurer la dernière sauvegarde d’un DokuWiki en prod. Ce n’est pas encore terminé mais je suis à deux doigts de dire que j’en suis fier (fierté vous imaginez la puissance du mot ?).
Alors voilà mes incompréhensions :
– A quel moment le shell/bash est dépassé ou sera dépassé ? Je veux dire ce n’est qu’une manière de travailler, un outil. Quand est-ce qu’il sera déprécié ? Jamais ? Vous savez que c’est faux, quelque chose de mieux viendra le remplacer un jour
– On m’a souvent renvoyé dans les cordes avec un argument je dois le dire comme je le pense (et je m’en excuse vraiment, vraiment, vraiment beaucoup) ridicule : « Bof, je fais la même chose avec des scripts, tmux/screen, ClusterSSH ». Je sais. Moi aussi je sais faire des calculs avec un boulier mais depuis on a inventé l’ordinateur. C’est un argument dur (que je n’assume pas car c’est une vacherie) mais à la hauteur de l’argument qu’on me sert. Pourquoi faire simple dans un seul outil alors qu’on peut faire compliqué avec plusieurs ?
– Aucun outil n’est parfait pas même Ansible, pas même un script, pas même le shell. Tous ont des défauts parfois même à cause des qualités qu’ils ont décidé de mettre en avant. Systemd est un bon exemple, on va avoir une relative cohérence entre RedHat et Debian grâce à ce truc qui va englober le démarrage et les services mais d’un autre côté, on n’aura plus la philosophie un seul outil pour faire quasi-parfaitement une chose simple
– Mutation/Évolution, c’est le mot. Une personne qui n’a pas ces concepts à l’esprit alors qu’il travaille dans le milieu informatique ne comprends pas ce milieu. J’ai pleinement conscience que Facebook a à peine 10 ans, Debian a un peu plus de 20 ans. Si je meurs à 80 ans, vous vous rendez compte du nombre colossal, inimaginable de nouvelles solutions, outils, logiciels, révolutions qui se seront produits dans le secteur informatique ? Il faut se remettre en cause tout le temps dans ce secteur, c’est vital car c’est l’âme de ce secteur d’évoluer sans cesse et à une vitesse folle
– Comment devons-nous considérer les licences libres remis à l’échelle de l’humanité ? J’ai un passif de joueur (gros joueur quand-même dans ma jeunesse). Ce qui me revient constamment en tête quand je pense aux licences libres (GPL etc.), c’est le mot sauvegarde. Le code source est publié, on peut le modifier et le partager. Ça appartient donc maintenant à l’humanité, à tous les hommes, à notre histoire et à notre évolution. C’est pour ça que j’aime le Libre, on construit réellement le monde de demain et on donne à tous la possibilité d’y contribuer. A partir de ce moment-là, Ansible étant en GPL, ça appartient à tout le monde, ça ne disparaîtra plus ! C’est une avancée technique, une facilité de travail dans la vie de tous les jours d’un adminsys ou d’un utilisateur ayant plusieurs postes, mais avant tout un usage créé de rien mais qui restera définitivement pour tous
Par conséquent voici mes arguments pour Ansible NON PAS EN TANT QUE LOGICIEL MAIS EN TANT QU’USAGE :
– Scalabilité : Votre playbook est valide pour 1 ou 1000 postes, vous êtes nativement paré pour être scalable, déployer 1 ou 10 serveurs en 2 minutes
– Rapidité : Modifier une variable ou deux dans un playbook rien de plus simple, déployer par une commande sur 10 serveurs
– Idempotence : Si l’action a déjà été effectuée, elle ne sera pas effectuée une nouvelle fois
– Simplicité et bordel c’est le maître mot en informatique : La configuration, l’installation, la compréhension (format YAML) est simple même les pré-requis nécessaires (Python et SSH)
– Centralisation : Vos fichiers de configuration, scripts, playbooks sont centralisés sur une unique machine rien que cela c’est énorme en terme d’organisation et de cohérence du S.I. Vous déployez tout d’un endroit unique, vous sauvegardez juste ce dossier et vous avez toute la gestion de configuration de votre S.I
– DevOps : Les outils tel que Puppet, Chef, Ansible, Salt sont une tendance lourde qui va arriver dans l’IT, c’est l’automatisation (gestion de configuration) qui pousse à la porte, c’est le mouvement DevOps qui arrive, soyez en conscient, il faut vous y mettre
– Social : Tout comme Docker, Ansible a un « repository/registry » où on peut partager les playbooks. Hier on cherchait à créer un script, il fallait des connaissances, des recherches maintenant il faudra juste chercher un playbook qui correspond à notre besoin. Avant on écrivait des tutos pour installer un logiciel demain on distribuera un playbook Ansible ou un Dockerfile Docker ou on renverra sur son GitHub, c’est une révolution (et je pèse mes mots)
– Cohérence : Encore une fois bien détaché le logiciel de l’usage, on peut critiquer l’outil/le logiciel, l’usage non. Pourquoi cohérent ? Car cela simplifie, centralise, englobe des besoins
– Un nouvel usage n’efface pas l’ancien, il amène une chose en plus, une manière de travailler différente souvent meilleure, nous continuerons évidemment à utiliser le shell et des scripts tout comme ClusterSSH et tmux/screen
– Pour tout nouvel outil, il est nécessaire d’y passer du temps pour voir les contraintes, les usages, les gains. La série Ansible for the win est là pour vous faire gagner du temps et vous mettre le pied à l’étrier
Vous avez deux postes sur GNU/Linux et vous travaillez dans l’informatique, je vous invite à vous mettre à Ansible (ne voyez pas le logiciel, voyez l’usage, vous choisirez ensuite quel logiciel vous correspond le mieux entre Ansible, Puppet, Chef etc.). Vous avez deux postes sur GNU/Linux et vous êtes simple utilisateur, jouez avec Ansible une journée entière (7h) et vous verrez les avantages, le potentiel.
Aux simples utilisateurs : Comprenez que le Libre et GNU/Linux sont aujourd’hui tirés/poussés par le monde de l’entreprise. Je ne juge pas si c’est bien ou si c’est mal mais si vous voulez connaître le futur de GNU/Linux c’est de ce côté-là qu’il faut regarder.
Je suis parti en live et je peux dire maintenant arrivé à la fin que ça s’est transformé en un cri du cœur. Est-ce qu’il y a d’autres personnes qui pensent comme moi, qui se posent les mêmes interrogations ? Merci de votre participation et de vos commentaires !
Déjà 5 avis pertinents dans Ansible, Ansible, Ansible ou les nouveaux usages dans l’IT
Les commentaires sont fermés.
Je pense que les gens ne veront d’interet a des outils de Configuration Management qu’a partir du moment ou il y a une besoin de scalabilite (ca ne sonne pas francais a mon oreille mais bon ca fait 11 ans que je n’habite plus en France).
Utiliser des outils de CM ca prends beaucoup de temps, et si tu n’as pas besoin de gerer beaucoup de serveurs identiques, ca peut effectivement sembler comme un gros investissement en tant d’utiliser Ansible ou autre par opposition a des scripts persos.
Le plus dur avec l’utilisation de scripts persos pour automatiser le deploiement de serveur reste la lisibilite et la facilite du passage de savoir a d’autres gens, avec des outils tels que Ansible ou Puppet (ou Chef, cfEngine, Saltstack, etc…) tu peux au moins lors de recrutement chercher ces competences en particulier
Encore merci pour tes articles sur Ansible, je pense que je vais me pencher dessus rapidement parce que pour moi le fait qu’il soit ecrit en Python est un gros avantage par rapport a Puppet qui est en Ruby
Pour le reste, dommage qu’il y ait beaucoup de contre-vérité (ou simplifications abusives) dans ce … cri du coeur
Cet article était un cri du cœur, c’était une envolée lyrique proche du ridicule. J’assume lol. Il y a évidemment d’autres outils et chacun choisira le plus pertinent selon ses besoins et ses goûts.
Une chose que je n’ai pas développé dans l’article car c’était majoritairement tourné vers un usage professionnel, c’est la simplicité et la lisibilité redoutable d’un playbook. Tu mets le doigt dessus « Le plus dur avec l’utilisation de scripts persos pour automatiser le deploiement de serveur reste la lisibilite et la facilite du passage de savoir a d’autres gens ». La plupart des personnes (techniciens et administrateurs) ne s’en rendent pas compte. Le script est lisible, propre pour eux et incompréhensible ou dépassé pour la personne qui reprend le script suite à leur départ.
Pour une personne ne travaillant pas dans l’informatique (simple utilisateur donc) ou même pour un technicien n’ayant jamais fait de scripts, est-ce qu’il est plus facile de se mettre aux scripts ou à Ansible ? Quand on connaît bien l’usage des scripts, on reste sur ses petits scripts mais la réponse est bien moins évidente dans le cas d’un débutant.
Tcho !
Je suis d’accord avec ton raisonnement, il y a cependant du faux. Le langage de développement a une incidence sur ses outils et il n’est pas utile d’aller sous le capot pour le constater. Un playbook Ansible utilise des conventions YAML et Python. Un playbook Puppet utilise des conventions Ruby. Une personne ayant des facilités sous Python comprendra plus facilement certaines syntaxes sur Ansible par exemple.
Quelles contre-vérités (ou simplifications abusives) remarques-tu ?
Merci, Tcho !
Lister ce que je trouve un peu « limite » ne serait pas très constructif. Cela pourrait être pris comme des arguments contre Ansible alors que ce n’est pas le cas. Ce serait plutôt une formulation de ce que des arguments venus du coeur sont loin d’être les plus convaincants car nécessairement très subjectifs.
Je ferme les yeux, je pointe mon doigt au hasard (presque : La lisibilité !! C’est le critère subjectif par excellence. Ce que je trouve lisible, tu le trouveras confus et inversement. Le salut est dans la documentation interne. Et cela se voit bien dans Ansible avec les champs additionnels… Or quel que soit l’outil, mettre ou pas des commentaires est un simple choix du développeur. Si un développeur à la préoccupation de faire lisible et modulaire, c’est parfaitement possible avec des tas d’outils (et pas seulement Ansible). S’il n’a pas envie ben c’est rapé dans tous les cas…
Ansible est certainement un très bon outils. Mais le choix de son utilisation ou pas ne relève pas seulement d’une sorte d’anti-ringuardise, d’une course à la techno qui serait obligatoirement incontournable, ou critère de compétence. Comme admin/bénévoel/amateur mon premier souci n’est pas d’anticiper ou de suivre les nouveaux usages, mais simplement celui de répondre aux besoins des utilisateurs. Si c’est besoins nécessitent/exigent de faire évoluer l’IT (infra-technique) alors oui, dans ce cas.
Bref, le pouvoir de conviction des cris du coeur n’est malheureusement pas proportionnel à leur sincérité. (Et même plutôt…).
J’adore LaTeX mais je n’ai jamais convaincu/converti un seul utilisateur par ce seul fait. J’ai toujours attendu qu’il soit confronté à un réel problème/besoin pour lequel LaTeX était une (la?) solution même au prix d’un certain investissement.
Comme d’hab, je vais conclure avec un petit cas d’étude pour Ansible
vérifier en permanence qu’une machine est bien « scotchée » à une relase ubuntu (exemple) donnée (lsb_release), c’est à dire que les mises à jour éventuelles restent nécessairement dans ce domaine, que son intégration dans clusterssh (et oui, Ansible doit pouvoir s’intégrer avec d’autres usages, c’est toi qui le dit) respecte cette condition (clusterssh donne accès à toutes les machines ayant cette release)… 10 lignes max (sans les commentaires