kubernetes - Ansible yum disable_excludes 给出错误,如何为特定的 shell 命令正确使用它?

标签 kubernetes ansible yum

我需要在 centos 机器上完成 kubeadm 安装步骤之一,其中包括以下命令

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 模块中的任何其他选项来禁用 Kubernetes。我总是可以使用 shell 模块,但我想保留它作为最后的手段。

EDIT : TRIED INDENTATION Disclaimer this worked but is not a solution. So i corrected my identation and tried the ansible script as following

- 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

但是我的包安装没有错误,所以它完成了我现在想要它完成的工作。

最佳答案

我是这样解决的:

- name: Setup for the Kubernetes's Environment
  hosts: kube-master
  gather_facts: yes
  tasks:
    - name: Add Kubernetes yum repository
      become: yes
      when: ansible_os_family == "RedHat"
      yum_repository:
        name: Kubernetes
        description: Kubernetes Repository
        baseurl: http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
        enabled: yes
        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: Install kubeadm (RHEL/CentOS)
      become: yes
      when: ansible_os_family == "RedHat"
      yum:
        name: kubeadm
        state: present

关于kubernetes - Ansible yum disable_excludes 给出错误,如何为特定的 shell 命令正确使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62805006/

相关文章:

mongodb - 替代glusterfs + mongodb进行大型文件存储还是小型文件存储(在kubernetes上)?

nginx - 为 E2E 测试配置 nginx-ingress

python - 在运行 centos/whm 的服务器中更新 python?

linux - Elastic Beanstalk 上的 PostgreSQL (Amazon Linux 2)

security - 非组织成员可以利用 Google 客户端 ID 和客户端 secret 凭据吗?

kubernetes - "Failed to update endpoint default/myservice: Operation cannot be fulfilled on endpoints "我的服务":

ansible - 当 ansible_facts 中的特定项目不可用时(例如磁盘 sdb 不可用),如何编写自定义消息

docker - 如何在 Ansible 中使用 docker_image 和 docker_container 模块

ansible - 检查数组是否已定义并且在ansible中不为空

makefile - Centos7安装 'yum'