Skip to main content

A command line tool to create a graph representing your Ansible playbook tasks and roles

Project description

Build Status 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.

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 examples/playbook.yml
Example

Example

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

Example

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 :smiley:

Dev environment

To setup a new development environment: - Install graphviz sudo apt-get install graphviz # or yum install or brew install - Install pandoc. I recommend downloading a binary package and install it. Pandoc is used to convert the readme in rst. - pip install -r requirements.txt

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

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ansible_playbook_grapher-0.7.2-py2.py3-none-any.whl (13.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ansible_playbook_grapher-0.7.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ansible_playbook_grapher-0.7.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 acc24cac07c8f6f3907db0a5ccdbe7c2b7d696f3adacbcf3bd08e0e7711a7a75
MD5 54ad14973bb7611cb1999005e561ce28
BLAKE2b-256 c50eba85e74e17a63774ba7da8775f90f5d129e4a0e9327369690080dd79fcf5

See more details on using hashes here.

Supported by

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