pip install docker-compose

I seem to be having an issue when trying to run this playbook for building AWX.

When I go to run the ansible playbook I get the following error:

`

“ok: [localhost] => (item=environment.sh)”,
“ok: [localhost] => (item=credentials.py)”,
“ok: [localhost] => (item=docker-compose.yml)”,
“”,
“TASK [local_docker : Render SECRET_KEY file] ***********************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Start the containers] *************************************”,
“fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unable to load docker-compose. Try pip install docker-compose. Error: cannot import name ImageNotFound"}”,
“\tto retry, use: --limit @/root/awx/installer/install.retry”,
“”,
“PLAY RECAP *********************************************************************”,
"localhost : ok=8 changed=0 unreachable=0 failed=1 "
]
}

`

I was getting errors about docker-compose installation prior and tried installing the specific version the playbook calls for:

`

pip freeze|grep -i docker
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date. A future version of pip will drop support for Python 2.7.
docker-compose==1.22.0
docker-py==1.10.6
docker-pycreds==0.4.0
dockerpty==0.4.1

`

I’m not sure why this is not working. I am running this against the localhost.

how did you pip install ? and can we see the playbook?

For pip install I did:
sudo pip install docker-compose==1.22.0

Playbook
https://github.com/geerlingguy/ansible-role-awx

that might explain why. You are installing the package under root and you might be running as yourself. I suggest you use virtualenv and install pip using a virtualenv.

`

pip install docker-compose==1.22
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already satisfied: docker-compose==1.22 in /usr/lib/python2.7/site-packages (1.22.0)
Requirement already satisfied: PyYAML<4,>=3.10 in /usr/lib64/python2.7/site-packages (from docker-compose==1.22) (3.10)
Requirement already satisfied: backports.ssl-match-hostname>=3.5; python_version < “3.5” in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (3.5.0.1)
Requirement already satisfied: six<2,>=1.3.0 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (1.9.0)
Collecting docker<4.0,>=3.4.1 (from docker-compose==1.22)
Using cached https://files.pythonhosted.org/packages/48/68/c3afca1a5aa8d2997ec3b8ee822a4d752cf85907b321f07ea86888545152/docker-3.7.2-py2.py3-none-any.whl
Requirement already satisfied: texttable<0.10,>=0.9.0 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (0.9.1)
Requirement already satisfied: dockerpty<0.5,>=0.4.1 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (0.4.1)
Requirement already satisfied: ipaddress>=1.0.16; python_version < “3.3” in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (1.0.16)
Requirement already satisfied: requests!=2.11.0,!=2.12.2,!=2.18.0,<2.19,>=2.6.1 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (2.18.4)
Requirement already satisfied: websocket-client<1.0,>=0.32.0 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (0.56.0)
Requirement already satisfied: enum34<2,>=1.0.4; python_version < “3.4” in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (1.0.4)
Requirement already satisfied: docopt<0.7,>=0.6.1 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (0.6.2)
Requirement already satisfied: jsonschema<3,>=2.5.1 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (2.6.0)
Requirement already satisfied: cached-property<2,>=1.2.0 in /usr/lib/python2.7/site-packages (from docker-compose==1.22) (1.5.1)
Requirement already satisfied: docker-pycreds>=0.4.0 in /usr/lib/python2.7/site-packages (from docker<4.0,>=3.4.1->docker-compose==1.22) (0.4.0)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /usr/lib/python2.7/site-packages (from requests!=2.11.0,!=2.12.2,!=2.18.0,<2.19,>=2.6.1->docker-compose==1.22) (1.22)
Requirement already satisfied: idna<2.7,>=2.5 in /usr/lib/python2.7/site-packages (from requests!=2.11.0,!=2.12.2,!=2.18.0,<2.19,>=2.6.1->docker-compose==1.22) (2.6)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python2.7/site-packages (from requests!=2.11.0,!=2.12.2,!=2.18.0,<2.19,>=2.6.1->docker-compose==1.22) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python2.7/site-packages (from requests!=2.11.0,!=2.12.2,!=2.18.0,<2.19,>=2.6.1->docker-compose==1.22) (2019.3.9)
Requirement already satisfied: functools32; python_version == “2.7” in /usr/lib/python2.7/site-packages (from jsonschema<3,>=2.5.1->docker-compose==1.22) (3.2.3.post2)
Installing collected packages: docker
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: ‘/usr/lib/python2.7/site-packages/docker/init.py’
Consider using the --user option or check the permissions.

`

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: ‘/usr/lib/python2.7/site-packages/docker/init.py’
Consider using the --user option or check the permissions.

