Nous avons mis en place un serveur qui exécute l'infrastructure pour une petite association. Jusqu'à présent, nous avons essayé de gérer la configuration avec Ansible, mais cela n'a pas été un grand succès. Peut-être que nous le faisons mal.
En principe, l'idée est que ce serveur sera laissé seul la plupart du temps, les gens ajoutant ou modifiant des choses une fois dans une lune bleue. Il est donc crucial que tout ce qui est configuré et exécuté sur le serveur soit bien documenté et clair, car les personnes qui n'administrent pas fréquemment le système perdront inévitablement la vue d'ensemble (sans parler des détails). De plus, au fil du temps, la composition du groupe de personnes qui administrera ce serveur changera (à mesure que les gens quittent et rejoignent le «comité»).
Nous avons commencé avec une installation propre, en ajoutant des rôles dans ansible chaque fois que nous voulions configurer quelque chose (nginx, phpfpm, postfix, pare-feu, sftp, munin, ..). Peut-être en raison de notre inexpérience, nous ne sommes bien sûr jamais en mesure de taper un ensemble de tâches ansibles exactement comme nous en avons besoin en une seule fois, également parce que la configuration est un peu un processus d'essai et d'erreur. Cela signifie que dans la pratique, nous configurons généralement d'abord le service que nous voulons exécuter sur le serveur , puis nous traduisons en tâches ansibles. Vous pouvez voir où cela va. Les gens oublient ensuite de tester la tâche, ou ont peur de le faire au risque de casser des choses, ou pire: on oublie ou néglige d'ajouter des choses à ansible.
Aujourd'hui, nous avons très peu de confiance que la configuration ansible reflète réellement ce qui est configuré sur le serveur.
Actuellement, je vois trois problèmes principaux:
- Il est difficile de (lire: nous n'avons pas un bon moyen de) tester des tâches ansibles sans risquer de casser des choses.
- Il ajoute du travail supplémentaire pour d'abord déterminer la configuration souhaitée, puis comprendre comment traduire cela en tâches ansibles.
- (Idéalement,) nous ne l'utilisons pas assez fréquemment pour développer la familiarité et la routine.
Une considération importante ici est que pour tout ce que nous finissons par faire, il devrait être facile pour les nouveaux arrivants d'apprendre les cordes sans une tonne de pratique.
Existe-t-il une alternative viable qui offre encore des garanties et des contrôles (comparables à la fusion de fichiers Ansible à certains master
) que «configurer les choses et noter ce que vous avez fait» ne parvient pas à fournir?
EDIT: Nous avons envisagé de nous engager /etc
à git. Existe-t-il un moyen raisonnable de protéger les secrets (clés privées, etc.) de cette façon, mais le dépôt de configuration est-il toujours disponible en dehors du serveur?