Skip to content
Bas edited this page Feb 16, 2023 · 2 revisions

Introduction

Welcome to the provisioning wiki! This wiki will document how to use the software in this repo.

Imaging

The purpose of this repo is to be able to run Red Hat Enterprise Linux 8 on VirtualBox with Vagrant. Hashicorp Packer is used to create a box file rhel8/efi based on a kickstart configuration that is DISA-STIG compliant. This is a base image for VirtualBox machines.

Provisioning

Hashicorp Vagrant is used to provision 3 VMs and to deploy Ansible Automation Platform on 2 of them.

Ansible Automation Platform

After deploment, the playbook vagrant-playbook.yml uses the infra.controller_configuration to make it self-hosting.

Self-hosting with GitOps

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.

Reconciliation in the Controller

When we want to adhere to these principles we need to bootstrap the configuration so that:

  1. An organization with galaxy_credentials is present
  2. Minimal credentials types: Source Control, Vault, Machine
  3. A controller project with the declared state like ansible_controller.git
  4. An inventory, sourced from the controller project, describing the environments in the group_vars/controller. 1 A job template from the controller project to run the reconciliation with the credentials on the inventory.

After the template run the Controller should manage itself.

There is no need to use this repo, unless you need to deploy a new version of AAP onto a new image.