you can do this with --user but, again I prefer to use a virtualenv.

Added the --user to the pip install and that worked. But still getting this:

`

TASK [geerlingguy.awx : Run the AWX installation playbook.] **********************************************************************************************************************************************************************************
task path: /home/ameyer/.ansible/roles/geerlingguy.awx/tasks/awx-install-playbook.yml:2
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: ameyer
<127.0.0.1> EXEC /bin/sh -c ‘echo ~ameyer && sleep 0’
<127.0.0.1> EXEC /bin/sh -c ‘( umask 77 && mkdir -p “echo /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649” && echo ansible-tmp-1554839414.75-83474730582649=“echo /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649” ) && sleep 0’
Using module file /usr/lib/python2.7/site-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /home/ameyer/.ansible/tmp/ansible-local-98678EhZOoy/tmpLfW5zb TO /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c ‘chmod u+x /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649/ /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649/AnsiballZ_command.py && sleep 0’
<127.0.0.1> EXEC /bin/sh -c ‘sudo -H -S -n -u root /bin/sh -c ‘"’“‘echo BECOME-SUCCESS-wtxbjahsfqkrpizyadbjrnwbhgjdbasv; /usr/bin/python2 /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649/AnsiballZ_command.py’”’"’ && sleep 0’
<127.0.0.1> EXEC /bin/sh -c ‘rm -f -r /home/ameyer/.ansible/tmp/ansible-tmp-1554839414.75-83474730582649/ > /dev/null 2>&1 && sleep 0’
fatal: [localhost]: FAILED! => {
“changed”: true,
“cmd”: [
“ansible-playbook”,
“-i”,
“inventory”,
“install.yml”,
“-e”,
“postgres_data_dir=/var/lib/pgdocker”
],
“delta”: “0:00:07.347671”,
“end”: “2019-04-09 14:50:22.280054”,
“invocation”: {
“module_args”: {
“_raw_params”: “ansible-playbook -i inventory install.yml -e postgres_data_dir=/var/lib/pgdocker”,
“_uses_shell”: false,
“argv”: null,
“chdir”: “/root/awx/installer”,
“creates”: “/etc/awx_playbook_complete”,
“executable”: null,
“removes”: null,
“stdin”: null,
“warn”: true
}
},
“msg”: “non-zero return code”,
“rc”: 2,
“start”: “2019-04-09 14:50:14.932383”,
“stderr”: “”,
“stderr_lines”: ,
“stdout”: "\nPLAY [Build and deploy AWX] ****************************************************\n\nTASK [Gathering Facts] *********************************************************\nok: [localhost]\n\nTASK [check_vars : include_tasks] **********************************************\nskipping: [localhost]\n\nTASK [check_vars : include_tasks] **********************************************\nincluded: /root/awx/installer/roles/check_vars/tasks/check_docker.yml for localhost\n\nTASK [check_vars : postgres_data_dir should be defined] ************************\nok: [localhost] => {\n "changed": false, \n "msg": "All assertions passed"\n}\n\nTASK [check_vars : host_port should be defined] ********************************\nok: [localhost] => {\n "changed": false, \n "msg": "All assertions passed"\n}\n\nTASK [image_build : Set global version if not provided] ************************\nskipping: [localhost]\n\nTASK [image_build : Verify awx-logos directory exists for official install] ****\nskipping: [localhost]\n\nTASK [image_build : Copy logos for inclusion in sdist] *************************\nskipping: [localhost]\n\nTASK [image_build : Set sdist file name] ***************************************\nskipping: [localhost]\n\nTASK [image_build : AWX Distribution] ******************************************\nskipping: [localhost]\n\nTASK [image_build : Stat distribution file] ************************************\nskipping: [localhost]\n\nTASK [image_build : Clean distribution] ****************************************\nskipping: [localhost]\n\nTASK [image_build : Build sdist builder image] *********************************\nskipping: [localhost]\n\nTASK [image_build : Build AWX distribution using container] ********************\nskipping: [localhost]\n\nTASK [image_build : Build AWX distribution locally] ****************************\nskipping: [localhost]\n\nTASK [image_build : Set docker build base path] ********************************\nskipping: [localhost]\n\nTASK [image_build : Set awx_web image name] ************************************\nskipping: [localhost]\n\nTASK [image_build : Set awx_task image name] ***********************************\nskipping: [localhost]\n\nTASK [image_build : Ensure directory exists] ***********************************\nskipping: [localhost]\n\nTASK [image_build : Stage sdist] ***********************************************\nskipping: [localhost]\n\nTASK [image_build : Template web Dockerfile] ***********************************\nskipping: [localhost]\n\nTASK [image_build : Template task Dockerfile] **********************************\nskipping: [localhost]\n\nTASK [image_build : Stage launch_awx] ******************************************\nskipping: [localhost]\n\nTASK [image_build : Stage launch_awx_task] *************************************\nskipping: [localhost]\n\nTASK [image_build : Stage nginx.conf] ******************************************\nskipping: [localhost]\n\nTASK [image_build : Stage supervisor.conf] *************************************\nskipping: [localhost]\n\nTASK [image_build : Stage supervisor_task.conf] ********************************\nskipping: [localhost]\n\nTASK [image_build : Stage settings.py] *****************************************\nskipping: [localhost]\n\nTASK [image_build : Stage requirements] ****************************************\nskipping: [localhost]\n\nTASK [image_build : Stage config watcher] **************************************\nskipping: [localhost]\n\nTASK [image_build : Stage Makefile] ********************************************\nskipping: [localhost]\n\nTASK [image_build : Stage ansible repo] ****************************************\nskipping: [localhost]\n\nTASK [image_build : Stage ansible repo key] ************************************\nskipping: [localhost]\n\nTASK [image_build : Build base web image] **************************************\nskipping: [localhost]\n\nTASK [image_build : Build base task image] *************************************\nskipping: [localhost]\n\nTASK [image_build : Tag task and web images as latest] *************************\nskipping: [localhost]\n\nTASK [image_build : Clean docker base directory] *******************************\nskipping: [localhost]\n\nTASK [image_push : Authenticate with Docker registry if registry password given] ***\nskipping: [localhost]\n\nTASK [image_push : Remove web image] *******************************************\nskipping: [localhost]\n\nTASK [image_push : Remove task image] ******************************************\nskipping: [localhost]\n\nTASK [image_push : Tag and push web image to registry] *************************\nskipping: [localhost]\n\nTASK [image_push : Tag and push task image to registry] ************************\nskipping: [localhost]\n\nTASK [image_push : Set full image path for Registry] ***************************\nskipping: [localhost]\n\nTASK [kubernetes : fail] *******************************************************\nskipping: [localhost]\n\nTASK [kubernetes : include_tasks] **********************************************\nskipping: [localhost] => (item=openshift_auth.yml) \nskipping: [localhost] => (item=openshift.yml) \n\nTASK [kubernetes : include_tasks] **********************************************\nskipping: [localhost] => (item=kubernetes_auth.yml) \nskipping: [localhost] => (item=kubernetes.yml) \n\nTASK [kubernetes : Use kubectl or oc] ******************************************\nskipping: [localhost]\n\nTASK [kubernetes : set_fact] ***************************************************\nskipping: [localhost]\n\nTASK [kubernetes : Record deployment size] *************************************\nskipping: [localhost]\n\nTASK [kubernetes : Set expected post-deployment Replicas value] ****************\nskipping: [localhost]\n\nTASK [kubernetes : Delete existing Deployment] *********************************\nskipping: [localhost]\n\nTASK [kubernetes : Get Postgres Service Detail] ********************************\nskipping: [localhost]\n\nTASK [kubernetes : Template PostgreSQL Deployment (OpenShift)] *****************\nskipping: [localhost]\n\nTASK [kubernetes : Deploy and Activate Postgres (OpenShift)] *******************\nskipping: [localhost]\n\nTASK [kubernetes : Deploy and Activate Postgres (Kubernetes)] ******************\nskipping: [localhost]\n\nTASK [kubernetes : Set postgresql hostname to helm package service (Kubernetes)] ***\nskipping: [localhost]\n\nTASK [kubernetes : Wait for Postgres to activate] ******************************\nskipping: [localhost]\n\nTASK [kubernetes : Set task image name] ****************************************\nskipping: [localhost]\n\nTASK [kubernetes : Set web image name] *****************************************\nskipping: [localhost]\n\nTASK [kubernetes : Render deployment templates] ********************************\nskipping: [localhost] => (item=None) \nskipping: [localhost] => (item=None) \nskipping: [localhost] => (item=None) \nskipping: [localhost]\n\nTASK [kubernetes : Apply Deployment] *******************************************\nskipping: [localhost]\n\nTASK [kubernetes : Delete any existing management pod] *************************\nskipping: [localhost]\n\nTASK [kubernetes : Template management pod] ************************************\nskipping: [localhost]\n\nTASK [kubernetes : Create management pod] **************************************\nskipping: [localhost]\n\nTASK [kubernetes : Wait for management pod to start] ***************************\nskipping: [localhost]\n\nTASK [kubernetes : Migrate database] *******************************************\nskipping: [localhost]\n\nTASK [kubernetes : Check for Tower Super users] ********************************\nskipping: [localhost]\n\nTASK [kubernetes : create django super user if it does not exist] **************\nskipping: [localhost]\n\nTASK [kubernetes : update django super user password] **************************\nskipping: [localhost]\n\nTASK [kubernetes : Create the default organization if it is needed.] ***********\nskipping: [localhost]\n\nTASK [kubernetes : Delete management pod] **************************************\nskipping: [localhost]\n\nTASK [kubernetes : Scale up deployment] ****************************************\nskipping: [localhost]\n\nTASK [local_docker : Export Docker web image if it isnt local and there isnt a registry defined] ***\nskipping: [localhost]\n\nTASK [local_docker : Export Docker task image if it isnt local and there isnt a registry defined] ***\nskipping: [localhost]\n\nTASK [local_docker : Set docker base path] *************************************\nskipping: [localhost]\n\nTASK [local_docker : Ensure directory exists] **********************************\nskipping: [localhost]\n\nTASK [local_docker : Copy web image to docker execution] ***********************\nskipping: [localhost]\n\nTASK [local_docker : Copy task image to docker execution] **********************\nskipping: [localhost]\n\nTASK [local_docker : Load web image] *******************************************\nskipping: [localhost]\n\nTASK [local_docker : Load task image] ******************************************\nskipping: [localhost]\n\nTASK [local_docker : Set full image path for local install] ********************\nskipping: [localhost]\n\nTASK [local_docker : Set DockerHub Image Paths] ********************************\nok: [localhost]\n\nTASK [local_docker : Create /tmp/awxcompose directory] *************************\nok: [localhost]\n\nTASK [local_docker : Create Docker Compose Configuration] **********************\nok: [localhost] => (item=environment.sh)\nok: [localhost] => (item=credentials.py)\nok: [localhost] => (item=docker-compose.yml)\n\nTASK [local_docker : Render SECRET_KEY file] ***********************************\nok: [localhost]\n\nTASK [local_docker : Start the containers] *************************************\nfatal: [localhost]: FAILED! => {"changed": false, "msg": "Unable to load docker-compose. Try pip install docker-compose. Error: cannot import name ImageNotFound"}\n\tto retry, use: --limit @/root/awx/installer/install.retry\n\nPLAY RECAP *********************************************************************\nlocalhost : ok=8 changed=0 unreachable=0 failed=1 ",
“stdout_lines”: [
“”,
“PLAY [Build and deploy AWX] ****************************************************”,
“”,
“TASK [Gathering Facts] *********************************************************”,
“ok: [localhost]”,
“”,
“TASK [check_vars : include_tasks] **********************************************”,
“skipping: [localhost]”,
“”,
“TASK [check_vars : include_tasks] **********************************************”,
“included: /root/awx/installer/roles/check_vars/tasks/check_docker.yml for localhost”,
“”,
“TASK [check_vars : postgres_data_dir should be defined] ************************”,
“ok: [localhost] => {”,
" "changed": false, “,
" "msg": "All assertions passed"”,
“}”,
“”,
“TASK [check_vars : host_port should be defined] ********************************”,
“ok: [localhost] => {”,
" "changed": false, “,
" "msg": "All assertions passed"”,
“}”,
“”,
“TASK [image_build : Set global version if not provided] ************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Verify awx-logos directory exists for official install] ****”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Copy logos for inclusion in sdist] *************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Set sdist file name] ***************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : AWX Distribution] ******************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stat distribution file] ************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Clean distribution] ****************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Build sdist builder image] *********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Build AWX distribution using container] ********************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Build AWX distribution locally] ****************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Set docker build base path] ********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Set awx_web image name] ************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Set awx_task image name] ***********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Ensure directory exists] ***********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage sdist] ***********************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Template web Dockerfile] ***********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Template task Dockerfile] **********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage launch_awx] ******************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage launch_awx_task] *************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage nginx.conf] ******************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage supervisor.conf] *************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage supervisor_task.conf] ********************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage settings.py] *****************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage requirements] ****************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage config watcher] **************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage Makefile] ********************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage ansible repo] ****************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Stage ansible repo key] ************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Build base web image] **************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Build base task image] *************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Tag task and web images as latest] *************************”,
“skipping: [localhost]”,
“”,
“TASK [image_build : Clean docker base directory] *******************************”,
“skipping: [localhost]”,
“”,
“TASK [image_push : Authenticate with Docker registry if registry password given] ***”,
“skipping: [localhost]”,
“”,
“TASK [image_push : Remove web image] *******************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_push : Remove task image] ******************************************”,
“skipping: [localhost]”,
“”,
“TASK [image_push : Tag and push web image to registry] *************************”,
“skipping: [localhost]”,
“”,
“TASK [image_push : Tag and push task image to registry] ************************”,
“skipping: [localhost]”,
“”,
“TASK [image_push : Set full image path for Registry] ***************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : fail] *******************************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : include_tasks] **********************************************”,
"skipping: [localhost] => (item=openshift_auth.yml) ",
"skipping: [localhost] => (item=openshift.yml) ",
“”,
“TASK [kubernetes : include_tasks] **********************************************”,
"skipping: [localhost] => (item=kubernetes_auth.yml) ",
"skipping: [localhost] => (item=kubernetes.yml) ",
“”,
“TASK [kubernetes : Use kubectl or oc] ******************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : set_fact] ***************************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Record deployment size] *************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Set expected post-deployment Replicas value] ****************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Delete existing Deployment] *********************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Get Postgres Service Detail] ********************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Template PostgreSQL Deployment (OpenShift)] *****************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Deploy and Activate Postgres (OpenShift)] *******************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Deploy and Activate Postgres (Kubernetes)] ******************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Set postgresql hostname to helm package service (Kubernetes)] ***”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Wait for Postgres to activate] ******************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Set task image name] ****************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Set web image name] *****************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Render deployment templates] ********************************”,
"skipping: [localhost] => (item=None) ",
"skipping: [localhost] => (item=None) ",
"skipping: [localhost] => (item=None) ",
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Apply Deployment] *******************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Delete any existing management pod] *************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Template management pod] ************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Create management pod] **************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Wait for management pod to start] ***************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Migrate database] *******************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Check for Tower Super users] ********************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : create django super user if it does not exist] **************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : update django super user password] **************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Create the default organization if it is needed.] ***********”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Delete management pod] **************************************”,
“skipping: [localhost]”,
“”,
“TASK [kubernetes : Scale up deployment] ****************************************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Export Docker web image if it isnt local and there isnt a registry defined] ***”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Export Docker task image if it isnt local and there isnt a registry defined] ***”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Set docker base path] *************************************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Ensure directory exists] **********************************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Copy web image to docker execution] ***********************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Copy task image to docker execution] **********************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Load web image] *******************************************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Load task image] ******************************************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Set full image path for local install] ********************”,
“skipping: [localhost]”,
“”,
“TASK [local_docker : Set DockerHub Image Paths] ********************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Create /tmp/awxcompose directory] *************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Create Docker Compose Configuration] **********************”,
“ok: [localhost] => (item=environment.sh)”,
“ok: [localhost] => (item=credentials.py)”,
“ok: [localhost] => (item=docker-compose.yml)”,
“”,
“TASK [local_docker : Render SECRET_KEY file] ***********************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Start the containers] *************************************”,
“fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unable to load docker-compose. Try pip install docker-compose. Error: cannot import name ImageNotFound"}”,
“\tto retry, use: --limit @/root/awx/installer/install.retry”,
“”,
“PLAY RECAP *********************************************************************”,
"localhost : ok=8 changed=0 unreachable=0 failed=1 "
]
}

`

