Use Custom Modules with Many Playbooks

We’re exploring a somewhat different use case for Ansible and I’m trying to figure out if there’s an existing feature for module management that I’m missing. Our use case would require several custom modules being used by many people in many different environments. Is there a good way to share and import custom modules?

So far, I’ve found these three ways to use custom modules:

  1. Put them in a playbook under a library folder. We don’t want to copy-pasta our modules everywhere, though.
  2. Have everyone clone each module repo and manage their ANSIBLE_LIBRARY environment variable. It’s kind of a mess since users will be of differing technical skill level and different OS platforms, though. It also complicates module updates and versioning.
  3. Get them into ansible-modules-core or ansible-modules-extra. Unfortunately, this isn’t feasible at the moment. Our modules wouldn’t make much sense to others.

Am I missing something? Is there a better way?

Thanks in advance!

  • Evan

Put them in a common role and make the plays that need them include this role.