Description of problem: Deploy RHOS 13 with TLS everywhere enabled and the mentioned topology. While upgrading from RHos 13 to Rhos 14, the upgrade fails on undefined variable error "python_interpreter"
Topology: 3 controller, 2 compute, 1 freeipa, TLS everywhere enabled
Steps to Reproduce:
1. Deploy RHOS 13 with mentioned topology
2. Start upgrade procedure from Rhos 13 to Rhos 14
3. Upgrade fails at Ovecloud upgrade stage
Actual results:
2019-06-04 01:56:20 |
2019-06-04 01:56:20 | TASK [create enrollment script] ************************************************
2019-06-04 01:56:20 | Tuesday 04 June 2019 01:56:19 -0400 (0:00:05.920) 0:02:03.783 **********
2019-06-04 01:56:20 | fatal: [compute-1]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'python_interpreter' is undefined\n\nThe error appears to have been in '/var/lib/mistral/748701bf-d539-4283-a00c-2b3dc94e8938/Compute/host_prep_tasks.yaml': line 117, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n - hostname\n - copy:\n ^ here\n"}
2019-06-04 01:56:20 | fatal: [compute-0]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'python_interpreter' is undefined\n\nThe error appears to have been in '/var/lib/mistral/748701bf-d539-4283-a00c-2b3dc94e8938/Compute/host_prep_tasks.yaml': line 117, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n - hostname\n - copy:\n ^ here\n"}
2019-06-04 01:56:20 |
2019-06-04 01:56:20 | NO MORE HOSTS LEFT *************************************************************
2019-06-04 01:56:20 |
2019-06-04 01:56:20 | PLAY RECAP *********************************************************************
2019-06-04 01:56:20 | compute-0 : ok=97 changed=24 unreachable=0 failed=1
2019-06-04 01:56:20 | compute-1 : ok=97 changed=24 unreachable=0 failed=1
2019-06-04 01:56:20 |
Expected results:
Upgrade passed
Additional info:
So, having a look at the error and checking the involved template. This seems to be an error in an undefined ansible variable:
https://github.com/openstack/tripleo-heat-templates/blob/stable/rocky/extraconfig/services/ipaclient.yaml#L124
The ipaclient template has a function in the host_prep_tasks which references an undefined "python_interpreter" variable added in https://review.opendev.org/#/c/661103/:
function get_fqdn {
# Get the instance hostname out of the metadata
fqdn=`echo $data | {{ python_interpreter }} -c 'import json,sys;obj=json.load(sys.stdin);print(obj.get("join", {}).get("hostname", ""))'`
if [ -z "$fqdn"]; then
echo "Unable to determine hostname"
return 1
fi
return 0
}
The fix should be easy, so I'm moving it to the Security DFG who are in charge of this service.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2019:1672
Description of problem: Deploy RHOS 13 with TLS everywhere enabled and the mentioned topology. While upgrading from RHos 13 to Rhos 14, the upgrade fails on undefined variable error "python_interpreter" Topology: 3 controller, 2 compute, 1 freeipa, TLS everywhere enabled Steps to Reproduce: 1. Deploy RHOS 13 with mentioned topology 2. Start upgrade procedure from Rhos 13 to Rhos 14 3. Upgrade fails at Ovecloud upgrade stage Actual results: 2019-06-04 01:56:20 | 2019-06-04 01:56:20 | TASK [create enrollment script] ************************************************ 2019-06-04 01:56:20 | Tuesday 04 June 2019 01:56:19 -0400 (0:00:05.920) 0:02:03.783 ********** 2019-06-04 01:56:20 | fatal: [compute-1]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'python_interpreter' is undefined\n\nThe error appears to have been in '/var/lib/mistral/748701bf-d539-4283-a00c-2b3dc94e8938/Compute/host_prep_tasks.yaml': line 117, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n - hostname\n - copy:\n ^ here\n"} 2019-06-04 01:56:20 | fatal: [compute-0]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'python_interpreter' is undefined\n\nThe error appears to have been in '/var/lib/mistral/748701bf-d539-4283-a00c-2b3dc94e8938/Compute/host_prep_tasks.yaml': line 117, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n - hostname\n - copy:\n ^ here\n"} 2019-06-04 01:56:20 | 2019-06-04 01:56:20 | NO MORE HOSTS LEFT ************************************************************* 2019-06-04 01:56:20 | 2019-06-04 01:56:20 | PLAY RECAP ********************************************************************* 2019-06-04 01:56:20 | compute-0 : ok=97 changed=24 unreachable=0 failed=1 2019-06-04 01:56:20 | compute-1 : ok=97 changed=24 unreachable=0 failed=1 2019-06-04 01:56:20 | Expected results: Upgrade passed Additional info: