- name: Initialize the Kubernetes cluster using kubeadm command: kubeadm init --apiserver-advertise-address="{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}" - name: Creates .kube directory file: path: /home/{{ ansible_user_id }}/.kube state: directory - name: Copy files needed for kubectl copy: remote_src: yes src: /etc/kubernetes/admin.conf dest: /home/{{ ansible_user_id }}/.kube/config owner: "{{ ansible_user_id }}" group: users - name: Set up weave network shell: export KUBECONFIG=/etc/kubernetes/admin.conf && export kubever=$(kubectl version | base64 | tr -d '\n') && kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever" register: weavenet_out - name: Generate join command command: kubeadm token create --print-join-command register: kubernetes_join_command_result - name: Set the kubeadm join command globally. set_fact: kubernetes_join_command: > {{ kubernetes_join_command_result.stdout }} when: kubernetes_join_command_result.stdout is defined delegate_to: "{{ item }}" delegate_facts: true with_items: "{{ groups['all'] }}"