/ansible-generator

Generate documentation and continuous integration files for an Ansible Role.

Primary LanguageJinjaApache License 2.0Apache-2.0

ansible-generator

Generate documentation and continuous integration files for an Ansible Role.

The intention is to focus on writing or maintaining the Ansible role, and use this tool to generate chore-like-tasks.

Overview

+--- role ----------------------+                     +--- role -------------------------------+
| meta/main.yml                 |                     | README.md                              |
| molecule/default/converge.yml |                     | bug_report.md                          |
| meta/preferences.yml          |                     | feature_requests.md                    |
| requirements.yml              |                     | FUNDING.md                             |
| molecule/default/prepare.yml  |                     | .gitignore                             |
| molecule/default/verify.yml   |                     | .pre-commit.config.yaml                |
| defaults/main.yml             |                     | .yamllint                              |
+------------------------+------+                     | .ansible-lint                          |
                         |                            | CONTRIBUTING.md                        |
+--- this tool -----+    |                            | .github/workflows/galaxy.yml           |
| defaults/main.yml | ---+                            | .gitlab-ci.yml                         |
| vars/main.yml     |    |                            | LICENSE                                |
| files/*           |    |                            | .github/workflows/molecule.yml         |
| templates/*       |    |                            | molecule/default/molecule.yml          |
+-------------------+    |    +--- this tool ---+     | .github/workflows/requirements2png.yml |
                         +--> | generate.yml    | --> | SECURITY.md                            |
+--- Galaxy ---+         |    +-----------------+     | settings.yml                           |
| galaxy_id    | --------+                            | .github/workflows/todo.yml             |
+--------------+                                      | .tox.ini                               |
                                                      +----------------------------------------+

Usage

cd ansible-role-my_role
../path/to/generate.yml

Configuration

In defaults/main.yml you can change these variable to customize the output.

Settings to Docker containers

  • docker_namespace
  • docker_image
  • docker_tag

Your username on Galaxy

  • galaxy_namespace

Your username/organization name on GitHub

  • github_namespace

Your username/group on GitLab

  • gitlab_namespace

Your name and optionally email-address

  • author

The full URL to your website

  • author_website

meta/preferences.yml

This (optional) file describes how Tox and Molecule should behave.

parameter type default description
tox_ansible_versions list of strings [5,6,7] What versions should Tox test? (Default: all.)
github_variables_mapping list not set A list of name and variable, name refers to the GitHub exposed name, variable refers to the name you'd like to pass to molecule, tox and Ansible.

Example

---
tox_ansible_versions:
  - 6
  - 7

github_variables_mapping:
  - name: secrets.VAULT_LICENSE
    variable: VAULT_LICENCE
  - name: secrets.MY_VAR
    variable: someTHING