mirror of
https://github.com/k3s-io/k3s-ansible.git
synced 2025-12-25 00:12:37 +01:00
Simplify K3s service startup for HA
Signed-off-by: Derek Nola <derek.nola@suse.com>
This commit is contained in:
@@ -2,22 +2,30 @@
|
||||
- name: Init first server node
|
||||
when: ansible_hostname == groups['server'][0]
|
||||
block:
|
||||
- name: Start temporary service for HA cluster
|
||||
ansible.builtin.command:
|
||||
cmd: >
|
||||
systemd-run -p RestartSec=2 -p Restart=on-failure --unit=k3s-init k3s server
|
||||
--cluster-init --token {{ token }} --tls-san {{ api_endpoint }} --data-dir {{ k3s_server_location }} {{ extra_server_args}}
|
||||
# noqa: jinja[spacing]
|
||||
creates: "{{ k3s_server_location }}/server/node-token"
|
||||
when: groups['server'] | length > 1
|
||||
|
||||
- name: Start temporary service for single server cluster
|
||||
ansible.builtin.command:
|
||||
cmd: >
|
||||
systemd-run -p RestartSec=2 -p Restart=on-failure --unit=k3s-init k3s server
|
||||
--token {{ token }} --tls-san {{ api_endpoint }} --data-dir {{ k3s_server_location }} {{ extra_server_args }}
|
||||
creates: "{{ k3s_server_location }}/server/node-token"
|
||||
- name: Copy K3s service file [Single]
|
||||
when: groups['server'] | length == 1
|
||||
ansible.builtin.template:
|
||||
src: "k3s-single.service.j2"
|
||||
dest: "{{ systemd_dir }}/k3s.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
|
||||
- name: Copy K3s service file [HA]
|
||||
when: groups['server'] | length > 1
|
||||
ansible.builtin.template:
|
||||
src: "k3s-cluster-init.service.j2"
|
||||
dest: "{{ systemd_dir }}/k3s.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
|
||||
- name: Enable and check K3s service
|
||||
ansible.builtin.systemd:
|
||||
name: k3s
|
||||
daemon_reload: true
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: Create directory .kube
|
||||
ansible.builtin.file:
|
||||
@@ -26,6 +34,10 @@
|
||||
owner: "{{ ansible_user }}"
|
||||
mode: "u=rwx,g=rx,o="
|
||||
|
||||
- name: Pause to allow server startup
|
||||
ansible.builtin.pause:
|
||||
seconds: 10
|
||||
|
||||
- name: Copy config file to user home directory
|
||||
ansible.builtin.copy:
|
||||
src: /etc/rancher/k3s/k3s.yaml
|
||||
@@ -48,15 +60,25 @@
|
||||
flat: true
|
||||
|
||||
- name: Start other server if any and verify status
|
||||
when:
|
||||
- (groups['server'] | length) > 1
|
||||
- ansible_hostname != groups['server'][0]
|
||||
block:
|
||||
- name: Init additonal server nodes
|
||||
ansible.builtin.command:
|
||||
cmd: >
|
||||
systemd-run -p RestartSec=2 -p Restart=on-failure --unit=k3s-init k3s server
|
||||
--token "{{ hostvars[groups['server'][0]]['token'] }}" --server https://{{ api_endpoint }}:{{ api_port }}
|
||||
--tls-san {{ api_endpoint }} --data-dir {{ k3s_server_location }} {{ extra_server_args }}
|
||||
creates: "{{ k3s_server_location }}/server/node-token"
|
||||
when: ansible_hostname != groups['server'][0]
|
||||
- name: Copy K3s service file [HA]
|
||||
when: groups['server'] | length > 1
|
||||
ansible.builtin.template:
|
||||
src: "k3s-ha.service.j2"
|
||||
dest: "{{ systemd_dir }}/k3s.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
|
||||
- name: Enable and check K3s service
|
||||
ansible.builtin.systemd:
|
||||
name: k3s
|
||||
daemon_reload: true
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: Verify that all server nodes joined
|
||||
when: (groups['server'] | length) > 1
|
||||
@@ -68,28 +90,6 @@
|
||||
retries: 20
|
||||
delay: 10
|
||||
changed_when: false
|
||||
always:
|
||||
- name: Kill the temporary init service
|
||||
ansible.builtin.systemd:
|
||||
name: k3s-init
|
||||
state: stopped
|
||||
failed_when: false
|
||||
|
||||
- name: Copy K3s service file
|
||||
ansible.builtin.template:
|
||||
src: "k3s-server.service.j2"
|
||||
dest: "{{ systemd_dir }}/k3s-server.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
register: k3s_service
|
||||
|
||||
- name: Enable and check K3s service
|
||||
ansible.builtin.systemd:
|
||||
name: k3s-server
|
||||
daemon_reload: true
|
||||
state: restarted
|
||||
enabled: true
|
||||
|
||||
- name: Create symlinks
|
||||
ansible.builtin.file:
|
||||
|
||||
Reference in New Issue
Block a user