mirror of
https://github.com/jcwimer/kubernetes-ansible
synced 2026-03-24 16:44:44 +00:00
72 lines
2.2 KiB
YAML
72 lines
2.2 KiB
YAML
---
|
|
- name: Initialize kubernetes
|
|
command: kubeadm init --apiserver-advertise-address={{ join_addr }} --pod-network-cidr=10.244.0.0/16
|
|
register: out
|
|
failed_when: "out.rc != 0 and '/etc/kubernetes/manifests/kube-apiserver.yaml already exists' not in out.stderr"
|
|
changed_when: "out.rc == 0 and '/etc/kubernetes/manifests/kube-apiserver.yaml already exists' not in out.stderr"
|
|
become: true
|
|
|
|
- name: Get join token
|
|
command: >
|
|
bash -c 'kubeadm token list | grep -v TOKEN | cut -d " " -f 1'
|
|
become: true
|
|
register: join_token_reg
|
|
changed_when: join_token_reg.rc == 0
|
|
|
|
- name: Set join facts
|
|
set_fact:
|
|
join_token: "{{ join_token_reg }}"
|
|
init_ip: "{{ join_addr }}"
|
|
|
|
- name: Copy admin file
|
|
shell: >
|
|
cp /etc/kubernetes/admin.conf {{ ansible_env.HOME }}/admin.conf && \
|
|
chown {{ ansible_user_id }}:{{ ansible_user_id }} {{ ansible_env.HOME }}/admin.conf
|
|
become: true
|
|
|
|
- name: Set KUBECONFIG
|
|
lineinfile:
|
|
path: "{{ ansible_env.HOME }}/.bashrc"
|
|
regexp: '^export\ KUBECONFIG='
|
|
line: 'export KUBECONFIG={{ ansible_env.HOME }}/admin.conf'
|
|
|
|
- name: Copy pod network install script
|
|
template:
|
|
src: ../templates/install-pod-network.sh.j2
|
|
dest: "{{ ansible_env.HOME }}/install-pod-network.sh"
|
|
|
|
|
|
- name: Install Pod Network
|
|
shell: >
|
|
bash {{ ansible_env.HOME }}/install-pod-network.sh
|
|
environment:
|
|
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
|
|
|
|
- name: Install Kubernetes Dashboard
|
|
shell: kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
|
|
environment:
|
|
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
|
|
ignore_errors: true
|
|
|
|
- name: Copy Traefik ds yml
|
|
template:
|
|
src: ../templates/traefik-ds.yml.j2
|
|
dest: "{{ ansible_env.HOME }}/traefik-ds.yml"
|
|
|
|
- name: Install Traefik Ingress Controller
|
|
shell: >
|
|
kubectl apply -f {{ ansible_env.HOME }}/traefik-ds.yml
|
|
environment:
|
|
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
|
|
|
|
- name: Copy Traefik rbac yaml
|
|
template:
|
|
src: ../templates/traefik-rbac.yaml.j2
|
|
dest: "{{ ansible_env.HOME }}/traefik-rbac.yaml"
|
|
|
|
- name: Install Traefik RBAC
|
|
shell: >
|
|
kubectl apply -f {{ ansible_env.HOME }}/traefik-rbac.yaml
|
|
environment:
|
|
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
|