Unable to use 'yum install'

Hi,

I’m trying to install kubelet with Ansible, but I’m struggling to do it.

This is my playbook:

---
  - hosts: all
    become: yes
    tasks:
      - name: install docker
        yum:
          name: docker
          state: present
          update_cache: true

      - name: add repo
        yum_repository:
          name: kuberepo
          description: kubernetes-repo
          baseurl: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64"
          enabled: yes
          gpgcheck: yes
          repo_gpgcheck: yes
          gpgkey:
            - "https://packages.cloud.google.com/yum/doc/yum-key.gpg"
            - "https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg"

      - name: setenforce
        shell: setenforce 0

      - name: install kubelet
        yum:
          name: kubelet
          state: present
          update_cache: true

`

`

This is the error when i run the playbook (ansible-playbook -i hosts kube-dependencies.yml)

The “ok” from [master] node is because I manually executed “sudo yum install kubelet” on that machine, and it worked.

Conclusions: So basically, manually executing the yum install command it works, but I can’t make it work with ansible.

Any clues? What am I doing wrong?

Thanks in advance!

I would try to `curl https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml’ from the error on worker1/2 and see if it reports anything more helpful than what you’re getting back. Feels like a networking problem to me.

Hi Nick, thanks for helping!

the curl executed fine, I didn’t mention but my environment is running on google cloud.
If I enter the worker node and manually execute ‘yum install kubelet’, it works. But the same command on ansible playbook throws the error i mentioned… :frowning:

Maybe try adding “disable_gpg_check: true” to the “install kuberlet” task?

Hi Tony,

Does it mean that it’ll not use the security provided by gpg signatures of the packages?

Hi,

Could you try to add the GPG key with something like this before doing the yum ansible command ?

- name: Add repository key
  rpm_key:
    key: ["https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg"](https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg)

Regards,

Hey Fabio, like Jean-Yves said, try to split up your “Add repo” task in two, key install and package install. Something like this:

Hi Jean/js.a

I splitted up but the error persists. I’m not sure if my playbook is correct though. Here’s the splitted playbook.

`

---
  - hosts: all
    become: yes
    tasks:
      - name: install docker
        yum:
          name: docker
          state: present
          update_cache: true

      - name: add yum key repo
        rpm_key:
          key: "https://packages.cloud.google.com/yum/doc/yum-key.gpg"
          state: present

      - name: add rpm key repo
        rpm_key:
          key: "https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg"
          state: present

      - name: add repo
        yum_repository:
          name: kuberepo
          description: kubernetes-repo
          baseurl: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64"
          enabled: yes
          gpgcheck: yes
          repo_gpgcheck: yes

`

Hi,

Please provide logs to see the exact problem

Perhaps information given by a manual yum could help also…

But looking for your problem I found some related information that could (not sure) let us know that the problem is somewhere else :

https://github.com/kubernetes/kubernetes/issues/37922

https://github.com/kubernetes/kubernetes/issues/60134

Regards,

JY

Hi all,

The problem was that the workers needed to be updated with ‘‘yum -y update’’. I added the following code to my playbook:

`

      - name: yum update
        yum:
          name: '*'
          state: latest

`

Unfortunately I don’t know why this solved the problem :frowning:

Thanks for helping!