ansible / awx

AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.
Other
13.69k stars 3.38k forks source link

AWX 5.0.0 Install : Database Migration Failure #4255

Open famantanantsoaandry opened 5 years ago

famantanantsoaandry commented 5 years ago
ISSUE TYPE
SUMMARY
ENVIRONMENT
STEPS TO REPRODUCE

Install Awx on Dedicated Openshift 3.7 with the playbook , and an external PostgreSQL Database

Command : ansible-playbook -i inventory install.yml -e openshift_token=$(oc whoami -t)

EXPECTED RESULTS

Migration Should be done

All the 02 pods and containers are created but fail to start because of the database migration

ACTUAL RESULTS

ValueError: Unable to configure handler 'fact_receiver': [Errno 13] Permission denied: '/var/log/tower/fact_receiver.log

TASK [kubernetes : Migrate database] ** fatal: [localhost]: FAILED! => {"changed": true, "cmd": "oc --config=/tmp/awx-config/.kube/config -n gcloud-services-test-middleware exec ansible-tower-management -- bash -c \"awx-manage migrate --noinput\"\n", "delta": "0:00:01.687839", "end": "2019-07-02 17:07:54.133670", "msg": "non-zero return code", "rc": 1, "start": "2019-07-02 17:07:52.445831", "stderr": "Traceback (most recent call last):\n File \"/usr/bin/awx-manage\", line 9, in \n load_entry_point('awx==1.0.5.24', 'console_scripts', 'awx-manage')()\n File \"/usr/lib/python2.7/site-packages/awx/init.py\", line 109, in manage\n execute_from_command_line(sys.argv)\n File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/init.py\", line 364, in execute_from_command_line\n utility.execute()\n File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/init.py\", line 338, in execute\n django.setup()\n File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/init.py\", line 22, in setup\n configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)\n File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/utils/log.py\", line 75, in configure_logging\n logging_config_func(logging_settings)\n File \"/usr/lib64/python2.7/logging/config.py\", line 803, in dictConfig\n dictConfigClass(config).configure()\n File \"/usr/lib64/python2.7/logging/config.py\", line 585, in configure\n '%r: %s' % (name, e))\nValueError: Unable to configure handler 'fact_receiver': [Errno 13] Permission denied: '/var/log/tower/fact_receiver.log'\ncommand terminated with exit code 1", "stderr_lines": ["Traceback (most recent call last):", " File \"/usr/bin/awx-manage\", line 9, in ", " load_entry_point('awx==1.0.5.24', 'console_scripts', 'awx-manage')()", " File \"/usr/lib/python2.7/site-packages/awx/init.py\", line 109, in manage", " execute_from_command_line(sys.argv)", " File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/init.py\", line 364, in execute_from_command_line", " utility.execute()", " File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/init.py\", line 338, in execute", " django.setup()", " File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/init.py\", line 22, in setup", " configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)", " File \"/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/utils/log.py\", line 75, in configure_logging", " logging_config_func(logging_settings)", " File \"/usr/lib64/python2.7/logging/config.py\", line 803, in dictConfig", " dictConfigClass(config).configure()", " File \"/usr/lib64/python2.7/logging/config.py\", line 585, in configure", " '%r: %s' % (name, e))", "ValueError: Unable to configure handler 'fact_receiver': [Errno 13] Permission denied: '/var/log/tower/fact_receiver.log'", "command terminated with exit code 1"], "stdout": "", "stdout_lines": []}

ADDITIONAL INFORMATION
ryanpetrello commented 5 years ago

5.0.5 isn't an AWX version. Did you mean 5.0.0?

https://github.com/ansible/awx/releases

This error suggests to me that you're using an older image combined with newer code. Please make sure you're using the correct official images from Docker Hub or have built the correct image locally to match the version of AWX you've cloned.

famantanantsoaandry commented 5 years ago

Excuse me , typo error , it is 5.0.0 the latest version

Of Course I'm using the official latest ansible Image

ryanpetrello commented 5 years ago

Specifically, it looks like you might have an old settings file laying around from a prior release that doesn't have these recent changes:

https://github.com/ansible/awx/pull/3803/

famantanantsoaandry commented 5 years ago

I'm using the latest code and the latest image from docker hub , but the issue is still persistant

When browsing inside the ansible-tower-managment console , the file /var/log/tower/fact_receiver.log doesn't exist ,

Permission denied: '/var/log/tower/fact_receiver.log

After some investigation , I think the issue is that inside the container awx-task inside the ansible-tower-managment console , the service account used is the default one , not the "awx" when calling the oc --config=/tmp/awx-config/.kube/config -n gcloud-services-test-middleware exec ansible-tower-management -- bash -c awx-manage migrate --noinput .

we can check the /var/run/secrets/kubernetes.io/serviceaccount/token value and connect with it

There a step in the installation process which should check this but I don't know where exactly . Any help is welcome .