Skip to main content

A wrapper for ansible-galaxy that allows you to define role dependencies inside a requirements.yml

Project description

Molecule Ansible Galaxy Wrapper

An Ansible Galaxy wrapper to serve as a molecule dependency plugin with intra-dependencies support.

Motivation

Imagine the scenario, you have a Role named child that depends on a role called parent and parent depends on grandparent.

To install child you need to have parent and grandparent in your roles_path:

child -> parent -> grandparent

Ansible Galaxy is smart enough to figure that out, all you have to do is define grandparent as a dependency of parent role inside meta/main.yml and then parent as a dependency inside child role meta/main.yml file.

The problem is that molecule enforces tracking role dependencies inside a requirements.yml file, in that case, you have two options:

  1. Include both parent and child in your requirements.yml and simply ignore meta/main.yml
  2. Include parent inside requirements.yml and duplicate the same content inside meta/main.yml

First approach might look reasonable in a scenarion like this, but you might have a more complex dependency relationship and in that case you will soon have big problems.

The latter looks ugly but at least you can delegate the responsability of figuring out the dependency tree to Ansible Galaxy.

Enter the Dirty Hack

At some point we will forget to append dependencies to both requirements.yml and meta/main.yml. To avoid this issue I've created this tiny wrapper that does basically two things:

  1. Copy the content of requirements.yml into meta/main.yml requirements list
  2. Run ansible-galaxy install

Usage

Install molecule-galaxy wrapper:

pip install molecule-galaxy-wrapper

Configure molecule.yml to use the warpper:

dependency:
  name: shell
  command: galaxywrapper
driver:
  name: docker
...

Test it by running:

molecule dependency

Now you can maintain role dependencies inside your requirements.yml file.

Project details


Download files

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

Source Distribution

molecule-galaxy-wrapper-0.0.4.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

molecule_galaxy_wrapper-0.0.4-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file molecule-galaxy-wrapper-0.0.4.tar.gz.

File metadata

  • Download URL: molecule-galaxy-wrapper-0.0.4.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.2

File hashes

Hashes for molecule-galaxy-wrapper-0.0.4.tar.gz
Algorithm Hash digest
SHA256 b599f51d2d8f8f5e0d92df29373b750d153ad921268d5f933fdfde53610edcd7
MD5 01b806ff8727e639814f4d2ab4d0cde2
BLAKE2b-256 3f26722c119ed18893513840d1c05a877a94d503638899aca597a18f09c2ad5e

See more details on using hashes here.

File details

Details for the file molecule_galaxy_wrapper-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: molecule_galaxy_wrapper-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.2

File hashes

Hashes for molecule_galaxy_wrapper-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ca23e51e44a49d3d40e81c73dc8fff5c22a64769541f1c937b571ab555430afa
MD5 2fc485ddb17793dfbade1bf872fd1605
BLAKE2b-256 9dcf8254b926923315f2c97a1c074e12edb3e026ba631b3f9180be2a7fb4f920

See more details on using hashes here.

Supported by

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