0

I am installing Openshift 3.11 version cluster on my Centos 7.8 VMS. The configuration is that there are there are three Centos VMs (one master node + two worker nodes). I have configured my inventory file also and 'prerequisites.yml' playbook also ran successfully. But when I am running the playbook 'deploy_cluster.yml', then it is generating errors as follows ----

TASK [openshift_version : fail] ***********************************************************************************************************
fatal: [kubernetus]: FAILED! => {"msg": "The conditional check 'not rpm_results.results.package_found' failed. The error was: error while e
valuating conditional (not rpm_results.results.package_found): 'dict object' has no attribute 'results'\n\nThe error appears to be in '/usr
/share/ansible/openshift-ansible/roles/openshift_version/tasks/check_available_rpms.yml': line 8, column 3, but may\nbe elsewhere in the fi
le depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- fail:\n  ^ here\n"}


Failure summary:


  1. Hosts:    kubernetus
     Play:     Determine openshift_version to configure on first master
     Task:     openshift_version : fail
     Message:  The conditional check 'not rpm_results.results.package_found' failed. The error was: error while evaluating conditional (no$ rpm_results.results.package_found): 'dict object' has no attribute 'results'

The error appears to be in '/usr/share/ansible/openshift-ansible/roles/openshift_version/tasks/check_available_rpms.yml': li
ne 8, column 3, but may
               be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

                 - fail:
                 ^ here

For this, I even checked the corresponding file mentioned above (/usr/share/ansible/openshift-ansible/roles/openshift_version/tasks/check_available_rpms.yml) but could not find anything. Its contents are as follows ---

---
- name: Get available RPM version
  repoquery:
    name: "{{ openshift_service_type }}{% if openshift_version is defined %}-{{ openshift_version }}*{% elif openshift_release is defined %}-{{ openshift_release }}*{% endif %}"
    ignore_excluders: true
  register: rpm_results

- fail:
    msg: "Package '{{ rpm_results.results.package_name }}' not found"
  when: not rpm_results.results.package_found

Can anybody help me in this as I am not able to find any solution to this ?

The output of - debug: var=rpm_results is as follows ----

TASK [openshift_version : debug] 

**********************************************************************************************************
    ok: [kubernetus] => {
        "rpm_results": {
            "ansible_module_results": {
                "cmd": "/usr/bin/repoquery --plugins --quiet --pkgnarrow=repos --queryformat=%{version}|%{release}|%{arch}|%{repo}|%{version}-%
    {release} --config=/tmp/tmpWCj7Cy origin-3.11.0*",
                "package_found": true,
                "package_name": "origin-3.11.0*",
                "returncode": 0,
                "versions": {
                    "available_versions": [
                        "3.11.0"
                    ],
                    "available_versions_full": [
                        "3.11.0-1.el7.git.0.62803d0"
                    ],
                    "latest": "3.11.0",
                    "latest_full": "3.11.0-1.el7.git.0.62803d0"
                }
            },
            "changed": false,
            "check_mode": false,
            "failed": false,
            "state": "list"
        }
    }

The output of yum search openshift is as follows ----

    [root@kubernetus playbooks]# yum search openshift
    Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager

    This system is not registered with an entitlement server. You can use subscription-manager to register.

    Loading mirror speeds from cached hostfile
     * base: mirror.xeonbd.com
     * extras: mirror.xeonbd.com
     * remi-php73: mirror.veriteknik.net.tr
     * remi-safe: mirror.veriteknik.net.tr
     * updates: mirror.xeonbd.com
    ========================================================= N/S matched: openshift ==========================================================
    atomic-openshift-utils.noarch : Atomic OpenShift Utilities
    centos-release-openshift-origin13.noarch : Yum configuration for OpenShift Origin 1.3 packages
    centos-release-openshift-origin14.noarch : Yum configuration for OpenShift Origin 1.4 packages
    centos-release-openshift-origin15.noarch : Yum configuration for OpenShift Origin 1.5 packages
    centos-release-openshift-origin310.noarch : Yum configuration for OpenShift Origin 3.10 packages
    centos-release-openshift-origin311.noarch : Yum configuration for OpenShift Origin 3.11 packages
    centos-release-openshift-origin36.noarch : Yum configuration for OpenShift Origin 3.6 packages
    centos-release-openshift-origin37.noarch : Yum configuration for OpenShift Origin 3.7 packages
    centos-release-openshift-origin39.noarch : Yum configuration for OpenShift Origin 3.9 packages
    openshift-ansible.noarch : Openshift and Atomic Enterprise Ansible
    openshift-ansible-callback-plugins.noarch : Openshift and Atomic Enterprise Ansible callback plugins
    openshift-ansible-docs.noarch : Openshift and Atomic Enterprise Ansible documents
    openshift-ansible-filter-plugins.noarch : Openshift and Atomic Enterprise Ansible filter plugins
    openshift-ansible-lookup-plugins.noarch : Openshift and Atomic Enterprise Ansible lookup plugins
    openshift-ansible-playbooks.noarch : Openshift and Atomic Enterprise Ansible Playbooks
    openshift-ansible-roles.noarch : Openshift and Atomic Enterprise Ansible roles
    openshift-ansible-test.noarch : Openshift and Atomic Enterprise Ansible Test Playbooks
    openshift-excluder.noarch : Exclude openshift packages from updates
    centos-release-openshift-origin.noarch : Common release file to establish shared metadata for CentOS PaaS SIG
    origin-excluder.noarch : Exclude openshift packages from updates

      Name and summary matches only, use "search all" for everything.

Output of 'yum search origin-3.11.0*' is as follows ----

[root@kubernetus playbooks]# yum search origin-3.11.0*
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: mirror.xeonbd.com
 * extras: mirror.xeonbd.com
 * remi-php73: mirror.veriteknik.net.tr
 * remi-safe: mirror.veriteknik.net.tr
 * updates: mirror.xeonbd.com
Warning: No matches found for: origin-3.11.0*
No matches found
Aditya Datta
  • 567
  • 2
  • 7
  • 17
  • Can you add `- debug: var=rpm_results` between the two statements to check what is the output of the `repoquery` module and provide the additional output in your question? Also can you add the output for `yum search openshift`? I think you do not have the right repositories attached to your machine. – Simon Jun 17 '20 at 12:57
  • Hi Simon , please refer the below output for your query. – Aditya Datta Jun 17 '20 at 17:48
  • Thanks. Note that you can edit your original question and add the information there. So it seems that the `repoquery` is looking for "origin-3.11.0*". What is the output when you run `yum search origin-3.11.0*`? I am guessing that this will not find anything, check if the correct YUM repositories are attached. Check the installation instructions which repositories you need. – Simon Jun 17 '20 at 18:14
  • Hi Simon, You are correct regarding the 'yum search origin-3.11.0*' output. It shows no matches found. Please refer output above. But I referred an article for creating this cluster. It did'nt mention for adding any repos. Link of article - https://spiritedengineering.net/2019/08/05/put-red-hat-openshift-on-your-laptop-using-virtualbox-and-openshift-ansible/ – Aditya Datta Jun 18 '20 at 08:35
  • I can see that in /etc/yum.repos.d, there are two repos present ---- 'CentOS-OpenShift-Origin39.repo' and 'CentOS-OpenShift-Origin.repo'. I don't know whether they are relevant for this or not . – Aditya Datta Jun 18 '20 at 08:43
  • Well, it seems that you are mixing OpenShift versions, you have the 3.9 repository attached but are trying to install 3.11. You'll need to attach the 3.11 repository. I would recommend that you refer to the official documentation for the installation: https://docs.okd.io/3.11/install/index.html – Simon Jun 18 '20 at 15:51
  • 1
    Hi Simon , You were correct. I found out this issue and reinstalled 'centos-release-openshift-origin311' . This updated 'centos-release-openshift' and the issue solved. Now I am stuck in some other issue in its installation but this issue has got solved. – Aditya Datta Jun 19 '20 at 05:43

1 Answers1

0

Copied from comments (as this seems to have been the issue):

So it seems that the repoquery is looking for "origin-3.11.0*". What is the output when you run yum search origin-3.11.0*? I am guessing that this will not find anything, check if the correct YUM repositories are attached.

It seems that you are mixing OpenShift versions, you have the 3.9 repository attached but are trying to install 3.11. You'll need to attach the 3.11 repository. I would recommend that you refer to the official documentation for the installation: https://docs.okd.io/3.11/install/index.html

Simon
  • 4,251
  • 2
  • 24
  • 34