|
@ -0,0 +1,82 @@ |
|
|
|
|
|
- hosts: k8s |
|
|
|
|
|
- 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={{ kube_version }} |
|
|
|
|
|
state: present |
|
|
|
|
|
update_cache: true |
|
|
|
|
|
|
|
|
|
|
|
- name: install kubeadm |
|
|
|
|
|
apt: |
|
|
|
|
|
name: kubeadm={{ kube_version }} |
|
|
|
|
|
state: present |
|
|
|
|
|
|
|
|
|
|
|
- hosts: k8s-master |
|
|
|
|
|
become: yes |
|
|
|
|
|
tasks: |
|
|
|
|
|
- name: install kubectl |
|
|
|
|
|
apt: |
|
|
|
|
|
name: kubectl={{ kube_version }} |
|
|
|
|
|
state: present |
|
|
|
|
|
force: yes |
|
|
|
|
|
|
|
|
|
|
|
- name: initialize the cluster |
|
|
|
|
|
shell: kubeadm init --pod-network-cidr=10.244.0.0/16 >> cluster_initialized.txt |
|
|
|
|
|
args: |
|
|
|
|
|
chdir: $HOME |
|
|
|
|
|
creates: cluster_initialized.txt |
|
|
|
|
|
|
|
|
|
|
|
- name: create .kube directory |
|
|
|
|
|
become: yes |
|
|
|
|
|
become_user: ubuntu |
|
|
|
|
|
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/ubuntu/.kube/config |
|
|
|
|
|
remote_src: yes |
|
|
|
|
|
owner: ubuntu |
|
|
|
|
|
|
|
|
|
|
|
- name: install Pod network |
|
|
|
|
|
become: yes |
|
|
|
|
|
become_user: ubuntu |
|
|
|
|
|
shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml >> pod_network_setup.txt |
|
|
|
|
|
args: |
|
|
|
|
|
chdir: $HOME |
|
|
|
|
|
creates: pod_network_setup.txt |
|
|
|
|
|
|
|
|
|
|
|
- hosts: k8s-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: k8s-workers |
|
|
|
|
|
become: yes |
|
|
|
|
|
tasks: |
|
|
|
|
|
- name: join cluster |
|
|
|
|
|
shell: "{{ hostvars['master'].join_command }} >> node_joined.txt" |
|
|
|
|
|
args: |
|
|
|
|
|
chdir: $HOME |
|
|
|
|
|
creates: node_joined.txt |