Skip to content

coaxial/generator-molecule-lxd-role

Repository files navigation

generator-molecule-lxd-role

NPM version Build Status Dependency Status Coverage percentage

This Yeoman generator will create a new Ansible role with the necessary configuration to test it using Molecule on Travis CI (optional). It will run the Molecule tests using LXD containers instead of Docker containers.

Why LXD instead of Docker?

LXD containers run a full system including an init system out of the box and are extremely close to the actual metal or VM hosts usually targetted by Ansible. I find LXD containers much better suited at testing Ansible roles, rather than shoe-horning additional systems into a Docker container to simulate a real host.

LXD is more like a VM but with a container footprint. It's based on LXC and it's great. To learn more, see the official website.

Installation

First, install Yeoman and generator-molecule-lxd-role using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-molecule-lxd-role

Then generate your new project:

yo molecule-lxd-role

Folder structure after running the generator

.
├── defaults
│   └── main.yml
├── files
├── .gitignore
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── molecule
│   ├── create.yml
│   ├── default
│   │   ├── molecule.yml
│   │   ├── playbook.yml
│   │   └── tests
│   │       └── test_default.py
│   └── destroy.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── .travis
│   └── setup.sh
├── .travis.yml
├── vars
│   └── main.yml
└── .yamllint

11 directories, 15 files

Questions, Issues, and patches

Open an issue on this repo, and a PR to match if you can.

Questions are welcome as issues too.

Getting To Know Yeoman

  • Yeoman has a heart of gold.
  • Yeoman is a person with feelings and opinions, but is very easy to work with.
  • Yeoman can be too opinionated at times but is easily convinced not to be.
  • Feel free to learn more about Yeoman.

License

MIT © coaxial