Comments on How to Install Ansible AWX on CentOS 7

In this tutorial, I will show you how to install Ansible AWX from RPM files on CentOS 7. Ansible AWX is the OpenSource version of the Ansible Tower software.

55 Comment(s)

Add comment

Please register in our forum first to comment.

Comments

By: Tomas

With this line you have basically created a new root account called ansible:

ansible ALL=(ALL) NOPASSWD: ALL

Is this necessary to run Ansible?

By: iron_michael86

This is just a example , you can use any user with root access

Regards

Sunil

By: Pedro C

FYI you may get a "502 bad gateway" error. Fix is: https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx

By: Deano

Thanks it was SELinux

setsebool -P httpd_can_network_connect 1

 

By: Josh H

Yeah it would be nice if OP included that in their blog post. I hit this problem as well. 

By: Brendan

That fixed it for me. Thanks!

By: Josef

Thanks, everything is working but I had to disable httpd

systemctl stop httpd.service

systemctl disable httpd.service

 

By: The login does not work

I tried to login using admin and password credentials but they don't work.

By: Sampath

What is the correct username and password to login awx console...?

By: Paul

Check your sestatus; rerun AWX setup, then reboot.

By: prashant

run this command again 

echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'root@localhost', 'password')" | sudo -u awx /opt/awx/bin/awx-manage shell

By: Randy P

I'm getting the error 502 bad gateway.  the install was done on centos 7 minimal and httpd service was never installed.  If I put the original nginx.conf file back, it works fine.  Any ideas?

By: Allan

I got the same error, I had to reboot the system which fixed the issue.

By: Mikey

Please provide a link to "the next tutorial" which shows us how to add a playbook and run the job.

 

By: salder

First, nice work.  Thank you for putting all of this together.  Though my being a SysAdmin, and thus lazy by definition.  Might I offer a few changes for consideration?

Installing the packages seperately just extends things.  Install all of the packages at the same time, where it makes sense. (ie. yum -y install postgresql96-server rabbitmq-server wget memcached nginx ansible) This allows for fewer steps and inturn less chance of the fat-fingers.

Second, less steps.  All of the steps where you are enabling and starting services in two commands, can be done in one step.  The worse case of this being the awx services.  (systemctl start --now awx-cbreceiver awx-celery-beat awx-celery-worker awx-channels-worker awx-daphne awx-web)  Any errors or issues are still apparent, but again, less chance for screw-ups to happen.

