For a customer recently, I had to talk about with Ansible Automation 2.x, what is required to develop ansible playbooks.
Here is a high-level workflow diagram that I drew;

So what it is that… When you are writing a playbook and testing it, you need the following components:
- Ansible IDE tool – my current favourite is VSCode, because there are so many nice extensions + Red Hat recently have released ansible extension

- Ansible-Core – the command line tool, the language and framework that makes up the foundational content before you bring in your customized content.
- Ansible-Builder – to build execution environments
- Ansible-navigator – to run, test playbooks with execution environments
If you haven’t built an execution environment, the very first thing that you need to do is to build an execution environment, as below:

4 files that you need to create are;
- bindep.txt – Bindep is a tool for checking the presence of binary packages needed to use an application / library, so whatever is defined in this file will be installed.
- requirement.txt – The python entry points to a Python requirements file for pip install -r …
- requirement.yml – Outlines ansible collection requirements for galaxy to download and include into the execution environment.
- execution-environment.yml – A definition file as an input and then outputs the build context necessary for creating an Execution Environment image
Detailed examples can be found in:
https://www.ansible.com/blog/introduction-to-ansible-builder
https://ansible-builder.readthedocs.io/en/latest/
Once the required execution environment is ready, it can be shared across your colleagues to enhance the collaboration experiences through consistencies.
Also, now you can start to develop an ansible playbook;

Finally, once you are happy with the playbook and the execution environment, it should be uploaded and managed in source management systems:
- playbooks – Source Control Management Systems – e.g. github, gitlab….
- EE image – e.g.) Automation hub, Quay.io, artifactory…
Then those can be properly leveraged by Ansible Automation Platform.