Salut !
J’arrive enfin à ma question : les projets que j’ai créés son open-source et actuellement, ils expliquent les étapes à effectuer pour les faire tourner localement. Est-ce une bonne idée de remplacer ça parce un fichier Ansible et simplement dire "exécutez ce programme Ansible et vous êtes prêts" ? Je n’ai jamais vu une telle approche sur Github donc je me dis que ce n’est pas nécessairement une bonne idée et que je loupe une raison pour laquelle ce n’est pas plus répandu. Pouvez-vous éclairer ma lanterne ?
En effet, les étapes pour faire tourner un soft localement sont encore ce qui se fait de plus exploitable pour les gens qui n’utilisent pas le même système que toi.
La raison profonde, c’est qu’il n’y a pas qu’Ansible. Les gens peuvent aussi bien vouloir utiliser Salt, ou Chef, ou encore déployer un système conteneurisé avec docker-compose
ou dans un cluster Kubernetes avec helm
…
Pour moi, ce qui a le plus de sens, c’est d’inclure dans ton repo le script ou la configuration qui te permet de déployer le système sur l’infrastructure que tu utilises. Par exemple, j’inclus systématiquement une config Kubernetes ou un chart helm dans mon repo, puisque c’est de ça que je me sers pour déployer mon projet personnellement, et que c’est d’abord à moi que mes projets sont utiles.
Du coup, suivant cette logique, ça aurait du sens d’inclure ta conf Ansible dans tes repos git. Il faut juste faire attention à ne pas y inclure de secrets, et rester conscient que ça ne remplace pas une documentation.
PS : par contre, je voudrais tempérer le passage un peu réac' sur les conteneurs de mon VDD.
- Un programme conteneurisé est isolé du reste de la machine, donc le risque de compromettre sa machine avec un conteneur inconnu est anecdotique.
- Tout l’intérêt de distribuer un Dockerfile et d’expliquer comment lancer le conteneur est justement que l’on n’a plus qu’à expliquer aux administrateurs un ensemble homogène de points de configuration, quel que soit le système :
- Quelles variables d’environnement utiliser pour surcharger la conf,
- Le cas échéant dans quel répertoire le conteneur ira lire sa conf,
- Quels sont ses besoins en termes de volumes de disque persistants,
- Sur quels ports le conteneur va servir quoi.
Autrement dit, fournir une image de conteneur et documenter le comportement du conteneur est une façon standardisée de documenter l’installation et l’opération d’un soft, totalement indépendante de la plateforme qui le fait tourner. Si ne pas fournir cette doc est problématique, ne pas s’en contenter quand elle est là l’est tout autant. Et il n’y a pas besoin de "se taper une formation" pour cela. Simplement être au courant des bonnes pratiques en place depuis une décennie, notamment les 12-factor apps. Personnellement ce qui me fait hurler, c’est surtout les projets qui ne respectent pas ces 12-factors.