Excerpts from Wallace's message of Tue Jun 26 00:02:54 +0200 2012:
Le souci de Puppet/Chef c'est de faire des modèles qui collent à ce que l'on a en prod. On a beau avoir de super doc d'installation (chez moi on peut faire du copier coller des commandes ou les mettre dans un script et ça installe et configure tout) le soucis c'est qu'il faut les mettre à jour lors des évolutions des services ou de l'os.
Copier-coller des commandes c'est un job manuel et répétitif, donc risque d'erreurs d'inattention. Quand au script, que se passe-t-il lorsque il se plante au milieu du run et que le système reste à moitié configuré ? Et ne faut-il pas le mettre à jour pour suivre les évolutions de l'OS également ?
C'est exactement pour résoudre cette problématique que Puppet, Chef ou Ansible ont été conçus...
J'ai tenté de faire tout ce qu'il faut pour Puppet et quand j'ai fini pour avoir juste le déploiement d'une machine avec tout ce qu'il faut de configuré, changement sur plusieurs logiciels et obligé de me remettre sur la conf des modèles, pas du tout un gain de temps. Et encore j'ai la chance de travailler uniquement sur des Debian j'imagine pas du tout devoir maintenir plusieurs distros sans une sacrée équipe derrière.
La seule boite qui utilise cela dans mes connaissances, ils sont 2 sysadm pour gérer plusieurs milliers de vm qui ont strictement les mêmes modèles.
Ma conclusion c'est que ce n'est pas assez souple pour de l'exploitation quotidienne dans un parc hétérogène.
Au passage Greg merci pour cette découverte je vais tester rapidement.
C'est un peu comme de dire « j'ai fait un script en perl, mais mon code avait plein de bugs. J'en conclus que le perl c'est nul. Au passage, merci de m'avoir montré python, ça va sans doute résoudre tous les problèmes que j'avais avec perl » :-)
Ce que je veux dire, c'est que les problèmes que tu as eu ne sont pas propres à puppet, et tu tomberas probablement sur les mêmes problèmes sous Chef ou Ansible.
Quelle que soit la solution utilisée, le "problème" que tu décris se résout en (ré)apprenant à organiser le code de façon modulaire, évolutive, réutilisable, etc. C'est pas facile, c'est quelque chose qu'on n'est pas habitués à faire en tant que sysadmins. À mon avis, ça vaut vraiment la peine de demander de l'aide à un collègue développeur et de s'inspirer de la quantité de doc qu'on peut trouver à ce sujet sur le web.
À+, Marc (qui gère avec satisfaction plusieurs parcs hétérogène grâce à puppet)