mirror of
https://github.com/haidaraM/ansible-playbook-grapher
synced 2024-11-10 14:14:19 +00:00
3.9 KiB
3.9 KiB
Ansible Playbook Grapher
ansible-playbook-grapher is a command line tool to create a graph representing your Ansible playbook tasks and roles. The aim of this project is to quickly have an overview of your playbook.
Inspired by Ansible Inventory Grapher.
Prerequisites
-
Ansible >= 2.4: The script has not been tested with an earlier version of Ansible. If you still use an older version of Ansible, create an virtual environment and install ansible-playbook-grapher. The installation process will install a version of Ansible >= 2.4
-
graphviz: The tool used to generate the graph in SVG.
$ sudo apt-get install graphviz # or yum install or brew install
Installation
$ pip install ansible-playbook-grapher
Usage
$ ansible-playbook-grapher tests/fixtures/example.png
$ ansible-playbook-grapher --include-role-tasks examples/example_with_roles.yml
Some options are available:
$ ansible-playbook-grapher --help
Usage: ansible-playbook-grapher [options] playbook.yml
Make graph from your Playbook.
Options:
--ask-vault-pass ask for vault password
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
set additional variables as key=value or YAML/JSON, if
filename prepend with @
-h, --help show this help message and exit
--include-role-tasks Include the tasks of the role in the graph.
-i INVENTORY, --inventory=INVENTORY
specify inventory host path (default=[%s]) or comma
separated host list.
--new-vault-id=NEW_VAULT_ID
the new vault identity to use for rekey
--new-vault-password-file=NEW_VAULT_PASSWORD_FILES
new vault password file for rekey
-o OUTPUT_FILE_NAME, --ouput-file-name=OUTPUT_FILE_NAME
Output filename without the '.svg' extension. Default:
<playbook>.svg
-s, --save-dot-file Save the dot file used to generate the graph.
--skip-tags=SKIP_TAGS
only run plays and tasks whose tags do not match these
values
-t TAGS, --tags=TAGS only run plays and tasks tagged with these values
--vault-id=VAULT_IDS the vault identity to use
--vault-password-file=VAULT_PASSWORD_FILES
vault password file
-v, --verbose verbose mode (-vvv for more, -vvvv to enable
connection debugging)
--version show program's version number and exit
Contribution
Contributions are welcome. Feel free to contribute by creating an issue or submitting a PR 😃
Dev environment
To setup a new development environment:
- Install graphviz
sudo apt-get install graphviz # or yum install or brew install graphviz
- pip install -r requirements.txt
Run the tests with:
$ make test
TODO
- Graphviz : properly rank the edge of the graph to represent the order of the execution of the tasks and roles
- Graphviz : find a way to avoid or reduce edges overlapping
- Refactor the graph representation