Description of problem: OpenShift on OpenStack uninstaller fails because it is unable to contact nodes that were not created during a filed install. It is expected that the uninstaller playbook can clean up a stack even when nodes are missing or unreachable. Version-Release number of the following components: rpm -q openshift-ansible openshift-ansible-3.10.23-1.git.0.a9c7e7d.el7.noarch rpm -q ansible ansible-2.4.6.0-1.el7ae.noarch ansible --version ansible 2.4.6.0 config file = /etc/ansible/ansible.cfg configured module search path = [u'/home/cloud-user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Feb 20 2018, 09:19:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] How reproducible: Always Steps to Reproduce: 1. Deploy OCP 3.10 on OSP 13 and abort the installation early for any reason: (shiftstack) [cloud-user@bastion ~]$ ansible-playbook --user openshift -i /usr/share/ansible/openshift-ansible/playbooks/openstack/inventory.py -i inventory /usr/share/ansible/openshift-ansible/playbooks/openstack/openshift-cluster/provision.yml --- output omitted --- 2. Run the uninstall playbook with an intent to clean up (to be able to provision again from a clean start): (shiftstack) [cloud-user@bastion ~]$ ansible-playbook --user openshift -i /usr/share/ansible/openshift-ansible/playbooks/openstack/inventory.py -i inventory /usr/share/ansible/openshift-ansible/playbooks/openstack/openshift-cluster/uninstall.yml Actual results: PLAY [Unsubscribe RHEL instances] ************************************************************************************************************************************************************* TASK [Gathering Facts] ************************************************************************************************************************************************************************ fatal: [infra-node-0.openshift.example.com]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.122.58 port 22: No route to host\r\n", "unreachable": true} fatal: [app-node-0.openshift.example.com]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.122.62 port 22: No route to host\r\n", "unreachable": true} fatal: [infra-node-1.openshift.example.com]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.122.54 port 22: No route to host\r\n", "unreachable": true} ok: [master-0.openshift.example.com] ok: [app-node-1.openshift.example.com] TASK [rhel_unsubscribe : Remove RedHat subscriptions] ***************************************************************************************************************************************** skipping: [master-0.openshift.example.com] skipping: [app-node-1.openshift.example.com] PLAY [Clean DNS entries] ********************************************************************************************************************************************************************** TASK [Gathering Facts] ************************************************************************************************************************************************************************ ok: [localhost] TASK [openshift_openstack : Generate DNS records] ********************************************************************************************************************************************* included: /usr/share/ansible/openshift-ansible/roles/openshift_openstack/tasks/generate-dns.yml for localhost TASK [openshift_openstack : Generate list of private A records] ******************************************************************************************************************************* ok: [localhost] => (item=master-0.openshift.example.com) fatal: [localhost]: FAILED! => {"failed": true, "msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'ansible_hostname'\n\nThe error appears to have been in '/usr/share/ansible/openshift-ansible/roles/openshift_openstack/tasks/generate-dns.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: \"Generate list of private A records\"\n ^ here\n\nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'dict object' has no attribute 'ansible_hostname'"} [WARNING]: Could not create retry file '/usr/share/ansible/openshift-ansible/playbooks/openstack/openshift-cluster/uninstall.retry'. [Errno 13] Permission denied: u'/usr/share/ansible/openshift-ansible/playbooks/openstack/openshift-cluster/uninstall.retry' PLAY RECAP ************************************************************************************************************************************************************************************ app-node-0.openshift.example.com : ok=0 changed=0 unreachable=1 failed=0 app-node-1.openshift.example.com : ok=1 changed=0 unreachable=0 failed=0 infra-node-0.openshift.example.com : ok=0 changed=0 unreachable=1 failed=0 infra-node-1.openshift.example.com : ok=0 changed=0 unreachable=1 failed=0 localhost : ok=15 changed=0 unreachable=0 failed=1 master-0.openshift.example.com : ok=1 changed=0 unreachable=0 failed=0
https://github.com/openshift/openshift-ansible/pull/9343 should fix this issue. A workaround would be to simply run 'openstack stack delete openshift-cluster'; this should work if the issue is caused by an incomplete heat stack run.
3.10 backport merged: https://github.com/openshift/openshift-ansible/pull/9362
Should be in openshift-ansible-3.10.28-1
Verified on # rpm -qa|grep -i openshift openshift-ansible-docs-3.10.106-1.git.0.217c6b9.el7.noarch openshift-ansible-roles-3.10.106-1.git.0.217c6b9.el7.noarch atomic-openshift-clients-3.10.106-1.git.0.84f1efc.el7.x86_64 openshift-ansible-playbooks-3.10.106-1.git.0.217c6b9.el7.noarch openshift-ansible-3.10.106-1.git.0.217c6b9.el7.noarch
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:0328