Why does Molecule make so many shell calls?

Ansible provides a Python API. However, it is not intended for direct consumption. We wanted to focus on making Molecule useful, so our efforts were spent consuming Ansible’s CLI.

Since we already consume Ansible’s CLI, we decided to call additional binaries through their respective CLI.


This decision may be reevaluated later.

Why does Molecule only support Ansible versions 2.2 and later?

  • Ansible 2.2 is the first good release in the Ansible 2 lineup.

  • The modules needed to support the drivers did not exist pre 2.2 or were not sufficient.

Why are playbooks used to provision instances?

Simplicity. Ansible already supports numerous cloud providers. Too much time was spent in Molecule v1, re-implementing a feature that already existed in the core Ansible modules.

Have you thought about using Ansible’s python API instead of playbooks?

This was evaluated early on. It was a toss up. It would provide simplicity in some situations and complexity in others. Developers know and understand playbooks. Decided against a more elegant and sexy solution.

Why are there multiple scenario directories and molecule.yml files?

Again, simplicity. Rather than defining an all encompassing config file opted to normalize. Molecule simply loops through each scenario applying the scenario’s molecule.yml.


This decision may be reevaluated later.

Are there similar tools to Molecule?