Skip to content

Install

Ansible role

Since AWX project in its infinite wisdom, decided to migrate from perfectly working docker solution to kubernetes I have come up with Ansible role that will take care of everything. Well almost everything, you still need to handle https version your self.

Ansible role location

GitLab AWX Role

What you will get ?

This role will setup user, install minikube, install AWX operator and deploy AWX instance with persistent storage.

This assumes you want to use it one just one server, and not installing into Kubernetes.

Note

Works on: Centos 7 or Debian 10 ( other OS can be added easily, check the repo readme file)

Require: 4 CPU cores and 4G Ram minimal or the deployment will fail.

Require: Ansible to deploy

How to use this baby ?

Clone the git repository.

git clone https://gitlab.privatecloud.sk/vladoportos/awx_minikube_ansible.git
cd awx_minikube_ansible

This contains sample Ansible playbook that you need to edit to fit your requirements. Its just few things, nothing serious.

Edit inventory

Edit the inventory file, its the same as any inventory for Ansible, so clean it, and add just one server where you want to deploy the AWX.

For example:

10.0.0.114

Refer to this guide about Ansible inventory: How to edit Ansible inventory

Edit main.yml

Edit main.yml file and change - hosts: both_nodes to - hosts: all this will make the execution on all servers in inventory file. But since we have there just one server now it will run on just it.

Edit vars in main.yml

There are some variables you might want to customize under vars: there is description there, so this should not be any mystery.

Lunch

Run the playbook with your inventory

ansible-playbook -i inventory main.yml

When it finish, hopefully successfully, it will return IP and port on which your AWX instance is living now.

Example:

.
.
ok: [10.0.0.114] => {
    "msg": [
        "http://192.168.49.2:30983"
    ]
.
.
.

Important

This IP and port is accessible only from localhost. Its the http protocol of AWX. To have it accessible from outside of the server, you need to create reverse https proxy like you would do for any docker image. If somebody have issue with this step, comment bellow and I will write guide for it.

For more detailed additional information look HERE

Great you made it to the end, and maybe found this Ansible role useful. You deserve a break, drink beverage of your choosing and maybe get one for me to ?

Comments