Skip to content

librepower/awx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWX for IBM Power (ppc64le)

LibrePower

Enterprise-grade Ansible automation on IBM POWER architecture
LibrePower - Unlocking Power Systems through open source. Unmatched RAS and TCO. Minimal footprint 🌍

Built by
SIXE

LibrePower AWX Version License

Status Docker Hub Issues


Why AWX on POWER?

Full Feature Parity Same AWX you know—Web UI, API, RBAC, workflows, notifications—running natively on your Power infrastructure
Community First, Enterprise Ready AWX is the open source upstream of Red Hat Ansible Automation Platform. All the power of enterprise automation, community-driven. Commercial support available through Red Hat if you ever need it
Leverage Your Investment Automate your AIX, IBM i, and Linux workloads from the same Power hardware they run on
Production Ready Tested on Ubuntu 22.04 and 24.04 LTS with MicroK8s. Deploy in minutes, not days
Open Source & Supported Apache 2.0 licensed. Maintained by LibrePower, the Power open source community

Demo

AWX CLI Demo

AWX Login    AWX Jobs


Tested Platforms

OS Version Kubernetes Status
Ubuntu 22.04.5 LTS MicroK8s ✅ Validated
Ubuntu 24.04.3 LTS MicroK8s ✅ Validated
Fedora 39+ MicroK8s Compatible
RHEL/CentOS 8/9 MicroK8s, OpenShift Compatible
Any ppc64le Linux - K8s with containerd Compatible

Hardware: Compatible with IBM POWER9, POWER10, and POWER11 processors.

Note: MicroK8s is installed via snap, available on Ubuntu, Fedora, RHEL, CentOS, Debian, and most Linux distributions.


Prerequisites

Install MicroK8s (via snap)

MicroK8s is the easiest way to get Kubernetes running on ppc64le:

# Ubuntu/Debian
sudo snap install microk8s --classic
microk8s enable dns hostpath-storage

# Fedora/RHEL/CentOS (install snap first)
sudo dnf install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install microk8s --classic
microk8s enable dns hostpath-storage

Install Podman

# Ubuntu/Debian
sudo apt install podman

# Fedora/RHEL/CentOS
sudo dnf install podman

Quick Start

1. Pull the AWX image

podman pull docker.io/librepower/awx:24.6.1-ppc64le

2. Deploy on Kubernetes

# Import to cluster
podman save docker.io/librepower/awx:24.6.1-ppc64le -o awx-ppc64le.tar
microk8s ctr image import awx-ppc64le.tar

# Install AWX Operator
git clone --depth 1 --branch 2.19.1 https://github.com/ansible/awx-operator.git /tmp/awx-operator
microk8s kubectl apply -k /tmp/awx-operator/config/default

# Deploy AWX
git clone https://gitlab.com/librepower/awx.git
cd awx
microk8s kubectl apply -f k8s/awx-instance.yaml

3. Enable Job Execution

Once all pods are running (microk8s kubectl get pods -n awx), run the setup script:

bash scripts/awx-ppc64le-setup.sh

This script automatically:

  • Builds the receptor binary for ppc64le
  • Adds receptor to the AWX image
  • Creates a custom Execution Environment
  • Configures AWX to use it

4. Access AWX

# Get admin password
microk8s kubectl get secret awx-admin-password -n awx -o jsonpath='{.data.password}' | base64 -d

# Open browser: http://<your-ip>:30080
# Username: admin

Kubernetes Compatibility

Platform Status Notes
MicroK8s ✅ Tested Recommended for single-node deployments
OpenShift Compatible Use oc instead of kubectl
K3s Compatible Use k3s ctr for image import
Vanilla K8s Compatible Requires containerd runtime

ppc64le Build Fixes

These issues were resolved to make AWX work on ppc64le:

Issue Solution
grpcio BoringSSL System OpenSSL
c-ares missing Install c-ares-devel
FaviconsWebpackPlugin Disabled (sharp issue)
receptor binary Build from Go source
Execution Environment Custom ppc64le image
Manual Setup (Advanced)

Build Receptor

wget https://go.dev/dl/go1.23.4.linux-ppc64le.tar.gz
sudo tar -C /usr/local -xzf go1.23.4.linux-ppc64le.tar.gz
export PATH=/usr/local/go/bin:$PATH

git clone https://github.com/ansible/receptor.git
cd receptor
go build -o receptor ./cmd/receptor-cl/

Add Receptor to AWX Image

mkdir ~/awx-receptor-fix && cd ~/awx-receptor-fix
cp ~/receptor/receptor .

cat > Dockerfile << 'EOF'
FROM docker.io/librepower/awx:24.6.1-ppc64le
USER root
COPY receptor /usr/bin/receptor
RUN chmod +x /usr/bin/receptor
USER 1000
EOF

podman build -t awx:librepower-ppc64le .
podman save localhost/awx:librepower-ppc64le -o /tmp/awx-with-receptor.tar
microk8s ctr image import /tmp/awx-with-receptor.tar
microk8s ctr images tag localhost/awx:librepower-ppc64le docker.io/librepower/awx:24.6.1-ppc64le

Build Execution Environment

mkdir ~/awx-ee-ppc64le && cd ~/awx-ee-ppc64le
cp ~/receptor/receptor .

cat > Dockerfile << 'EOF'
FROM quay.io/centos/centos:stream9
RUN dnf -y install python3.11 python3.11-pip git openssh-clients rsync && dnf clean all
RUN pip3.11 install ansible-core ansible-runner
COPY receptor /usr/bin/receptor
RUN chmod +x /usr/bin/receptor
RUN useradd -m awx
USER awx
WORKDIR /runner
EOF

podman build -t librepower/awx-ee:24.6.1-ppc64le .
podman save localhost/librepower/awx-ee:24.6.1-ppc64le -o /tmp/awx-ee.tar
microk8s ctr image import /tmp/awx-ee.tar
microk8s ctr images tag localhost/librepower/awx-ee:24.6.1-ppc64le docker.io/librepower/awx-ee:24.6.1-ppc64le

Configure AWX

pip3 install awxkit
export TOWER_HOST=http://localhost:30080
export TOWER_USERNAME=admin
export TOWER_PASSWORD=$(microk8s kubectl get secret awx-admin-password -n awx -o jsonpath='{.data.password}' | base64 -d)

awx execution_environments modify 1 --image "docker.io/librepower/awx-ee:24.6.1-ppc64le"
awx execution_environments modify 2 --image "docker.io/librepower/awx-ee:24.6.1-ppc64le"

microk8s kubectl delete pod -n awx $(microk8s kubectl get pods -n awx -o name | grep awx-task)

Contributing

We welcome contributions! Here's how to get involved:

  1. Fork this repository
  2. Create a feature branch
  3. Submit a merge request

Have questions? Open an issue or join the community at librepower.org.


Resources

Resource URL
Docker Hub hub.docker.com/r/librepower/awx
LibrePower librepower.org
AWX Upstream github.com/ansible/awx
Report Issues gitlab.com/librepower/awx/-/issues

Join the Community

LibrePower is more than AWX—we're building open source support across the entire IBM Power ecosystem: AIX, IBM i, and Linux on Power (ppc64le).

📬 Subscribe to our newsletter for releases, technical articles, and community updates.


Made with ❤️ by the LibrePower community
Unlocking Power Systems through open source

License

Apache License 2.0 - Same as AWX upstream.

AWX is a trademark of Red Hat, Inc. This project is not affiliated with or endorsed by Red Hat.

About

AWX 24.6.1 for IBM Power (ppc64le) - Mirror of GitLab

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages