Ansible:kubernetes使用vagrant安装,错误:“;服务器证书验证失败。CAfile:/etc/ssl/certs/ca certificates.crt";

Ansible:kubernetes使用vagrant安装,错误:“;服务器证书验证失败。CAfile:/etc/ssl/certs/ca certificates.crt";,kubernetes,ansible,vagrant,virtualbox,Kubernetes,Ansible,Vagrant,Virtualbox,正在尝试使用ansible在virtualbox上安装kubernetes: 在master-playbook.yml中 - name: Install comodo cert copy: src=BCPSG.pem dest=/etc/ssl/certs/ca-certificates.crt - name: Update cert index shell: /usr/sbin/update-ca-certificates - name: Adding apt

正在尝试使用ansible在virtualbox上安装kubernetes:

在master-playbook.yml中

  - name: Install comodo cert
    copy: src=BCPSG.pem dest=/etc/ssl/certs/ca-certificates.crt

  - name: Update cert index
    shell: /usr/sbin/update-ca-certificates

  - name: Adding apt repository for Kubernetes
    apt_repository:
      repo: deb https://packages.cloud.google.com/apt/dists/  kubernetes-xenial main
      state: present
      filename: kubernetes.list
      validate_certs: False
现在,Vagrantfile调用playbook:

config.vm.define "k8s-master" do |master|
    master.vm.box = IMAGE_NAME
    master.vm.network "private_network", ip: "192.168.50.10"
    master.vm.hostname = "k8s-master"
    master.vm.provision "ansible" do |ansible|
    ansible.playbook = "kubernetes-setup/master-playbook.yml"
    end
end
但我得到了一个错误:

“模块\标准输出”:“回溯(最近一次调用):\r\n文件 \“/home/vagrant/.ansible/tmp/ansible-tmp-1555907987.70663-229510485563848/AnsiballZ_apt_repository.py\”, 第113行,在\r\n\u ansiballz\u main()文件中\r\n \“/home/vagrant/.ansible/tmp/ansible-tmp-1555907987.70663-229510485563848/AnsiballZ_apt_repository.py\”, 第105行,在_ansiballz_main\r\n invoke_模块(zipped_mod, 临时路径,ANSIBALLZ参数)\r\n文件 \“/home/vagrant/.ansible/tmp/ansible-tmp-1555907987.70663-229510485563848/AnsiballZ_apt_repository.py\”, 第48行,在invoke_module\r\n imp.load_module(“main”,mod, 模块,MOD\u DESC)\r\n文件 \“/tmp/ansible\u apt\u repository\u payload\u GXYAmU/main.py\”,第550行, 在\r\n文件中 \“/tmp/ansible\u apt\u repository\u payload\u GXYAmU/main.py\”,第542行, 在主\r\n文件\“/usr/lib/python2.7/dist packages/apt/cache.py\”中, 第487行,在更新中\r\n FetchFailedException(e)\r\napt.cache.FetchFailedException:W:该 存储库' kubernetes xenial Release'没有发布文件,W:来自的数据 这样的存储库无法进行身份验证,因此可能存在 使用危险,W:请参阅apt secure(8)手册页以了解存储库的创建 和用户配置详细信息,E:无法获取 服务器证书验证失败。CAfile: /etc/ssl/certs/ca-certificates.crt文件:无,E:一些索引文件 未能下载。它们已被忽略,或已使用旧的 相反。\r\n,“msg”:“模块故障\n请参阅stdout/stderr以了解确切信息 错误“,”rc“:1}

如中所述,必须首先使用
apt key
或ansible模块添加GPG签名密钥

同样,该页上列出的正确apt回购协议是
debhttps://apt.kubernetes.io/ kubernetes xenial main


是的,虽然您使用第一个命令完全破坏了CA信任链,但我怀疑您在接下来的步骤中可能会遇到不受信任的包签名,因为您没有教apt使用kubernetes包签名密钥。

运行下面的命令,然后重试:


#git config--global http.sslverify false

--似乎与上述类似。此外,在问题“copy:src=BCPSG.pem dest=/etc/ssl/certs/ca certificates.crt”的评论中还有另一个链接,这几乎肯定是一个绝对糟糕的想法,因为该文件(顾名思义)是许多证书的串联;正确的方法是将任何新证书下载到
/usr/local/share/ca证书中,然后调用
TASK [Adding apt repository for Kubernetes] ************************************
fatal: [k8s-master]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 127.0.0.1 closed.\r\n",