How to migrate from awx 17.x to 18.x

Hi!

I am using awx 17.x and plan to migrate to 18.x which uses kubernets operators method of installation.

could some one please share the details to migrate from 17.x to 18.x?

Thanks & Regards,
Selvam E.

Hi!

I am using awx 17.x and plan to migrate to 18.x which uses kubernets operators method of installation.

could some one please share the details to migrate from 17.x to 18.x?

environment: kubernetes cluster

Thanks & Regards,
Selvam E.

How we can migrate awx from 17.x to 18.x. could some one help me here.

Hello,
We encountered some issues from AWX 17.1.0 to 18.0.0
Can we have any help or news about this please ?

What problems are yoy experiencing?

Also what are yoy trying to migrate? Everything or parts?

Here is what I did for the upgrade and it is working fine.

Selvam Elangovan <selvame2002@gmail.com>

Thu, Oct 7, 5:15 PM (8 days ago)


|
|

  • | - |

to Wei-Yen, AWX, Andrea

Selvam Elangovan <selvame2002@gmail.com>

Thu, Oct 7, 5:15 PM (8 days ago)


|
|

  • | - |

to Wei-Yen, AWX, Andrea

Here is what I did for the upgrade.

Execute below:

Awx upgrade based on k8 operator:
kubectl delete deployment awx-operator
kubectl delete serviceaccount awx-operator
kubectl delete clusterrolebinding awx-operator
kubectl delete clusterrole awx-operator

unzip -d awx-operator-0.14.0.zip
export NAMESPACE=awx
Please go to the unzipped directory and execute below
make deploy

The operator will be successfully installed however the postgress configuration i.e secret is not available in operator hence it will fail to
update the awx ansible tower.

Follow the below to update ansible tower aka awx

kubectl -n awx edit deployment.apps/awx
Change the image_verison to the latest one. example: 19.4.0

It will automatically pull the image and install it.

Once done, run below i.e. after all the pods and container on running.

kubectl -n awx exec -it pod/podname -c awx-web bash
awx-manage showmigrations | grep -v ‘’ | grep ‘’ | wc -l
awx-manage showmigrations
awx-manage migrate --noinput
awx-manage changepassword admin

Once above done, then you have successfully updated the awx from 19.x to 19.4.0

Note: THE Postgres is external.

interesting. In my upgrades from 18-19+ I just changed this :

Change the image_verison to the latest one. example: 19.4.0

The operator did everything else

Hello,

We are trying to migrate our K8S instance in version 17.1.0 to the operator in 0.14.0 and the AWX image in 18.0.0.
We currently have an external Postgres database

When we do the upgrade, the operator exits successfully but we cannot download a project or run a template.
We get a “Runtime error: status 0” error.

Do you have an idea?

This is the error :

Traceback (most recent call last):
File “/var/lib/awx/venv/awx/lib/python3.6/site-packages/awx/main/tasks.py”, line 1476,
in run res = receptor_job.run()
File “/var/lib/awx/venv/awx/lib/python3.6/site-packages/awx/main/tasks.py”, line 3094,
in run return self._run_internal(receptor_ctl)
File “/var/lib/awx/venv/awx/lib/python3.6/site-packages/awx/main/tasks.py”, line 3150,
in _run_internal raise RuntimeError(detail)
RuntimeError: exit status 0

Ahhhh I reread this. Are you saying that the upgrade succedded but no jobs (jobs are not working). Right , are yoy using a custom execution environment at all?

Yes indeed we use custom venv to set a specific version to deploy on rhel 5 for example

In awx 19 there is no venv anymore. There is only execution environments. Any customizations you have in a venv will have to be customised for that. You will have to create one for that and include your venv in that

https://docs.ansible.com/automation-controller/latest/html/userguide/execution_environments.html?extIdCarryOver=true&sc_cid=701f2000001OH6fAAG

I also wrote a blog post that might be helpful

https://weiyentan.github.io/2021/creating-execution-environments/

I hope that helps.

We also updated an external pg from 17.x to 18+ and have not found a solution for the runtime error you’re seeing. We don’t use custom venv. We’ve tried changing all templates and projects to the default ee, but still nothing but runtime error.

What’s in your job template and or project?

A playbook from a private git repo, credentials, and inventory nothing fancy. Even creating a new template that calls a simple playbook with a single machine inventory fails with runtime error while trying to sync repo from git. I’ve confirmed a new install works fine. So we may have to look into exporting work flow and templates, and see if we can get them working on a new install. It does require keying all the credentials back in.

And are you using the default ee?

Sorry just reread your message.

Just FYI, we have upgrade our instance to the 19.0.0 and next 19.2.2 version. It works fine with our external database.
I see this line in CHANGELOG : “There are now 2 default Instance Groups: ‘controlplane’ and ‘default’”
This corrects the problem of Runtime error