I am on the latest ansible from epel and latest centos 7

Hi Andrew,

what's the output of

pip --version

and

ansible localhost -m setup | grep ansible_python_version

Regards
Sebastian

`

[ameyer@awx01 ~]$ pip --version
pip 19.0.3 from /usr/lib/python2.7/site-packages/pip (python 2.7)
[ameyer@awx01 ~]$ ansible localhost -m setup|grep ansible_python_version
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ‘all’
“ansible_python_version”: “2.7.5”,
[ameyer@awx01 ~]$

`

[ameyer@awx01 ~]$ pip --version
pip 19.0.3 from /usr/lib/python2.7/site-packages/pip (python 2.7)
[ameyer@awx01 ~]$ ansible localhost -m setup|grep ansible_python_version
[WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'
        "ansible_python_version": "2.7.5",
[ameyer@awx01 ~]$

Okay so it seems they are using the same python version. Does executing
python and importing compose work?

$ python
Python 2.7.14 (default, Oct 12 2017, 15:50:02) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.

import compose

I noticed you executed the installer playbook with root. Could you check
pip and ansible_python_version there too? Just to be sure there's no
mixup there.

Regards
Sebastian

Root is using the same version. Also I stopped doing that as root.

`

[ameyer@awx01 ~]$ python
Python 2.7.5 (default, Oct 30 2018, 23:45:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

import compose
exit()
[ameyer@awx01 ~]$

`

Any other thoughts?

Ah I saw you have docker-py installed globally and installed docker for
your user with pip?

https://github.com/ansible/ansible/issues/37958#issuecomment-376320961

Seems like there's a problem with having both.

Sebastian

Removed docker-py from root

`

“skipping: [localhost]”,
“”,
“TASK [local_docker : Set DockerHub Image Paths] ********************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Create /tmp/awxcompose directory] *************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Create Docker Compose Configuration] **********************”,
“ok: [localhost] => (item=environment.sh)”,
“ok: [localhost] => (item=credentials.py)”,
“ok: [localhost] => (item=docker-compose.yml)”,
“”,
“TASK [local_docker : Render SECRET_KEY file] ***********************************”,
“ok: [localhost]”,
“”,
“TASK [local_docker : Start the containers] *************************************”,
“fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to import docker or docker-py - cannot import name certs. Try pip install docker or pip install docker-py (Python 2.6)"}”,
“\tto retry, use: --limit @/root/awx/installer/install.retry”,
“”,
“PLAY RECAP *********************************************************************”,
"localhost : ok=8 changed=0 unreachable=0 failed=1 "
]
}
to retry, use: --limit @/home/ameyer/awx-role.retry

PLAY RECAP ***********************************************************************************************************************************************************************************************************************************
localhost : ok=31 changed=1 unreachable=0 failed=1

[ameyer@awx01 ~]$

`