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)
Comments
With this line you have basically created a new root account called ansible:
ansible ALL=(ALL) NOPASSWD: ALL
Is this necessary to run Ansible?
This is just a example , you can use any user with root access
Regards
Sunil
FYI you may get a "502 bad gateway" error. Fix is: https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx
Thanks it was SELinux
setsebool -P httpd_can_network_connect 1
Yeah it would be nice if OP included that in their blog post. I hit this problem as well.
That fixed it for me. Thanks!
Thanks, everything is working but I had to disable httpd
systemctl stop httpd.service
systemctl disable httpd.service
I tried to login using admin and password credentials but they don't work.
What is the correct username and password to login awx console...?
Check your sestatus; rerun AWX setup, then reboot.
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
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?
I got the same error, I had to reboot the system which fixed the issue.
Please provide a link to "the next tutorial" which shows us how to add a playbook and run the job.
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)
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".
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?
Can we update the awx version.
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 ?
The follow-on tutorial on how to add a playbook and run a job would be extremely useful.
My UI is not opening, i see ginx is started and awx web service is started. I dnt seee any access log coming in
you can use either httpd or nginx as both runs at port 80.
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).
Thanks for tutorial!
Can you continue share create playbook and execute it with Ansible AWX
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?
where do you see firewall being disabled? It is enabled with rules to http
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.
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
Thank you!
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
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
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
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.
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.
Will there be a clustering installation guide ?
[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! :)
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
[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?
same here
Can't even get login page. Port 80 is listening with nginx but browser is dead end and lynx shows bad html error.
For some reason /websocket is not working for me. "failed: WebSocket is closed before the connection is established."
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?
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
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
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
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
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.
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'
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
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?
Hello ,
unable to download ansible-awx.
Thanks
Santos
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
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)]
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 "