Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1870123

Summary: Deployment of OCP is failing at the check "docker_storage"
Product: OpenShift Container Platform Reporter: Arun Kumar <arukumar>
Component: InstallerAssignee: Russell Teague <rteague>
Installer sub component: openshift-ansible QA Contact: Gaoyun Pei <gpei>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: medium CC: bleanhar, dmitry.zhukovski, simore
Version: 3.11.0Keywords: Regression
Target Milestone: ---   
Target Release: 3.11.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Internal changes to Ansible 2.11 caused compatibility issues with the way openshift-ansible uses the execute_module Ansible call. The call was switched to the public module call which is more reliable and safe.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-10-22 11:02:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Arun Kumar 2020-08-19 11:46:31 UTC
Description of problem:

Deployment of  is failing at the task "CHECK [memory_availability...."

error message:
--------------
CHECK [memory_availability : registry3] **********************************************************************************************************
<registry3> ESTABLISH SSH CONNECTION FOR USER: root
<registry3> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-wit
h-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/44f4f13
4d3 registry3 '/bin/sh -c '"'"'rm -f -r /root/.ansible/tmp/ansible-tmp-1597666215.75-18309-222009220724152/ > /dev/null 2>&1 && sleep 0'"'"''
<registry3> (0, '', '')
fatal: [registry3]: FAILED! => {
    "changed": false,
    "checks": {
        "disk_availability": {},
        "docker_image_availability": {
            "skipped": true,
            "skipped_reason": "Disabled by user request"
        },
        "docker_storage": {
            "failed": true,
            "failures": [
                [
                    "OpenShiftCheckException",
                    "'ansible_facts'\nTraceback (most recent call last):\n  File \"/usr/share/ansible/openshift-ansible/roles/openshift_health_che
cker/action_plugins/openshift_health_check.py\", line 225, in run_check\n    result = check.run()\n  File \"/usr/share/ansible/openshift-ansible/r
oles/openshift_health_checker/openshift_checks/docker_storage.py\", line 47, in run\n    command_result = self._execute_module('command', command_
args)\n  File \"/usr/lib/python2.7/site-packages/ansible/plugins/action/__init__.py\", line 825, in _execute_module\n    (module_style, shebang, m
odule_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)\n  File \"/usr/lib/python
2.7/site-packages/ansible/plugins/action/__init__.py\", line 225, in _configure_module\n    use_vars['ansible_facts'][discovered_key] = self._disc
overed_interpreter\nKeyError: 'ansible_facts'\n"
                ]
            ],


Failure summary:
------------------
Health Check    : In Progress (0:00:41)
        This phase can be restarted by running: playbooks/openshift-checks/pre-install.yml


Failure summary:


  1. Hosts:    gluster1, gluster2, gluster3, infra, master, registry1, registry2, registry3
     Play:     OpenShift Health Checks
     Task:     Run health checks (install) - EL
     Message:  One or more checks failed
     Details:  check "docker_storage":
               'ansible_facts'
               Traceback (most recent call last):
                 File "/usr/share/ansible/openshift-ansible/roles/openshift_health_checker/action_plugins/openshift_health_check.py", line 225, in run_check
                   result = check.run()
                 File "/usr/share/ansible/openshift-ansible/roles/openshift_health_checker/openshift_checks/docker_storage.py", line 47, in run
                   command_result = self._execute_module('command', command_args)
                 File "/usr/lib/python2.7/site-packages/ansible/plugins/action/__init__.py", line 825, in _execute_module
                   (module_style, shebang, module_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)
                 File "/usr/lib/python2.7/site-packages/ansible/plugins/action/__init__.py", line 225, in _configure_module
                   use_vars['ansible_facts'][discovered_key] = self._discovered_interpreter
               KeyError: 'ansible_facts'
               

The execution of "/usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml" includes checks designed to fail early if the requirements of the playbook are not met. One or more of these checks failed. To disregard these results,explicitly disable checks by setting an Ansible variable:
   openshift_disable_check=docker_storage
Failing check names are shown in the failure details above. Some checks may be configurable by variables if your requirements are different from the defaults; consult check documentation.
Variables can be set in the inventory or passed on the command line using the -e flag to ansible-playbook.


Note: I successfully able to deploy the OCP with these variables "openshift_disable_check=docker_storage,memory_availability".
------

Version-Release number of the following components:
---------------------------------------------------

[rootॐ master ~]# rpm -q openshift-ansible
openshift-ansible-3.11.248-1.git.0.fd212c7.el7.noarch
[rootॐ master ~]# rpm -q ansible
ansible-2.9.11-1.el7ae.noarch
[rootॐ master ~]# ansible --version
ansible 2.9.11
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.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, Mar 20 2020, 17:08:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

Comment 1 Russell Teague 2020-08-19 14:13:21 UTC
This is expected to be a compatibility problem with Ansible 2.9.11+.  Could you test with 2.9.10 and the docker_storage check enabled?

Comment 2 Arun Kumar 2020-08-21 10:38:27 UTC
(In reply to Russell Teague from comment #1)
> This is expected to be a compatibility problem with Ansible 2.9.11+.  Could
> you test with 2.9.10 and the docker_storage check enabled?

Deployment passed the ansible version "2.9.10", issue was not hit.

outputs:
-----------
INSTALLER STATUS *********************************************************************************************************************************
Initialization               : Complete (0:00:59)
Health Check                 : Complete (0:00:46)
Node Bootstrap Preparation   : Complete (0:18:12)
etcd Install                 : Complete (0:00:57)
Master Install               : Complete (0:03:39)
Master Additional Install    : Complete (0:00:46)
Node Join                    : Complete (0:01:28)
Hosted Install               : Complete (0:00:54)
Cluster Monitoring Operator  : Complete (0:00:13)
Web Console Install          : Complete (0:00:42)
Console Install              : Complete (0:00:14)

# rpm -q openshift-ansible
openshift-ansible-3.11.248-1.git.0.fd212c7.el7.noarch

# rpm -q ansible
ansible-2.9.10-1.el7ae.noarch

# ansible --version
ansible 2.9.10
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.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, Mar 20 2020, 17:08:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

Thanks!
Arun

Comment 5 Gaoyun Pei 2020-09-17 03:45:45 UTC
Verify this bug with openshift-ansible-3.11.287-1.git.0.6837046.el7.noarch.rpm and ansible-2.9.13-1.el7ae


CHECK [memory_availability : ec2-52-55-195-138.compute-1.amazonaws.com] ********
changed: [ec2-52-55-195-138.compute-1.amazonaws.com] => {"changed": true, "checks": {"disk_availability": {}, "docker_image_availability": {"changed": true}, "docker_storage": {"changed": true}, "memory_availability": {}, "package_availability": {"changed": false, "invocation": {"module_args": {"packages": ["PyYAML", "atomic-openshift", "atomic-openshift-node", "bind", "ceph-common", "dnsmasq", "docker", "firewalld", "flannel", "glusterfs-fuse", "iptables", "iptables-services", "iscsi-initiator-utils", "libselinux-python", "nfs-utils", "ntp", "openssl", "pyparted", "python-httplib2", "yum-utils"]}}}, "package_version": {"changed": false, "invocation": {"module_args": {"package_list": [{"check_multi": true, "name": "atomic-openshift", "version": ""}, {"check_multi": true, "name": "atomic-openshift-master", "version": ""}, {"check_multi": true, "name": "atomic-openshift-node", "version": ""}], "package_mgr": "yum"}}}}, "playbook_context": "install"}

Comment 6 Brenton Leanhardt 2020-09-18 12:09:37 UTC
*** Bug 1880385 has been marked as a duplicate of this bug. ***

Comment 9 errata-xmlrpc 2020-10-22 11:02:25 UTC
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 (OpenShift Container Platform 3.11.306 bug fix and enhancement update), 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-2020:4170