The most interesting concept is 'Build & Deploy' and it's a pity that it isn't described even on conceptual level.
Collection Index¶. These are the collections with docs hosted on docs.ansible.com.
- And ansible is greatat creating deployment logic among other things. Where puppet, chef et al. Are primarily for automating a direct machine, Ansible is a general purpose automation framework. Terraform is definitely better at provisioning cloud resources, but Ansible is much better at automating pretty much anything else that you could think of.
- As automation becomes crucial for more and more business cases, there is an increased need to test the automation code itself. This is where ansible-test comes in: developers who want to test their Ansible Content Collections for sanity, unit and integration tests can use ansible-test to achieve testing workflows that integrate with source code repositories.
I think the 'Build & Deploy' for configuration management is the right thing, but it looks like Ansible is not very good tool to implement it (and honestly, I don't know any mainstream tool that is really good at it).
I was trying to implement it as follows:
- part of a role is executed locally, building all the configuration files from templates (build);- configuration built locally is rsynced into dedicated directory on target server, deleting unnecessary files etc (sync);- part of a role is executed remotely, setting up symlinks from real configuration paths into synced dir and running all necessary actions (restarting services etc).
Ansible Awx Docker Install
Yes, it's possible to write Ansible playbooks and roles that way, but in practice you are permanently struggling with the default Ansible playbooks and roles organizational structure.
Ansible Awx Docker Image
I believe the only devops tool that really supports this style of things now is Nix and all the infrastructure around (and conceptually it's perfect, but in practice it has it's drawbacks).