Skip to content

Connect AWX to Gitea

Purpose: Once AWX is deployed, you will want to connect Gitea at https://git.bunny-lab.io. The reason for this is so we can pull in our playbooks, inventories, and templates automatically into AWX, making it more stateless overall and more resilient to potential failures of either AWX or the underlying Kubernetes Cluster hosting it.

Obtain Gitea Token

You already have this documented in Vaultwarden's password notes for awx.bunny-lab.io, but in case it gets lost, go to the Gitea Token Page to set up an application token with read-only access for AWX, with a descriptive name.

Create Gitea Credentials

Before you make move on and make the project, you need to associate the Gitea token with an AWX "Credential". Navigate to Resources > Credentials > Add

Field Value
Credential Name git.bunny-lab.io
Description Gitea
Organization Default (Click the Magnifying Lens)
Credential Type Source Control
Username Gitea Username (e.g. nicole)
Password <Gitea Token>

Create an AWX Project

In order to link AWX to Gitea, you have to connect the two of them together with an AWX "Project". Navigate to Resources > Projects > Add

Project Variables:

Field Value
Project Name Bunny-Lab
Description Homelab Environment
Organization Default
Execution Environment AWX EE (latest) (Click the Magnifying Lens)
Source Control Type Git

Gitea-specific Variables:

Field Value
Source Control URL https://git.bunny-lab.io/GitOps/awx.bunny-lab.io.git
Source Control Branch/Tag/Commit main
Source Control Credential git.bunny-lab.io (Click the Magnifying Lens)

Add Playbooks

AWX automatically imports any playbooks it finds from the project, and makes them available for templates operating within the same project-space. (e.g. "Bunny-Lab"). This means no special configuration is needed for the playbooks.

Create an Inventory

You will want to associate an inventory with the Gitea project now. Navigate to Resources > Inventories > Add

Field Value
Inventory Name Homelab
Description Homelab Inventory
Organization Default

Add Gitea Inventory Source

Now you will want to connect this inventory to the inventory file(s) hosted in the aforementioned Gitea repository. Navigate to Resources > Inventories > Homelab > Sources > Add

Field Value
Source Name git.bunny-lab.io
Description Gitea
Execution Environment AWX EE (latest) (Click the Magnifying Lens)
Source Sourced from a Project
Project Bunny-Lab
Inventory File inventories/homelab.ini

Check the box at the bottom named "Update on Launch". This will pull the latest inventory each time a job is run. It may slightly slow down jobs, but it ensures that everything is updated every time a job is ran.

Webhooks

Optionally, set up webhooks in Gitea to trigger inventory updates in AWX upon changes in the repository. This section is not documented yet, but will eventually be documented.