diff --git a/kube8s-containerd-playbooks/playbook-kubernetes-init.yml b/kube8s-containerd-playbooks/playbook-kubernetes-init.yml new file mode 100644 index 0000000000000000000000000000000000000000..2639aba4fc1a4fcd87beb829394274afa9e1913d --- /dev/null +++ b/kube8s-containerd-playbooks/playbook-kubernetes-init.yml @@ -0,0 +1,73 @@ +- hosts: master_nodes + become: true + become_user: root + tasks: + + - name: Stop service containerd + ansible.builtin.systemd: + name: containerd + state: stopped + + - name: Stop service kubelet + ansible.builtin.systemd: + name: kubelet + state: stopped + + - name: Check for /etc/containerd/config.toml + register: toml_file + stat: path=/etc/containerd/config.toml + + - name: Move toml file + command: mv /etc/containerd/config.toml /etc/containerd/config.toml.dist + when: toml_file.stat.exists + + - name: Create toml file + shell: | + containerd config default | tee /etc/containerd/config.toml + + - name: Change SystemdCgroup to true + shell: | + sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml + + - name: Start service containerd + ansible.builtin.systemd: + name: containerd + state: started + + - name: Start service kubelet + ansible.builtin.systemd: + name: kubelet + state: started + + - name: Initialize the Kubernetes cluster using kubeadm + command: kubeadm init --apiserver-advertise-address=192.168.56.10 --pod-network-cidr=10.244.0.0/16 --cri-socket=unix:///run/containerd/containerd.sock --node-name=master-node + + - name: Setup kubeconfig for vagrant user + command: "{{ item }}" + with_items: + - mkdir -p /home/vagrant/.kube + - cp -i /etc/kubernetes/admin.conf /home/vagrant/.kube/config + - chown -R vagrant:vagrant /home/vagrant/.kube + - chmod -R 775 /home/vagrant/.kube + - chmod 600 /home/vagrant/.kube/config + + - name: Install flannel pod network + become: true + become_user: vagrant + # for vagrant we have to set --iface in the origin manifest yaml + command: kubectl apply -f https://gitlab.phaidra.org/petert4/kubernetes_on-prim/-/raw/inital/manifests/kube-flannel_vagrant.yaml + # command: kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml + + - name: Generate join command + become: true + become_user: root + command: kubeadm token create --print-join-command + register: join_command + + - name: Copy join command to local file + ansible.builtin.copy: content="{{ join_command.stdout_lines[0] }}" dest="/tmp/join-command" + + - name: fetch file from remote host to local host + ansible.builtin.fetch: + src: /tmp/join-command + dest: ./tmp/