summaryrefslogtreecommitdiff
path: root/roles/k8s/main.yml
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2020-01-19 03:05:16 -0500
committerThedro Neely <thedroneely@gmail.com>2020-01-19 03:05:16 -0500
commitb74001bbf19c83edff51e01f1ba4176a8a37297b (patch)
tree7d067456d4aec8dd28b54420c3139bb397875e30 /roles/k8s/main.yml
parent6c939e8837b73904ffd1208ae532d7d056cd06bb (diff)
downloadplaybooks-b74001bbf19c83edff51e01f1ba4176a8a37297b.tar.gz
playbooks-b74001bbf19c83edff51e01f1ba4176a8a37297b.tar.bz2
playbooks-b74001bbf19c83edff51e01f1ba4176a8a37297b.zip
roles/k8s/main: Wait for docker
Install kubelet environment file on nodes and master
Diffstat (limited to 'roles/k8s/main.yml')
-rw-r--r--roles/k8s/main.yml54
1 files changed, 47 insertions, 7 deletions
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 }}"