Document generator for ansible role/collection
Project description
Docsible
About
Docsible is a command-line interface (CLI) written in Python that automates the documentation of Ansible roles and collections. It generates a Markdown-formatted README file for role or collection by scanning the Ansible YAML files.
Table of Contents
Features
- Generates a README in Markdown format
- Scans and includes default variables and role-specific variables
- Parses tasks, including special Ansible task types like 'block' and 'rescue'
- Optionally includes playbook content in the README
- CLI-based, easy to integrate into a CI/CD pipeline
- Provides a templating feature to customize output
- Supports multiple YAML files within
tasks
,defaults
,vars
directory - Includes meta-data like author and license from
meta/main.[yml/yaml]
- Generates a well-structured table for default and role-specific variables
- Support for encrypted Ansible Vault variables
Installation
How to create virtual env with python3
python3 -m venv docsible
source docsible/bin/activate
To install Docsible, you can run:
pip install docsible
Usage
To use Docsible, you can run the following command in your terminal:
Specific path
docsible --role /path/to/ansible/role --playbook /path/to/playbook.yml --graph
Document collection
docsible --collection ./collections_tests/lucian/ --no-backup --graph
Only role without playbook
docsible --role /path/to/ansible/role # without include a playbook into readme
$ docsible --help
Usage: docsible [OPTIONS]
Options:
--role TEXT Path to the Ansible role directory.
--collection TEXT Path to the Ansible collection directory.
--playbook TEXT Path to the playbook file.
--graph Generate Mermaid graph for tasks.
--no-backup Do not backup the readme before remove.
--no-docsible Do not create .docsible file and do not print relative variable to generated README.md.
--comments Read comments from tasks files.
--md-template Path to the markdown template file.
--append Append to the existing README.md instead of replacing it.
--version Show the module version.
--help Show this message and exit.
Flags
--role
: Specifies the directory path to the Ansible role.--collection
: Specifies the directory path to the Ansible collection.--playbook
: Specifies the path to the Ansible playbook (Optional). ( Works only with roles )--graph
: Generate mermaid for role and playbook.--no-backup
: Ignore existent README.md and remove before generate a new one. (Optional).--comments
: Read comments from tasks files. (Optional).--md-template
: Specifies the path to the markdown template file (Optional). ( Works only with roles )--append
: Append existing readme.md if needed
Data Sources
Docsible fetches information from the following files within the specified Ansible role:
defaults/*.yml/yaml
: For default variablesvars/*.yml/yaml
: For role-specific variablesmeta/main.yml/yaml
: For role metadatatasks/*.yml/yaml
: For tasks, including special task types and subfolders
Examples
Demo2 coffeemaker_morning role
Prerequisites
Docsible works with Python 3.x and requires the following libraries:
- Click
- Jinja2
- PyYAML
TODO
- Clean the code
- Add more features
- Custom templates for collection
- Multiple playbooks handle into mermaid for collection and role
About comments
This tool work whith several type of comments.
On variables and defaults
The tool read comments placed before a variable, only if it begin with specific tag:
# title:
This tag will be used for popiulate the column Title of the README.md. It is a short description of the variable
# required:
This tag will be used for popiulate the column Required of the README.md
On tasks
The tool will read all the line before each - name:
of the tasks that begin with #
.
All comment will be reported to the column Comments of the tasks tables.
Contributing
For details on how to contribute, please read the Contributing Guidelines.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file docsible-0.7.4.tar.gz
.
File metadata
- Download URL: docsible-0.7.4.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.5.0-45-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 963a8971b99fe5f3fb63dfa2a2b02be3d2be37a5f0731c6cd9cbf764f794193d |
|
MD5 | 9d2819f51cee45fde6364a529b4e840f |
|
BLAKE2b-256 | 5fc5eda86a56264b9bdfce06ec97621a1fd077d40ad510ebedd9b918575e3e87 |
File details
Details for the file docsible-0.7.4-py3-none-any.whl
.
File metadata
- Download URL: docsible-0.7.4-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.5.0-45-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a24812ded4c8879fd6f93bf4225e75cb5c69634581d55e8244658d3be232e617 |
|
MD5 | 678ba56d89b86caa986037e73e58ff2b |
|
BLAKE2b-256 | b4ce2452df6e9583fc418a271609fdb6a2da6d1667e3a82229b0e51e26414c1e |