Molecule¶
Molecule is a complete test framework for ansible roles.
Test suite¶
- Lint
- Dependency
- Syntax
- Convergence
- Idempotence
Configuration¶
Add molecule to existing role:
1 | molecule init scenario --scenario-name default --verifier-name testinfra --driver-name docker --role-name $ROLENAME |
Create new role with molecule framework:
1 | molecule init role --role-name $ROLENAME --verifier-name testinfra --driver-name docker |
To run molecule inside a docker container:
1 2 3 4 | docker run --rm -it -v "$(pwd)":/tmp/$(basename "${PWD}"):ro \
-v /var/run/docker.sock:/var/run/docker.sock \
-w /tmp/$(basename "${PWD}") quay.io/ansible/molecule:2.20 \
molecule test
|
To use molecule inside a docker container transparently add the following to your shell rc file (bashrc, zshrc, etc.)
1 | alias 'molecule=docker run --rm -it -v "$(pwd)":/tmp/$(basename "${PWD}"):ro -v /var/run/docker.sock:/var/run/docker.sock -w /tmp/$(basename "${PWD}") quay.io/ansible/molecule:2.20 molecule'
|
You can then invoke molecule simply with molecule. For example, molecule test, abstracting the docker stuff away from usage.