Hi there!
Thanks for your interest in making Ansible better for everyone!
You do NOT need any Python skills to complete the activities below.
However, if you want to develop a collection with modules that do real work, you should know the basics of Python; or PowerShell if you plan to develop collections for Windows systems.
Always worth mentioning that to be a contributor does not necessarily mean to be a coder: there are plenty of other ways to make valuable contributions.
Anyway, I believe understanding how Ansible collections work under the hood is helpful for almost any kind of contributor.
Go through the docs below one by one to get your hands dirty.
Collections
1. Get started with Ansible: Understand the fundamentals of Ansible automation and run a playbook against your local machine.
2. Understand what an Ansible collection is: Read the definition of the collection, install a collection such as community.general
, and then use a filter plugin from the collection in your playbook following the examples in the collection docs.
3. Create an Ansible collection with a simple module step by step: Create your first module to understand how it works.
4. Set up a repository for an Ansible collection step by step: Set up a repo in your GitHub profile for a collection with your module.
5. Release an Ansible collection step by step: Release and publish your collection on Galaxy.
6. Ansible Community package inclusion checklist: Let’s imagine you want to submit your collection for inclusion to the package; go through the checklist and fix all discrepancies you’ll find in your dummy collection. Ping me if you have any questions along the way.
7. Submit your first contribution to Ansible step by step: Learn how to contribute to an existing collection (there’s a link to an easyfix issue where you can practice).
Execution environments
It’s not necessary for collection development, but execution environments (EEs) allow you to conveniently share your collections not only via Galaxy but also as container images with your colleagues and customers through a public or your own local registry:
1. Get started with EEs: Build your first EE and run it with ansible-navigator. Also run a simple playbook with a pre-built community-ee.
2. Run a local container registry for Execution Environments: Set up your local registry and publish your image. Alternatively, you can explore Galaxy NG that also supports EEs.
There we go!
Your likes and feedback in comments are much appreciated
Thanks for reading and your interest in contributing to Ansible!