Gendoc automatise la création de documentation Ansible
C’est avec joie que je vous annonce l’arrivée d’Ansible-Gendoc. Cet outil,
python, permet de générer la documentation de vos roles automatiquement en
s’appuyant sur un template Jinja
et alimenté par le contenu des déclarations
du rôle: default, vars et meta.
Installation d’ansible-gendoc
Le package est disponible sur Pypi.org ↗.
Bien sûr, je vous conseille de l’installer dans un environnement virtuel :
Utilisation d’ansible gendoc
Obtenir de l’aide
Pour obtenir de l’aide sur cette commande comme souvent --help
:
Comme vous pouvez le constater pour le moment elle ne possède que deux options (pour le moment) :
- init
- render
Générer un template local
Init : optionnel puisque l’outil porte son propre template Jinja
. Pour le
générer localement afin de le modifier, il suffit d’invoquer cette commande
suivie du chemin du rôle (si omis il utilisera le répertoire courant)
Normalement dans le dossier templates
vous devriez retrouver un fichier
README.j2
. Comme dis précédemment il utilise les templates
Jinja ↗. Si vous relancez la commande une
seconde fois, ansible-gendoc
refusera de l’écraser à moins d’ajouter --force
à la commande init
.
Générer la documentation
Render : pour obtenir de l’aide sur cette commande :
Lors de l’exécution de la commande render
, si l’outil détecte la présence d’un
d’un template templates/README.j2
dans le répertoire de votre role, il
l’utilisera pour générer la documentation dur rôle.
Ajouter des sections au fichier README
Pour ajouter des sections à la page README, il suffit de créer des fichiers avec
l’extension .md
dans le répertoire racine du role. Ils seront automatiquement
intégrés.
Documentation des variables du role
Bientôt disponible.
Les évolutions futures
Il manque quelques petites choses comme spécifier quels fichiers peuvent être intégré et dans quel ordre, des petites options. Vous pouvez me soumettre vos propositions sur le repository du projet github.com/claranet/ansible-gendoc ↗. Vous pouvez aussi proposer des pull requests avec vos corrections ou ajouts.
Je dois aussi améliorer le CI, car il manque par exemple la création automatique des tags et releases lors des MERGE REQUEST.
Normalement, je vais continuer à travailler sur cet outil pour permettre de
générer la documentation d’une collection Ansible. L’idée fournir une archive
prête à être déployé sur un serveur http
. Pour cela il s’appuiera soit sur
Sphinx, soit sur Hugo. Ma préférence allant au second avec le thème Docsy
gérant nativement le support des versions de la documentation.