147 lines
3.3 KiB
YAML
147 lines
3.3 KiB
YAML
---
|
|
|
|
- name: initialize Kubernetes cluster
|
|
block:
|
|
- name: Intilizing Kubernetes Cluster
|
|
#command: kubeadm init --pod-network-cidr "{{ KubernetesPodSubnet }}" --apiserver-advertise-address "{{ ansible_default_ipv4.address }}" --ignore-preflight-errors Mem --cri-socket=unix:///var/run/crio/crio.sock
|
|
command: kubeadm init --pod-network-cidr "{{ KubernetesPodSubnet }}" --service-cidr "{{ KubernetesServiceSubnet }}" --apiserver-advertise-address "0.0.0.0" --ignore-preflight-errors Mem #--cri-socket=unix:///var/run/containerd/containerd.sock
|
|
when:
|
|
- not KubernetesInitialized.stat.exists
|
|
|
|
rescue:
|
|
- name: Reset Kubeadmn
|
|
ansible.builtin.shell: "{{ item }}"
|
|
#register: kube_reset
|
|
failed_when: item.rc != 0
|
|
with_items:
|
|
- kubeadm reset --force
|
|
- rm -Rf /etc/cni/net.d
|
|
|
|
|
|
- name: Check if kubernetes has been Initialized
|
|
stat:
|
|
path: /etc/kubernetes/admin.conf
|
|
register: KubernetesInitialized
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: fetch kubernetes health
|
|
ansible.builtin.shell: " wget http://localhost:10248/healthz -q -O - || true"
|
|
register: KubernetesHealth
|
|
changed_when: true == false
|
|
when: KubernetesInitialized.stat.exists
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: set kubeernetes health fact
|
|
set_fact:
|
|
kube_health: "{{ KubernetesHealth.stdout | default(false) == 'ok' }}"
|
|
changed_when: true == false
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: Create directory for kube config.
|
|
become_method: sudo
|
|
become: yes
|
|
file:
|
|
#path: /home/{{ ansible_user }}/.kube
|
|
path: ~/.kube
|
|
state: directory
|
|
owner: "{{ ansible_user }}"
|
|
group: "{{ ansible_user }}"
|
|
mode: 0700
|
|
# when: Kubernetes_Master
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: Copy Kube config for local user
|
|
copy:
|
|
remote_src: yes
|
|
src: /etc/kubernetes/admin.conf
|
|
#dest: /home/{{ ansible_user }}/.kube/config
|
|
dest: ~/.kube/config
|
|
owner: "{{ ansible_user }}"
|
|
group: "{{ ansible_user }}"
|
|
mode: 0700
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: Add calico networking.
|
|
template:
|
|
src: "calico.yaml.j2"
|
|
dest: /etc/kubernetes/manifests/calico.yaml
|
|
owner: root
|
|
mode: 0744
|
|
|
|
|
|
- name: apply calico manifest
|
|
command: kubectl apply -f /etc/kubernetes/manifests/calico.yaml
|
|
tags:
|
|
- install
|
|
- manifest
|
|
|
|
|
|
- name: create remote workdir
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: 0700
|
|
with_items:
|
|
- /tmp/ansible/
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: Create local workdir
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: 0700
|
|
delegate_to: localhost
|
|
connection: local
|
|
with_items:
|
|
- /tmp/ansible/
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: get join command
|
|
ansible.builtin.shell: kubeadm token create --print-join-command > /tmp/ansible/join_kubernetes.sh
|
|
changed_when: true == false
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: download join command
|
|
fetch:
|
|
src: /tmp/ansible/join_kubernetes.sh
|
|
dest: /tmp/ansible/
|
|
flat: yes
|
|
changed_when: true == false
|
|
tags:
|
|
- always
|
|
|
|
|
|
# always:
|
|
|
|
# - name: remove remote workdir
|
|
# file:
|
|
# path: "{{ item }}"
|
|
# state: absent
|
|
# with_items:
|
|
# - /tmp/ansible/join_kubernetes.sh
|
|
# changed_when: true == false
|
|
|
|
# when:
|
|
# #- Kubernetes_Prime
|
|
# #- KubernetesInit.stat.exists
|
|
# - kubernetes_config.cluster.prime.name == inventory_hostname
|
|
|
|
|
|
|