.github | ||
integration | ||
molecule_hetznercloud | ||
.drone.yml | ||
.envrc.sample | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.yamllint.yml | ||
CHANGELOG.md | ||
LICENSE | ||
Makefile | ||
pyproject.toml | ||
pytest.ini | ||
README.md | ||
setup.cfg | ||
setup.py | ||
tox.ini |
Molecule Hetzner Cloud Plugin
A Hetzner Cloud plugin for Molecule.
This plugin allows you to do molecule init role myrolename -d hetznercloud
and have Molecule provision on-demand Hetzner Cloud VPSes of your choice for
your integration testing. New VPSes will be automagically created and
provisioned on each molecule test
run, SSH keys are generated and managed
internally and all resources are cleaned up regardless of whether the role
under test succeeds or fails.
Support
If you use this plugin in a commercial setting or you find it personally useful, please support my maintenance work financially through my Liberapay profile or through my Github Sponsor profile. I do not receive any financial support from RedHat or Hetzner Cloud for this work.
Usage
You need to expose a HCLOUD_TOKEN
environment variable in your environment.
Find out more about how to get one of those over here.
$ export HCLOUD_TOKEN=mycoolapitoken
Then install the required Python package.
$ pip install molecule-hetznercloud
$ molecule init role myrolename -d hetznercloud
Your myrolename/molecule/default/molecule.yml
should then look like the following.
---
dependency:
name: galaxy
driver:
name: hetznercloud
platforms:
- name: my-instance-name
server_type: cx11
image: debian-10
provisioner:
name: ansible
verifier:
name: ansible
Please see docs.hetzner.cloud for information regarding images and server types.
Then just run the role.
$ cd myrolename && molecule test
To ease initial debugging for getting things started, also expose the following environment variables.
$ export MOLECULE_NO_LOG=False # not so verbose, helpful
$ export MOLECULE_DEBUG=True # very verbose, last ditch effort
Mirroring
Issues will be responded to on both issue trackers.
- git.autonomic.zone (primary)
- github.com (mirror)
Change log
See CHANGELOG.md.
Molecule Documentation
Contact
- Ping @decentral1se on the
#ansible-molecule
channel on Freenode.
License
The LGPLv3 license.
Testing
This is all done on our drone.autonomic.zone setup.
Unit tests and such.
$ pip install tox
$ tox -v
Integration tests.
(Only doable by Autonomic Cooperative members.)
$ sudo apt install -y direnv
$ cp .envrc.sample .envrc
$ direnv allow
$ pip install -e .
$ cd integration-test-role && molecule test