94 lines
2.2 KiB
YAML
94 lines
2.2 KiB
YAML
---
|
|
- name: Copy K3s service file
|
|
register: k3s_service
|
|
template:
|
|
src: "k3s.service.j2"
|
|
dest: "{{ systemd_dir }}/k3s.service"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
|
|
- name: Copy Traefik customization
|
|
ansible.builtin.copy:
|
|
src: traefik.yaml
|
|
dest: /var/lib/rancher/k3s/server/manifests/traefik-config.yaml
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
|
|
- name: Render control plain config
|
|
ansible.builtin.template:
|
|
src: cp-config.yaml.j2
|
|
dest: /etc/rancher/k3s/config.yaml
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
|
|
- name: Enable and check K3s service
|
|
systemd:
|
|
name: k3s
|
|
daemon_reload: true
|
|
state: restarted
|
|
enabled: true
|
|
|
|
- name: Wait for node-token
|
|
wait_for:
|
|
path: "{{ k3s_server_location }}/server/node-token"
|
|
|
|
- name: Register node-token file access mode
|
|
stat:
|
|
path: "{{ k3s_server_location }}/server/node-token"
|
|
register: p
|
|
|
|
- name: Change file access node-token
|
|
file:
|
|
path: "{{ k3s_server_location }}/server/node-token"
|
|
mode: "g+rx,o+rx"
|
|
|
|
- name: Read node-token from control-plane
|
|
slurp:
|
|
path: "{{ k3s_server_location }}/server/node-token"
|
|
register: node_token
|
|
|
|
- name: Store control-plane node-token
|
|
set_fact:
|
|
token: "{{ node_token.content | b64decode | regex_replace('\n', '') }}"
|
|
|
|
- name: Restore node-token file access
|
|
file:
|
|
path: "{{ k3s_server_location }}/server/node-token"
|
|
mode: "{{ p.stat.mode }}"
|
|
|
|
- name: Create directory .kube
|
|
file:
|
|
path: ~{{ ansible_user }}/.kube
|
|
state: directory
|
|
owner: "{{ ansible_user }}"
|
|
mode: "u=rwx,g=rx,o="
|
|
|
|
- name: Copy config file to user home directory
|
|
copy:
|
|
src: /etc/rancher/k3s/k3s.yaml
|
|
dest: ~{{ ansible_user }}/.kube/config
|
|
remote_src: yes
|
|
owner: "{{ ansible_user }}"
|
|
mode: "u=rw,g=,o="
|
|
|
|
- name: Replace https://localhost:6443 by https://master-ip:6443
|
|
command: >-
|
|
k3s kubectl config set-cluster default
|
|
--server=https://{{ master_ip }}:6443
|
|
--kubeconfig ~{{ ansible_user }}/.kube/config
|
|
changed_when: true
|
|
|
|
- name: Create kubectl symlink
|
|
file:
|
|
src: /usr/local/bin/k3s
|
|
dest: /usr/local/bin/kubectl
|
|
state: link
|
|
|
|
- name: Create crictl symlink
|
|
file:
|
|
src: /usr/local/bin/k3s
|
|
dest: /usr/local/bin/crictl
|
|
state: link
|