2025-11-07 09:33:38 +01:00
|
|
|
---
|
|
|
|
|
- name: Check if K3s is already installed
|
|
|
|
|
stat:
|
|
|
|
|
path: /usr/local/bin/k3s
|
|
|
|
|
register: k3s_binary
|
|
|
|
|
|
2025-12-09 11:55:19 +01:00
|
|
|
- name: Load K3s token from environment
|
2025-11-07 09:33:38 +01:00
|
|
|
set_fact:
|
2025-12-09 11:55:19 +01:00
|
|
|
k3s_token: "{{ lookup('env', 'K3S_TOKEN') }}"
|
|
|
|
|
|
|
|
|
|
- name: Wait for first server API
|
|
|
|
|
wait_for:
|
|
|
|
|
host: "{{ k3s_server_1_ip }}"
|
|
|
|
|
port: 6443
|
|
|
|
|
delay: 60
|
|
|
|
|
timeout: 900
|
2025-11-07 09:33:38 +01:00
|
|
|
|
|
|
|
|
- name: Install K3s as server (witness mode)
|
2025-11-07 10:40:53 +01:00
|
|
|
shell: >
|
|
|
|
|
curl -sfL {{ k3s_install_url }} |
|
|
|
|
|
INSTALL_K3S_VERSION="{{ k3s_version }}"
|
|
|
|
|
sh -s - server
|
|
|
|
|
--server https://{{ k3s_server_1_ip }}:6443
|
|
|
|
|
--token {{ k3s_token }}
|
|
|
|
|
--disable-apiserver
|
|
|
|
|
--disable-controller-manager
|
|
|
|
|
--disable-scheduler
|
2025-11-07 09:33:38 +01:00
|
|
|
--node-ip {{ ansible_default_ipv4.address }}
|
|
|
|
|
when: not k3s_binary.stat.exists
|
|
|
|
|
environment:
|
|
|
|
|
INSTALL_K3S_SKIP_START: "false"
|
|
|
|
|
|
|
|
|
|
- name: Enable and start k3s service
|
|
|
|
|
systemd:
|
|
|
|
|
name: k3s
|
|
|
|
|
state: started
|
2025-11-07 10:40:53 +01:00
|
|
|
enabled: true
|
2025-11-07 09:33:38 +01:00
|
|
|
|
|
|
|
|
- name: Display witness node information
|
|
|
|
|
debug:
|
|
|
|
|
msg: "etcd witness node configured at {{ ansible_default_ipv4.address }}"
|