Kubernetes 使用ansible将.kube配置文件从主节点复制到所有节点

Kubernetes 使用ansible将.kube配置文件从主节点复制到所有节点,kubernetes,ansible,Kubernetes,Ansible,我想使用ansible synchronize将kube管理配置文件从Kubernetes主主机复制到节点,但由于缺少python解释器而失败,但我已经在所有机器上安装了docker,没有任何问题 看到我的任务了吗 -名称:管理配置文件到节点 环境: ANSIBLE_PYTHON_解释器:python3 使同步: src:/home/{{ansible\u ssh\u user}}/.kube/config dest:/home/{{ansible\u ssh\u user} 委托给:“{{it

我想使用ansible synchronize将kube管理配置文件从Kubernetes主主机复制到节点,但由于缺少python解释器而失败,但我已经在所有机器上安装了docker,没有任何问题

看到我的任务了吗

-名称:管理配置文件到节点
环境:
ANSIBLE_PYTHON_解释器:python3
使同步:
src:/home/{{ansible\u ssh\u user}}/.kube/config
dest:/home/{{ansible\u ssh\u user}
委托给:“{{item}}”
循环:“{groups.node}}”

只有在源服务器(在您的情况下为kube master)或kube节点中启用rsync时,才能使用同步模块

方法1:要从主服务器推送,需要在主服务器中启用rsync 同步默认情况下使用推送模式

- hosts: nodes
  tasks:
    - name: Transfer file from master to nodes
      synchronize:
        src: /etc/kubernetes/admin.conf
        dest: $HOME/.kube/config
      delegate_to: "{{ master }}"
方法2:使用获取和复制模块
希望这有帮助

错误消息是什么?第二种方法工作正常,第一种方法Ansible出错,无法找到sshpass文件。是的,正如我所提到的,您需要在主机中启用rsync或在主机和节点之间配置ssh连接(这很繁琐,至少在您的情况下不是必需的)。如果有效,请接受我的回答。
 - hosts: all
   tasks:
     - name: Fetch the file from the master to ansible
       run_once: yes
       fetch: src=/etc/kubernetes/admin.conf dest=temp/ flat=yes
       when: "{{ ansible_hostname == 'master' }}"
     - name: Copy the file from the ansible to nodes
       copy: src=temp/admin.conf dest=$HOME/.kube/config
       when: "{{ ansible_hostname != 'master' }}"