From a9de353d7b2a80c03910d25a015ec75dd5a081ba Mon Sep 17 00:00:00 2001
From: Peter Toth <peter.toth@univie.ac.at>
Date: Mon, 21 Nov 2022 14:06:13 +0000
Subject: [PATCH] Upload New File

---
 .../playbook-kubernetes-init.yml              | 73 +++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 kube8s-containerd-playbooks/playbook-kubernetes-init.yml

diff --git a/kube8s-containerd-playbooks/playbook-kubernetes-init.yml b/kube8s-containerd-playbooks/playbook-kubernetes-init.yml
new file mode 100644
index 0000000..2639aba
--- /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/
-- 
GitLab