AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

Install Ansible AWX Operator for Kubernetes (K8s) and OpenShift (OCP) - Ansible AWX

By Luca Berton · Published 2024-01-01 · Category: installation

How to deploy the latest Ansible AWX Operator in your local Red Hat OpenShift Local (formerly Red Hat CodeReady Containers), fully compatible with Kubernetes.

Install Ansible AWX Operator for Kubernetes (K8s) and OpenShift (OCP) - Ansible AWX

How to Install Ansible AWX Operator for Kubernetes (K8s) and OpenShift (OCP)?

Ansible AWX Operator is the preferred way to deploy an AWX instance in your network. The alternative way is to build and run Docker containers only for experienced users and developers. I'm Luca Berton and welcome to today's episode of Ansible Pilot.

See also: Create Ansible AWX Superuser in Docker: Admin Account Setup (Guide)

Install Ansible AWX

• Ansible AWX Operator for Kubernetes built with Operator SDK and Ansible • Ansible AWX for Docker (experienced users)

Ansible AWX is the upstream project of Ansible Automation Controller (formerly Ansible Tower), providing a modern web-UI and API interface to manage Ansible Playbooks, inventories, Credentials, and Vaults between your team in your organization. Running AWX using the AWX Operator is the preferred way for you to test the AWX web-UI and API to manage Ansible Playbook execution easily. Ansible AWX operator for Kubernetes built with Operator SDK and Ansible. AWX can also be installed and run in Docker, but this install path is only recommended for development/test-oriented deployments and has no official release.

Links

AWX Operatorkustomize installation

See also: Install Ansible Automation Platform in Red Hat Ansible OpenShift Platform operator via Operator

Playbook

• Install Ansible AWX Operator for Kubernetes (K8s) or OpenShift (OCP)

How to Install Ansible AWX Operator for Kubernetes (K8s). I will show you how to install the latest Ansible AWX Operator in your local Red Hat OpenShift Local (formerly Red Hat CodeReady Containers). If available, you can also use a Kubernetes (K8s) cluster or Red Hat OpenShift (OCP)cluster.

code

• kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  # Find the latest tag here: https://github.com/ansible/awx-operator/releases
  - github.com/ansible/awx-operator/config/default?ref=<tag>
# Set the image tags to match the git version from above
images:
  - name: quay.io/ansible/awx-operator
    newTag: <tag>
# Specify a custom namespace in which to install AWX
namespace: awx

Substitute with the latest AWX operator release, for example, 0.29.0.

Kubernetes (K8s) execution

Install the kustomize tool in your system
$ curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash
Install the customization manifests in Kubernetes (K8s) by running this:
$ ./kustomize build . | kubectl apply -f -
namespace/awx created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
Wait a bit, and you should have the awx-operator running:
$ kubectl get pods -n awx
NAME                                               READY   STATUS    RESTARTS   AGE
awx-operator-controller-manager-7d5f849d55-8sv9n   2/2     Running   0          76s

OpenShift (OCP) execution

Install the kustomize tool in your system
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash
Install the customization manifests in OpenShift (OCP) by running this:
$ ./kustomize build . | kubectl apply -f -
namespace/awx created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
Wait a bit, and you should have the awx-operator running:
$ oc get pods -n awx
NAME                                               READY   STATUS    RESTARTS   AGE
awx-operator-controller-manager-7d5f849d55-8sv9n   2/2     Running   0          76s

OpenShift (OCP) Web UI:

Log in to the OpenShift (OCP) cluster

OpenShift (OCP) login

You can find the awx-operator running under the awx project:

AWX Operator PODs detail AWX Operator PODs status AWX Operator Services status

In the Networking > Service, you can find the Location URL to access your Ansible AWX instance. In my case http://10.217.4.59:8443.

Conclusion

Now you know how to Install Ansible AWX Operator for Kubernetes (K8s) and OpenShift (OCP).

See also: Build Ansible AWX in Docker Containers Easily

Related Articles

using Ansible Vault for secretsAnsible Docker guideAWX architecture and components

Category: installation

Watch the video: Install Ansible AWX Operator for Kubernetes (K8s) and OpenShift (OCP) - Ansible AWX — Video Tutorial

Browse all Ansible tutorials · AnsiblePilot Home