我正在使用 ansible 设置 kubernetes 设置。为了设置大师,我编写了一个剧本,如下所示。
- hosts: master
become: yes
tasks:
- name: initialize the cluster
shell: kubeadm init --pod-network-cidr=10.244.0.0/16
- name: create .kube directory
become: yes
become_user: ubuntu
file:
path: $HOME/.kube
state: directory
mode: 0755
- name: copy admin.conf to user's kube config
copy:
src: /etc/kubernetes/admin.conf
dest: /home/ubuntu/.kube/config
remote_src: yes
owner: ubuntu
- name: install Pod network
become: yes
become_user: ubuntu
shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml >> pod_network_setup.txt
args:
chdir: $HOME
creates: pod_network_setup.txt
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行剧本时,它不会等待初始化完成,即命令“kubeadm init”返回并一个接一个地运行每个任务。由于初始化需要时间,并且完成后只创建文件“/etc/kubernetes/admin.conf”。由于 ansible 不等待它完成,因此在任务 3 中存在错误,即找不到“/etc/kubernetes/admin.conf”。 …