Last, it is a better option to leave the default sudoers file alone.  Your additions should be placed in a purposefully named file in /etc/sudoers.d.  Which can then be written as a single line of commands and scrapped into the terminal for use.  (ie. echo "ansible ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ansible_user && chmod 600 /etc/sudoers.d/ansible_user)

By: Vathsa

Please do not use the following repo as indicated in the documentation for installing awx https://copr.fedorainfracloud.org/coprs/mrmeee/awx/repo/epel-7/mrmeee-awx-epel-7.repo .

The build on that repo has failed and when you use it you will run into multiple issues like SCM clones not working and others. Please use the following repo instaed "https://copr.fedorainfracloud.org/coprs/mrmeee/awx-dev/repo/epel-7/mrmeee-awx-dev-epel-7.repo".

By: Catarina

Hi, 

Can I make a environment with two nodes running Ansible managed by just one AWX? One to manage a network and other to manage another network?

How can I do that?

By: rajesh S

Can we update the awx version.

By: Dhinesh

Great Work ! My installation works perfect, I was trying to make inventory sync with AWS Credentials but I am error as " ERROR! No inventory was parsed, please check your configuration and options." My config file ansible.cfg I tried to modify the inventory parameter "#unparsed_is_failed = true". But the issue still exists . I am confused my why awx unable pick the inventory setup ?

By: Dimitri

The follow-on tutorial on how to add a playbook and run a job would be extremely useful.

By: Madhu Raghav

My UI is not opening, i see ginx is started and awx web service is started. I dnt seee any access log coming in 

By: vaibhav

 you can use either httpd or nginx as both runs at port 80.

By: Dimitri

My installation works, bit I have two issues:

- like a previous poster, I'm trying to make inventory sync with both Satellte (Spacewalk) and Vcenter. And like the previous poster, I also get " ERROR! No inventory was parsed, please check your configuration and options.".  My config files seem correct.

- when I run a job, status remains on "Running".  I have to refresh the browser to see the output of the run (whether successful, or not).

By: Hai

Thanks for tutorial!

Can you continue share create playbook and execute it with Ansible AWX

By: Ted Fernandes

Hi, Nice tutorial! I have installed it. Nice work.

But I am curious. Why did you have to disable fireawall?

What is the impact on having firewall enabled?

By: RP

where do you see firewall being disabled? It is enabled with rules to http

By: Sreekar

I have tried the steps and with some changes , I was able to successfully get the awx working. I tried the steps on amazon linux v2. Thank you for this article. I was breaking my head for the awx installation for the last 4 days. 

By: edjojo

Hi After installation, I could not schedule any jobs. In fact awx-dispatcher.service is  not enabled by default. Therefore you need enable and start the service

systemctl enable awx-dispatcher.service

systemctl start awx-dispatcher

By: Dmitry

Thank you!

By: edjojo

Few days after I have installed  I  updated my box using yum update. Riught afetr that, my box stays stucked for hours at a page showing " AWX upgrading". The url  shows "http//<IP_ADDRESSE>/migrations_notran".

issue is fixed by running :

sudo -u awx /opt/awx/bin/awx-manage migrate

 

By: edjojo

Few days after I have installed  I  updated my box using yum update. Riught afetr that, my box stays stucked for hours at a page showing " AWX upgrading". The url  shows "http//<IP_ADDRESSE>/migrations_notran".

issue is fixed by running :

sudo -u awx /opt/awx/bin/awx-manage migrate

 

By: edjojo

Few days after I have installed  I  updated my box using yum update. Riught afetr that, my box stays stucked for hours at a page showing " AWX upgrading". The url  shows "http//<IP_ADDRESSE>/migrations_notran".

issue is fixed by running :

sudo -u awx /opt/awx/bin/awx-manage migrate

 

By: Joe

We change the admin user password and now cannot login from the web portal.

How do I fix it?

Thanks in advance for your help.

By: Bruce

I was getting error when trying to login to web portal "Invalid credentials".

 

Try clear browser cookies/cache or try running Chrome in Incognito mode.

 

Worked for me.

By: yang

Will there be a clustering installation guide ?

By: john

[root@awx ~]# systemctl enable awx-celery-beat

[root@awx ~]# systemctl enable awx-celery-worker

Failed to execute operation: No such file or directory

 for these two only! :)

 

By: TimGun

Same (following the guide to a T). Apparently, the AWX people switched away from celery. Not sure the importance it has on this project.

 

github.com/MrMEEE/awx-build/issues/52#issuecomment-436570911

By: Himanshu

[root@awx ~]# systemctl start awx-celery-beat [root@awx ~]# systemctl start awx-celery-workerGetting error :[root@localhost nginx]# systemctl start awx-celery-beat Failed to start awx-celery-beat.service: Unit not found. [root@localhost nginx]# systemctl start awx-celery-worker Failed to start awx-celery-worker.service: Unit not found.

What is required here?

By: justme

same here

By: twizod

Can't even get login page.  Port 80 is listening with nginx but browser is dead end and lynx shows bad html error.

By: chinochao

For some reason /websocket is not working for me. "failed: WebSocket is closed before the connection is established."

By: PIsaac

Same error.  "Failed to start awx-celery-beat.service: Unit not found."

I don't see a solution anywhere. I tried the awx-dev repo and had the same issue. Is there a solution?

By: Stefan Iusein

Just forget about awx-celery-beat and awx-celery-worker services.

However, do enable awx-dispatcher service.

To see what awx services are enabled, issue the command: systemctl list-unit-files | grep awx

Also allow these ports in the firewall: 8050 8051 and 8052

You can access the web interface on http://yourip:8052

By: Stefan Iusein

Just forget about awx-celery-beat and awx-celery-worker services.

However, do enable awx-dispatcher service.

To see what awx services are enabled, issue the command: systemctl list-unit-files | grep awx

Also allow these ports in the firewall: 8050 8051 and 8052

You can access the web interface on http://yourip:8052

By: Stefan Iusein

 Just forget about awx-celery-beat and awx-celery-worker services.

However, do enable awx-dispatcher service.

To see what awx services are enabled, issue the command: systemctl list-unit-files | grep awx

Also allow these ports in the firewall: 8050 8051 and 8052

You can access the web interface on http://yourip:8052

By: Stefan Iusein

Just forget about awx-celery-beat and awx-celery-worker services.

 

However, do enable awx-dispatcher service.

 

To see what awx services are enabled, issue the command: systemctl list-unit-files | grep awx

 

