Files
k3s-ansible/reboot.yml

113 lines
2.9 KiB
YAML

---
- name: Reboot k3s worker nodes
hosts: worker
become: true
serial: 1
tasks:
- name: Display node being rebooted
debug:
msg: 'Rebooting worker node: {{ inventory_hostname }} ({{ ansible_host }})'
- name: Reboot worker node
reboot:
msg: 'Reboot initiated by Ansible'
connect_timeout: 5
reboot_timeout: 600
pre_reboot_delay: 0
post_reboot_delay: 30
test_command: uptime
- name: Wait for node to become reachable
wait_for_connection:
delay: 10
timeout: 300
- name: Wait for k3s-agent service to be active
systemd:
name: k3s-agent
state: started
register: k3s_agent_status
until: k3s_agent_status.status.ActiveState == "active"
retries: 30
delay: 10
- name: Display node ready
debug:
msg: 'Worker node {{ inventory_hostname }} is back online and k3s-agent is running'
- name: Reboot k3s master nodes
hosts: master
become: true
serial: 1
tasks:
- name: Display node being rebooted
debug:
msg: 'Rebooting master node: {{ inventory_hostname }} ({{ ansible_host }})'
- name: Reboot master node
reboot:
msg: 'Reboot initiated by Ansible'
connect_timeout: 5
reboot_timeout: 600
pre_reboot_delay: 0
post_reboot_delay: 30
test_command: uptime
- name: Wait for node to become reachable
wait_for_connection:
delay: 10
timeout: 300
- name: Wait for k3s service to be active
systemd:
name: k3s
state: started
register: k3s_status
until: k3s_status.status.ActiveState == "active"
retries: 30
delay: 10
- name: Wait for k3s API server to be ready
wait_for:
port: 6443
delay: 10
timeout: 300
- name: Display node ready
debug:
msg: 'Master node {{ inventory_hostname }} is back online and k3s is running'
- name: Verify cluster status
hosts: master[0]
become: no
tasks:
- name: Wait additional time for cluster to stabilize
pause:
seconds: 30
- name: Check all nodes are ready
command: kubectl --kubeconfig=/home/{{ ansible_user }}/.kube/config get nodes
register: nodes_status
changed_when: false
- name: Display cluster status
debug:
msg: |
====================================
Cluster Status After Reboot
====================================
{{ nodes_status.stdout }}
- name: Check system pods
command: kubectl --kubeconfig=/home/{{ ansible_user }}/.kube/config get pods -n kube-system
register: system_pods
changed_when: false
- name: Display system pods status
debug:
msg: |
====================================
System Pods Status
====================================
{{ system_pods.stdout }}