From b74001bbf19c83edff51e01f1ba4176a8a37297b Mon Sep 17 00:00:00 2001 From: Thedro Neely Date: Sun, 19 Jan 2020 03:05:16 -0500 Subject: roles/k8s/main: Wait for docker Install kubelet environment file on nodes and master --- roles/k8s/main.yml | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 7 deletions(-) (limited to 'roles/k8s/main.yml') diff --git a/roles/k8s/main.yml b/roles/k8s/main.yml index 0bd4e7e..ca002ca 100644 --- a/roles/k8s/main.yml +++ b/roles/k8s/main.yml @@ -1,15 +1,20 @@ --- # Target: centos8 -- hosts: k8s +- name: Install Kubernetes Cluster + hosts: k8s_master, k8s_node + vars: username: k8s home_directory: "/home/{{ username }}" k8s_version: 1.17.0 + tasks: + - name: Ensuring group exists group: name: "{{ username }}" state: present + - name: Creating user and making home directory user: system: yes @@ -17,10 +22,12 @@ name: "{{ username }}" groups: "{{ username }}" home: "{{ home_directory }}" + - name: Adding Docker repository get_url: url: https://download.docker.com/linux/centos/docker-ce.repo dest: /etc/yum.repos.d/ + - name: Installing Docker yum: state: present @@ -32,11 +39,13 @@ - sudo - tc - git + - name: Creating docker directory file: path: /etc/docker state: directory mode: '0755' + - name: Copying Docker daemon configuration copy: src: daemon.json @@ -45,11 +54,13 @@ group: root mode: '0644' register: dockerDaemonConfig + - name: Creating containerd override directory file: path: /etc/systemd/system/containerd.service.d/ state: directory mode: '0755' + - name: Copying containerd override configuration copy: src: containerd-override.conf @@ -57,19 +68,28 @@ owner: root group: root mode: '0644' + - name: Reloading systemd daemon systemd: daemon_reload: yes + - name: Ensuring Docker is enabled and started systemd: name: docker state: started enabled: yes + + - name: Wait for Docker + wait_for: + path: /var/run/docker.pid + state: present + - name: Restarting Docker due to daemon config change systemd: name: docker state: restarted when: dockerDaemonConfig.changed + - name: Adding Kubernetes repository yum_repository: name: kubernetes @@ -78,6 +98,7 @@ baseurl: https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 gpgkey: https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg gpgcheck: yes + - name: Installing kubelet and kubeadm on worker nodes yum: state: present @@ -85,27 +106,33 @@ name: - kubelet-{{ k8s_version }}-0 - kubeadm-{{ k8s_version }}-0 + + - name: Copying kubelet environment file + copy: + src: kubelet + dest: /etc/sysconfig/kubelet + mode: '0644' + - name: Enabling kubelet service systemd: name: kubelet enabled: yes - hosts: k8s_master + vars: username: k8s home_directory: "/home/{{ username }}" k8s_version: 1.17.0 + tasks: + - name: Installing kubectl on master node yum: state: present name: - kubectl-{{ k8s_version }}-0 - - name: Copying kubelet environment file - copy: - src: kubelet - dest: /etc/sysconfig/kubelet - mode: '0644' + - name: Initialize Kubernetes cluster shell: > kubeadm init --ignore-preflight-errors all --v=5 > k8s_cluster_initialization.log && @@ -115,6 +142,7 @@ creates: .k8s_cluster_initialized register: output - debug: var=output + - name: Creating kube folder file: path: "{{ item }}" @@ -125,6 +153,7 @@ with_items: - "{{ home_directory }}/.kube" - "{{ home_directory }}/.kube/.check" + - name: Copying Kubernetes config file to home folder copy: src: /etc/kubernetes/admin.conf @@ -133,6 +162,7 @@ group: "{{ username }}" mode: '0644' remote_src: yes + - name: Copying Kubernetes dashboard user config copy: src: k8s-dashboard-admin.yaml @@ -140,6 +170,7 @@ owner: "{{ username }}" group: "{{ username }}" mode: '0644' + - name: Copying Kubernetes dashboard bind config copy: src: k8s-dashboard-binding.yaml @@ -147,7 +178,9 @@ owner: "{{ username }}" group: "{{ username }}" mode: '0644' + - block: + - name: Bringing up pod network shell: > kubectl apply -f @@ -156,6 +189,7 @@ args: chdir: "{{ home_directory }}" creates: .kube/.check/.k8s_network_installed + - name: Installing Kubernetes Dashboard shell: > kubectl apply -f @@ -164,6 +198,7 @@ args: chdir: "{{ home_directory }}" creates: .kube/.check/.k8s_dashboard_installed + - name: Creating Kubernetes Dashboard administrator shell: > kubectl apply -f @@ -172,6 +207,7 @@ args: chdir: "{{ home_directory }}" creates: .kube/.check/.k8s_dashboard_admin_installed + - name: Creating Kubernetes Dashboard cluster binding shell: > kubectl apply -f @@ -180,11 +216,13 @@ args: chdir: "{{ home_directory }}" creates: .kube/.check/.k8s_dashboard_binding_installed + - name: Cloning Kubernetes metrics server git: repo: https://github.com/kubernetes-sigs/metrics-server dest: "{{ home_directory }}/.kube/metrics-server" version: 4f6ef77ce0cb128663c86708566b3e43cdc47ac4 + - name: Deploying the metrics server shell: > kubectl create -f @@ -193,11 +231,13 @@ args: chdir: "{{ home_directory }}" creates: .kube/.check/.k8s_metrics_server_installed + - name: Printing Kubernetes Dashboard token shell: > kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}') register: token - debug: var=token + become: true - become_user: "{{ username }}" \ No newline at end of file + become_user: "{{ username }}" -- cgit v1.2.3