Skip to content
A command line tool to create a graph representing your Ansible playbook tasks and roles
Python JavaScript Makefile Shell CSS
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jun 6, 2019
ansibleplaybookgrapher Update changelog for 0.9.1 Jun 9, 2019
tests fix #18: New CLI compatible with ansible 2.8 (#19) Jun 9, 2019
.gitignore Do not remove the generated svg after the tests Mar 25, 2019
.travis.yml Travis: add ansible 2.9 and remove ansible 2.7 Nov 13, 2019 Update changelog for 0.9.1 Jun 9, 2019
LICENSE fix bug where the data files are not included in the package Nov 8, 2017
Makefile move tests related files to tests/, FIXTURES_DIR relative to tests Mar 25, 2019 Update Readme: The grapher now requires ansible >= 2.7.0 Apr 3, 2019
setup.cfg Add ability to run the tests with "python test" Feb 18, 2019 Fix requirements_tests path in Mar 25, 2019 fix: main should not return anything, update tests Feb 18, 2019

Ansible Playbook Grapher

Build Status PyPI version Coverage Status

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.


  • Ansible >= 2.7: The script has not been tested with an earlier version of Ansible, some features may not work. If you still use an older version of Ansible, create an virtual environment and install ansible-playbook-grapher. pip install will install a version of Ansible >= 2.7

  • graphviz: The tool used to generate the graph in SVG.

$ sudo apt-get install graphviz # or yum install or brew install


$ pip install ansible-playbook-grapher


$ 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.

  --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.
                        the new vault identity to use for rekey
                        new vault password file for rekey
  -o OUTPUT_FILE_NAME, --ouput-file-name=OUTPUT_FILE_NAME
                        Output filename without the '.svg' extension. Default:
  -s, --save-dot-file   Save the dot file used to generate the graph.
                        only run plays and tasks whose tags do not match these
  -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
  -v, --verbose         verbose mode (-vvv for more, -vvvv to enable
                        connection debugging)
  --version             show program's version number and exit


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


  • 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
You can’t perform that action at this time.