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:
- Include both
parentandchildin yourrequirements.ymland simply ignoremeta/main.yml - Include
parentinsiderequirements.ymland duplicate the same content insidemeta/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:
- Copy the content of
requirements.ymlintometa/main.ymlrequirements list - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b599f51d2d8f8f5e0d92df29373b750d153ad921268d5f933fdfde53610edcd7
|
|
| MD5 |
01b806ff8727e639814f4d2ab4d0cde2
|
|
| BLAKE2b-256 |
3f26722c119ed18893513840d1c05a877a94d503638899aca597a18f09c2ad5e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca23e51e44a49d3d40e81c73dc8fff5c22a64769541f1c937b571ab555430afa
|
|
| MD5 |
2fc485ddb17793dfbade1bf872fd1605
|
|
| BLAKE2b-256 |
9dcf8254b926923315f2c97a1c074e12edb3e026ba631b3f9180be2a7fb4f920
|