Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions kubernetes_ubuntu1804/hosts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[masters]
master ansible_host=10.10.10.10 ansible_user=sammy

[workers]
worker1 ansible_host=10.10.10.10 ansible_user=sammy

[all:vars]
ansible_python_interpreter=/usr/bin/python3
19 changes: 19 additions & 0 deletions kubernetes_ubuntu1804/initial.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
- hosts: all
become: yes
vars_files:
- vars/default.yml

tasks:
- name: create the 'ubuntu' user
user: name={{ create_user }} append=yes state=present createhome=yes shell=/bin/bash

- name: allow 'ubuntu' to have passwordless sudo
lineinfile:
dest: /etc/sudoers
line: '{{ create_user }} ALL=(ALL) NOPASSWD: ALL'
validate: 'visudo -cf %s'

- name: set up authorized keys for the ubuntu user
authorized_key: user={{ create_user }} key="{{item}}"
with_file:
- ~/.ssh/id_rsa_{{ inventory_hostname }}
44 changes: 44 additions & 0 deletions kubernetes_ubuntu1804/kube-dependencies.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
- hosts: all
become: yes
tasks:
- name: install Docker
apt:
name: docker.io
state: present
update_cache: true

- name: install APT Transport HTTPS
apt:
name: apt-transport-https
state: present

- name: add Kubernetes apt-key
apt_key:
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
state: present

- name: add Kubernetes' APT repository
apt_repository:
repo: deb http://apt.kubernetes.io/ kubernetes-xenial main
state: present
filename: 'kubernetes'

- name: install kubelet
apt:
name: kubelet=1.14.0-00
state: present
update_cache: true

- name: install kubeadm
apt:
name: kubeadm=1.14.0-00
state: present

- hosts: master
become: yes
tasks:
- name: install kubectl
apt:
name: kubectl=1.14.0-00
state: present
force: yes
33 changes: 33 additions & 0 deletions kubernetes_ubuntu1804/master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
- hosts: master
become: yes
vars_files:
- vars/default.yml
tasks:
- name: initialize the cluster
shell: kubeadm init --pod-network-cidr={{ pod_network_cidr }} >> cluster_initialized.txt
args:
chdir: $HOME
creates: cluster_initialized.txt

- name: create .kube directory
become: yes
become_user: "{{ create_user }}"
file:
path: $HOME/.kube
state: directory
mode: 0755

- name: copy admin.conf to user's kube config
copy:
src: /etc/kubernetes/admin.conf
dest: /home/{{ create_user }}/.kube/config
remote_src: yes
owner: "{{ create_user }}"

- name: install Pod network
become: yes
become_user: "{{ create_user }}"
shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml >> pod_network_setup.txt
args:
chdir: $HOME
creates: pod_network_setup.txt
3 changes: 3 additions & 0 deletions kubernetes_ubuntu1804/vars/default.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
--
pod_network_cidr: 10.244.0.0/25
create_user: sammy
22 changes: 22 additions & 0 deletions kubernetes_ubuntu1804/workers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
- hosts: master
become: yes
gather_facts: false
tasks:
- name: get join command
shell: kubeadm token create --print-join-command
register: join_command_raw

- name: set join command
set_fact:
join_command: "{{ join_command_raw.stdout_lines[0] }}"


- hosts: workers
become: yes
tasks:
- name: join cluster
shell: "{{ hostvars['master'].join_command }} >> node_joined.txt"
args:
chdir: $HOME
creates: node_joined.txt