Also allow these ports in the firewall: 8050 8051 and 8052

 

You can access the web interface on http://yourip:8052

By: jp

Hi

I have a difficulty with awx-celery All is Ok until this line:

[root@PC-STAG installer]# systemctl enable awx-celery-beatFailed to execute operation: No such file or directory

I did many things without success. Could you help me? Thank you in advance.

By: Arrey

Hello, Thanks for the installation steps.  I the below error. Any ideas ?

sudo -u awx /opt/rh/rh-python36/root/usr/bin/awx-manage  migrateTraceback (most recent call last):  File "/opt/rh/rh-python36/root/usr/bin/awx-manage", line 11, in <module>    load_entry_point('awx==4.0.0', 'console_scripts', 'awx-manage')()  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/awx/__init__.py", line 124, in manage    prepare_env()  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/awx/__init__.py", line 89, in prepare_env    if not settings.DEBUG: # pragma: no cover  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__    self._setup(name)  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/django/conf/__init__.py", line 41, in _setup    self._wrapped = Settings(settings_module)  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/django/conf/__init__.py", line 110, in __init__    mod = importlib.import_module(self.SETTINGS_MODULE)  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module    return _bootstrap._gcd_import(name[level:], package, level)  File "<frozen importlib._bootstrap>", line 994, in _gcd_import  File "<frozen importlib._bootstrap>", line 971, in _find_and_load  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked  File "<frozen importlib._bootstrap_external>", line 678, in exec_module  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/awx/settings/production.py", line 14, in <module>    from split_settings.tools import optional, includeModuleNotFoundError: No module named 'split_settings'

By: Brian

A small correction:

The source on the wget line should be:  https://copr.fedorainfracloud.org/coprs/mrmeee/ansible-awx/repo/epel-7/mrmeee-awx-epel-7.repo

By: Lesley Ribeiro

I have only Ansible installed in my CentOS7.

AWX was installed with successful.

 

But, during exec job:

 

Identity added: /tmp/awx_41_tcbrtokr/artifacts/41/ssh_key_data (/tmp/awx_41_tcbrtokr/artifacts/41/ssh_key_data)     2 Unhandled error:     3 Traceback (most recent call last):     4 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 498, in get_config_value_and_origin     5 value = ensure_type(value, defs[config].get('type'), origin=origin)     6 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 93, in ensure_type     7 value = int(value)     8 ValueError: invalid literal for int() with base 10: '3 ; Tempo para nova tentativa de conxao com um host.'     10 During handling of the above exception, another exception occurred:     12 Traceback (most recent call last):     13 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 554, in update_config_data     14 value, origin = self.get_config_value_and_origin(config, configfile)     15 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 506, in get_config_value_and_origin     16 (to_native(_get_entry(plugin_type, plugin_name, config)), to_native(e)))     17 ansible.errors.AnsibleOptionsError: Invalid type for configuration option setting: ANSIBLE_SSH_RETRIES : invalid literal for int() with base 10: '3 ; Tempo para nova tentativa de conxao com um host.'     20 Traceback (most recent call last):     21 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 498, in get_config_value_and_origin     22 value = ensure_type(value, defs[config].get('type'), origin=origin)     23 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 93, in ensure_type     24 value = int(value)     25 ValueError: invalid literal for int() with base 10: '3 ; Tempo para nova tentativa de conxao com um host.'     27 During handling of the above exception, another exception occurred:     29 Traceback (most recent call last):     30 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 554, in update_config_data     31 value, origin = self.get_config_value_and_origin(config, configfile)     32 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 506, in get_config_value_and_origin     33 (to_native(_get_entry(plugin_type, plugin_name, config)), to_native(e)))     34 ansible.errors.AnsibleOptionsError: Invalid type for configuration option setting: ANSIBLE_SSH_RETRIES : invalid literal for int() with base 10: '3 ; Tempo para nova tentativa de conxao com um host.'     36 During handling of the above exception, another exception occurred:     38 Traceback (most recent call last):     39 File "/opt/rh/rh-python36/root/bin/ansible-playbook", line 62, in <module>     40 import ansible.constants as C     41 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/constants.py", line 174, in <module>     42 config = ConfigManager()     43 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 290, in __init__     44 self.update_config_data()     45 File "/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/config/manager.py", line 566, in update_config_data     46 raise AnsibleError("Invalid settings supplied for %s: %s\n" % (config, to_native(e)), orig_exc=e)     47

