No description
Find a file
Mohamed HAIDARA c99b3debf6 refactoring
2017-11-16 15:05:45 +01:00
ansibleplaybookgrapher refactoring 2017-11-16 15:05:45 +01:00
examples New example 2017-11-16 14:36:30 +01:00
tests initial commit 2017-10-25 12:14:33 +02:00
.gitignore initial commit 2017-10-25 12:14:33 +02:00
LICENSE add license 2017-11-06 13:43:31 +01:00
Makefile Add a makefile to build, test the installation and deploy the package to pypi 2017-11-09 15:18:12 +01:00
MANIFEST.in fix bug where the data files are not included in the package 2017-11-08 17:49:18 +01:00
Readme.md pypi badge 2017-11-16 14:41:04 +01:00
setup.cfg fix some comments and updated setup.py url and setup.cfg description-file 2017-10-26 11:03:21 +02:00
setup.py Use lxml instead of xml.etree.ElementTree : lxml support has more functionalities 2017-11-13 15:12:09 +01:00
test_install.sh Add a makefile to build, test the installation and deploy the package to pypi 2017-11-09 15:18:12 +01:00

Ansible Playbook Grapher

PyPI version

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.

Pérequis

  • Ansible >= 2.4: The script has not been tested yet with an earlier version of Ansible.
$ sudo pip3 install 'ansible>=2.4'
  • graphviz: The tool used to generate the graph in SVG.
$ sudo apt-get install graphviz

Installation

$ sudo pip3 install ansible-playbook-grapher

Usage

$ ansible-playbook-grapher examples/playbook.yml

Example

$ ansible-playbook-grapher --include-role-tasks  examples/example_with_roles.yml

Example

Some options are available:

$ ansible-playbook-grapher --help
usage: ansible-playbook-grapher [-h] [-i INVENTORY] [--include-role-tasks]
                                [-s] [-o OUTPUT_FILE_NAME] [-v]
                                playbook

Simple grapher for an Ansible Playbook. You will need to install Ansible,
graphviz on your system (sudo apt-get install graphviz). Has been tested with
Ansible 2.4.

positional arguments:
  playbook              The playbook to grah.

optional arguments:
  -h, --help            show this help message and exit
  -i INVENTORY, --inventory INVENTORY, --inventory-file INVENTORY
                        Ansible inventory. Useful if you want to have a
                        tooltip with hostnames on the play nodes.
  --include-role-tasks  Include the tasks of the role in the graph. Can
                        produce a huge graph if you have lot of roles.
  -s, --save-dot-file   Save the dot file used to generate the graph.
  -o OUTPUT_FILE_NAME, --ouput-file-name OUTPUT_FILE_NAME
                        Output filename without the '.svg' extension. Default:
                        <playbook>.svg
  -t TAGS, --tags TAGS  Only show tasks tagged with these values.
  --skip-tags SKIP_TAGS
                        Only show tasks whose tags do not match these values.
  -v, --version         Print version and exit.

Contribution

Contributions are welcome. Feel free to contribute by creating an issue or submitting a PR 😃

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
  • Ansible: Variables interpolation in node name (when possible)
  • Add support for tags