Skip to main content

A python package to automate documentation generation for ansible roles.

Project description

ansible-mdgen

<CircleCI>

Generate documentation for ansible roles

Description

This package reads all task files and creates equivalent .md files in the docs directory of the role. It also allows you to configure it so that you can combine tasks into a single .md file.

If docs directory does not exist then it will be created.

The script iterates over each of the tasks files, parsing the yaml to extract the "name" values from each task and writing it to the .md file. So good descriptions on the task names will lead to better documentation.

To install

pip install ansible-mdgen

To run

Call ansible-mdgen passing in the path to the role

ansible-mdgen <path_to_role>

See --help for all available options

To configure

Create a configuration file called ansible-mdgen.yaml in the root of the project that you want to document. Alternatively rename the config file to something else and specify this in the command line using the -C or --conf options.

ansible-mdgen <path_to_role> --conf <name_of_config_file>

In the configuration file you can specify to combine various task files into a single md file for output e.g.

tasks:
  combinations:
    - filename: <name_of_single_file_to_create_1>
      files_to_combine:
        - name: <name_of_file_to_include_1>
        - name: <name_of_file_to_include_2>
        - name: <name_of_file_to_include_3>
    - filename: <name_of_single_file_to_create_2>
      files_to_combine:
        - name: <name_of_file_to_include_1>
        - name: <name_of_file_to_include_2>

e.g. 

tasks:
  combinations:
    - filename: SystemSetup
      files_to_combine:
        - name: install-packages.yml
        - name: configure-services.yml
        - name: start-services.yml
    - filename: UserSetup
      files_to_combine:
        - name: create-users.yml
        - name: assign-privileges.yml

Combining tasks in a single .md file may be useful where related tasks have been broken down logically into different files but for documentation readability are better suited to being in one file.

To annotate

To provide and output default variable descriptions add a comment with the var annotation as follows:

# @var: <variable_name>: <variable_description>

Note: currently only available for defaults variable files... vars directory to follow...

To debug

Pass the options -vvv for debugging

Credits

The idea for this project is based on (and includes some code from) ansible-autodoc by Andres Bott so credit goes to him for his work.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ansible-mdgen-0.0.4.tar.gz (193.1 kB view details)

Uploaded Source

Built Distribution

ansible_mdgen-0.0.4-py3-none-any.whl (494.2 kB view details)

Uploaded Python 3

File details

Details for the file ansible-mdgen-0.0.4.tar.gz.

File metadata

  • Download URL: ansible-mdgen-0.0.4.tar.gz
  • Upload date:
  • Size: 193.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.12

File hashes

Hashes for ansible-mdgen-0.0.4.tar.gz
Algorithm Hash digest
SHA256 5136bdd959b6b4689395aec3b63d5e9a9cdda73ed62ec8b935bb89763c7a9d51
MD5 86a78269c5275f347392db7140e49421
BLAKE2b-256 dca870bdf272428b0ca8f0f583aef3ccb3bffc24efac7e1cfa0896fe10988bb1

See more details on using hashes here.

File details

Details for the file ansible_mdgen-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: ansible_mdgen-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 494.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.12

File hashes

Hashes for ansible_mdgen-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6f1cee53dd5ea96d0a298e7b26e737c4e4e0ef6321572f07ee3eb33c5f572ecc
MD5 ef4f9c4baa23c96bc5bcdaeccedb6348
BLAKE2b-256 f331cf8d3692a39d8ec2fc2bcb04214f4529847f934c620f4dbba38f06931e1d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page