Ansible yum disable_excludes дает ошибку, как правильно использовать его для конкретной команды оболочки? - PullRequest
2 голосов
/ 09 июля 2020

Мне нужно выполнить один из этапов установки kubeadm, который включает следующие команды на машине centos

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

Мне нужно выполнить это с помощью сценария автоматизации Ansible, и я не смог выяснить, какой способ правильно реализовать этот шаг Я пробовал

- name: Install these packages - kubelet kubeadm kubectl
    yum:
      name: "{{ packages }}"
    vars:
      packages:
        - kubelet
        - kubeadm
        - kubectl
      state: latest
      disable_excludes: repoid
      disablerepo: kubernetes
      become: yes
      become_user: root

И я получил следующий результат:

TASK [Install these packages - kubelet kubeadm kubectl] *****************************************************************************************************
fatal: [k8s-head]: FAILED! => {"ansible_facts": {"pkg_mgr": "yum"}, "changed": false, "msg": "Failure talking to yum: failure: repodata/repomd.xml from kubernetes: [Errno 256] No more mirrors to try.\nhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes"}
fatal: [k8s-node-1]: FAILED! => {"ansible_facts": {"pkg_mgr": "yum"}, "changed": false, "msg": "Failure talking to yum: failure: repodata/repomd.xml from kubernetes: [Errno 256] No more mirrors to try.\nhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes"}

Я знаю, что делаю это неправильно, но я не понимаю, если я я должен использовать файл yum.conf, чтобы исправить это, или использовать любую другую опцию из модуля yum для disable_exclude Kubernetes. Я всегда могу использовать модуль оболочки, но я хочу оставить его в крайнем случае.

РЕДАКТИРОВАТЬ: ОПЫТНАЯ ИНФОРМАЦИЯ Отказ от ответственности, это сработало, но не является решением *. 1016 * Итак, я исправил свою идентификацию и попробовал сценарий ansible следующим образом:

- name: Install these packages - kubelet kubeadm kubectl
    yum:
      name: "{{ packages }}"
      state: latest
      disable_excludes: all
      exclude: kubernetes
    vars:
      packages:
        - kubelet
        - kubeadm
        - kubectl
    become: yes
    become_user: root

Я до сих пор не уверен, что это правильный способ реализовать следующие команды

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

, но мои пакеты устанавливаются без ошибок, поэтому он выполняет ту работу, которую я хочу сейчас.

...