我需要在 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/