Enterprise-grade Ansible automation on IBM POWER architecture
LibrePower - Unlocking Power Systems through open source. Unmatched RAS and TCO. Minimal footprint 🌍
| 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 |
| 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.
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# Ubuntu/Debian
sudo apt install podman
# Fedora/RHEL/CentOS
sudo dnf install podmanpodman pull docker.io/librepower/awx:24.6.1-ppc64le# 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.yamlOnce all pods are running (microk8s kubectl get pods -n awx), run the setup script:
bash scripts/awx-ppc64le-setup.shThis script automatically:
- Builds the receptor binary for ppc64le
- Adds receptor to the AWX image
- Creates a custom Execution Environment
- Configures AWX to use it
# 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| 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 |
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)
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/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-ppc64lemkdir ~/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-ppc64lepip3 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)We welcome contributions! Here's how to get involved:
- Fork this repository
- Create a feature branch
- Submit a merge request
Have questions? Open an issue or join the community at librepower.org.
| 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 |
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
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.


