Skip to content

playingfield/ansible_controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ansible_controller

This project is an implementation using the ansible-collection infra.controller_configuration to configure Ansible Automation Platform using Ansible Automation Platform itself (self-hosted).

Reconcile Ansible Controller GitOps Style

Four key principles of GitOps (a term coined by WeaveWorks)

  1. Describe the desired state of the whole system using a declarative specification.
  2. There is a convergence mechanism to bring the desired and observed states in sync.
  3. Hence all Git commits cause verifiable and idempotent updates in the cluster.
  4. Convergence is eventual.

Bootstrapping the Controller

When we want to adhere to these principles we need to provision the platform so that:

  • Reconciliation can run using Ansible Automation Platform
  • An organization with galaxy_credentials is present
  • Minimal credentials types: Source Control, Vault, Machine
  • The Controller project (this repo), is loaded.
  • An inventory with localhost is owned.
  • A job template from the controller project to run the playbook with the Vault credential.

Ansible Controller Project

  • This project has configuration as an inventory with group_vars for the controller
  • This configuration manages the Ansible Controller, and adds ansible_inventory and ansible_project.git and demoes.
  • Forks of this repo can be used to define your whole infra GitOps style.
  • No need to use the API
  • No need to write setup playbooks.