Hi all,
I am playing around with creating an Ansible collection and some modules for managing different aspects of an open-source service. I am writing the modules using Go since the service’s admin client SDK is only available in Go. The SDK features a fair chunk of non-trivial logic which I would prefer not to port to Python.
So, assuming that I am stuck with binary modules, what are some good approaches to distributing the binary modules so that it becomes easy for someone else to use the Ansible collection?
I can’t directly bundle the modules with the Ansible collection since the current Galaxy maximum tarball size is 2 MB. Also, even if I could, I’d need to include support for multiple operating systems and CPU architectures.
I could bundle the source code and leave the rest to the user of the collection but that’s not very user-friendly.
I am currently leaning towards packaging them in Debian/RPM packages, and including a role in the collection that installs them in /usr/share/ansible/plugins/modules.
Is there a more preferred approach?