ansible.errors.AnsibleError: Invalid settings supplied for ANSIBLE_SSH_RETRIES: Invalid type for configuration option setting: ANSIBLE_SSH_RETRIES : invalid literal for int() with base 10: '3 ; Tempo para nova tentativa de conxao com um host.' 

 

would it be missing origin, kubernet or doker installed?

By: Santosh Garole

Hello ,

 

unable to download ansible-awx.

 

Thanks

Santos

By: vivek

i think the repo url is not correct.

 yum install awx

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: centos.brisanet.com.br

 * centos-sclo-rh: centos.mirror.serversaustralia.com.au

 * centos-sclo-sclo: centos.mirror.ate.info

 * epel: epel.besthosting.ua

 * extras: centos.mirror.vic.au.hostlink.com.au

 * updates: centos.mirrors.hoobly.com

copr:copr.fedorainfracloud.org:mrmeee:ansible-awx                                                                                     | 3.3 kB  00:00:00

No package awx available.

Error: Nothing to do

[root@myserver etc]# yum install -y awx

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: centos.brisanet.com.br

 * centos-sclo-rh: centos.mirror.serversaustralia.com.au

 * centos-sclo-sclo: centos.mirror.ate.info

 * epel: epel.besthosting.ua

 * extras: centos.mirror.vic.au.hostlink.com.au

 * updates: centos.mirrors.hoobly.com

No package awx available.

Error: Nothing to do

 

By: Dalibor

Hi Vivex,

Run this:

 

 yum install -y ansible-awx.x86_64

could you please help me with this error?

[root@centos7 installer]# ansible-playbook -i inventory install.yml

PLAY [Build and deploy AWX] ********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************fatal: [localhost]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"setup": {"failed": true, "module_stderr": "/usr/bin/env: python3: No such file or directory\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 127}}, "msg": "The following modules failed to execute: setup\n"}

PLAY RECAP *************************************************************************************************************************localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

[root@centos7 installer]#

-Docker is Running.

[root@centos7 ~]# systemctl enable dockerCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

[root@centos7 ~]# systemctl status dockerâ—? docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Sun 2020-09-06 04:45:20 UTC; 44s agoDocs: http://docs.docker.comMain PID: 1532 (dockerd-current)CGroup: /system.slice/docker.service├─1532 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=do...└─1545 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-int...

Sep 06 04:45:19 centos7 dockerd-current[1532]: time="2020-09-06T04:45:19.906672982Z" level=warning msg="Docker could not en...ystem"Sep 06 04:45:19 centos7 dockerd-current[1532]: time="2020-09-06T04:45:19.935201401Z" level=info msg="Graph migration to con...conds"Sep 06 04:45:19 centos7 dockerd-current[1532]: time="2020-09-06T04:45:19.936058581Z" level=info msg="Loading containers: start."Sep 06 04:45:20 centos7 dockerd-current[1532]: time="2020-09-06T04:45:20.077597010Z" level=info msg="Firewalld running: false"Sep 06 04:45:20 centos7 dockerd-current[1532]: time="2020-09-06T04:45:20.246261411Z" level=info msg="Default bridge (docker...dress"Sep 06 04:45:20 centos7 dockerd-current[1532]: time="2020-09-06T04:45:20.307628249Z" level=info msg="Loading containers: done."Sep 06 04:45:20 centos7 dockerd-current[1532]: time="2020-09-06T04:45:20.324019711Z" level=info msg="Daemon has completed i...ation"Sep 06 04:45:20 centos7 dockerd-current[1532]: time="2020-09-06T04:45:20.324139460Z" level=info msg="Docker daemon" commit=...1.13.1Sep 06 04:45:20 centos7 dockerd-current[1532]: time="2020-09-06T04:45:20.330828761Z" level=info msg="API listen on /var/run....sock"Sep 06 04:45:20 centos7 systemd[1]: Started Docker Application Container Engine.Hint: Some lines were ellipsized, use -l to show in full

-Ansible Version,

[root@centos7 installer]# ansible --versionansible 2.9.10config file = /etc/ansible/ansible.cfgconfigured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python2.7/site-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 2.7.5 (default, Apr 2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

By: Jo

I tried to install AWX on CentOS 7, but at this line : " sudo -u awx /opt/awx/bin/awx-manage migrate "

I have this error : 

" File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 29, in <module>

    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: libpq.so.rh-postgresql10-5: cannot open shared object file: No such file or directory "