AWX Developer Docker Install

606 views
Skip to first unread message

Nicholas Tripp

unread,
Sep 7, 2022, 10:12:45 AM9/7/22
to AWX Project
I'm following the instructions: for docker compose for development https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md
 
I've tried the latest branch release and the previous branch release. I successfully ran make docker-compose-build but make docker-compose never completes and keeps throwing this error in console:
 tools_awx_1         | ImportError: libldap.so.2: cannot open shared object file: No such file or directory

AWX Project

unread,
Sep 9, 2022, 1:33:10 PM9/9/22
to AWX Project
What if you skip the make docker-compose-build step, and just run "COMPOSE_TAG=devel make docker-compose" to pull the already-built image from the ghcr.io registry

Does it work in that case?

AWX Team

Nicholas Tripp

unread,
Sep 13, 2022, 8:32:41 AM9/13/22
to AWX Project
I was able to run it with the production instructions with awx operator.  My issue now is trying to figure out how to have operator deploy but substitute the location of the images.  The deployment space does not have internet access and we use artifactory.  I can put the images there but with operator I don't know where I would substitute the location to pull necessary images from.

AWX Project

unread,
Sep 16, 2022, 5:48:03 PM9/16/22
to AWX Project
To deploy in an air-gapped or offline environment, you'll need to mirror the images to your own internal registry, then override the respective image and image_version values via the spec on the AWX CR.  There are some other threads about it, I'll try to summarize here:

```
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx-demo
spec:
  image: xxx
  image_version: xxx
  init_container_image: xxx
  init_container_image_version: xxx
  redis_image: xxx
  redis_image_version: xxx
  control_plane_ee_image: xxx
  control_plane_ee_image_version: xxx
  postgres_image: xxx
  postgres_image_version: xxx
  image_pull_secrets: <image-pull-secret-for-private-registry>
  # ee_images
  # ee_pull_credentials_secret: xxx
```

The tricky part though is that you need to specify the awx-operator image as well.  Which can be done with kustomize.  When you deploy the operator, you can have a kustomization.yaml file that looks like this:

```
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: registry.io/private-repo/awx-operator
    newTag: <tag>

# Specify a custom namespace in which to install AWX
namespace: awx
```

I think that should do it.  

FYI, the downstream AAP offering handles registry mirroring in a smoother way, more transparent to the user with Openshift. That might be something to look into if that is an option for you.  

Thanks,
AWX Team
Reply all
Reply to author
Forward
0 new messages