4 - name: Install packages that allow apt to be used over HTTPS
\r
6 name: "{{ packages }}"
\r
10 - apt-transport-https
\r
14 - software-properties-common
\r
16 - name: Add the apt signing key for Docker
\r
18 url: https://download.docker.com/linux/ubuntu/gpg
\r
21 - name: Add the apt repository for the stable Docker version
\r
23 repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
\r
26 - name: Install Docker and its dependencies
\r
28 name: "{{ packages }}"
\r
37 - name: Ensure user group exists
\r
39 name: "{{ ansible_user }}"
\r
41 - name: Add user to the docker group
\r
43 name: "{{ ansible_user }}"
\r
44 groups: docker,{{ ansible_user }}
\r
47 - name: Remove swapfile from /etc/fstab
\r
56 - name: Disable swap
\r
58 when: ansible_swaptotal_mb > 0
\r
60 - name: Add the apt signing key for Kubernetes
\r
62 url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
\r
65 - name: Add the apt repository for Kubernetes
\r
67 repo: deb https://apt.kubernetes.io/ kubernetes-xenial main
\r
69 filename: kubernetes.list
\r
71 - name: Install Kubernetes binaries
\r
73 name: "{{ packages }}"
\r
77 - kubelet=1.19.16-00
\r
78 - kubeadm=1.19.16-00
\r
79 - kubectl=1.19.16-00
\r
81 - name: Restart kubelet
\r
87 - name: Making systemd as Cgroup Driver
\r
90 dest: /etc/docker/daemon.json
\r
92 - name: Restaring Docker...
\r
97 - name: update sysctl param
\r
100 dest: /etc/sysctl.d/k8s.conf
\r
104 - name: System reload
\r
105 shell: sysctl --system
\r
107 - name: Initialize the Kubernetes cluster
\r
109 command: kubeadm init --pod-network-cidr=10.244.0.0/16
\r
111 - name: Setup kubeconfig
\r
112 command: "{{ item }}"
\r
114 - mkdir -p "$HOME/.kube"
\r
115 - sudo cp /etc/kubernetes/admin.conf "$HOME/.kube/config"
\r
116 - sudo chown "{{ ansible_user }}:{{ ansible_user }}" "$HOME/.kube/config"
\r
118 - name: Deploy Flannel
\r
120 command: kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
\r
122 - name: Remove taints from master node
\r
124 command: kubectl taint nodes --all node-role.kubernetes.io/master-
\r
126 - name: Create Tiller service account
\r
128 command: kubectl -n kube-system create serviceaccount tiller
\r
130 - name: Setup Tiller ClusterBinding
\r
132 command: kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
\r