113 lines
2.9 KiB
YAML
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 }}
|