Files
Raspberry_awx/playbooks/kernel-update.yml
T

57 lines
1.9 KiB
YAML

---
- name: Automatic kernel update with reboot (excluding AWX server)
hosts: all:!awx
become: yes
gather_facts: yes
tasks:
# 1. Текущая версия ядра
- name: Get current kernel version
command: uname -r
register: kernel_before
changed_when: false
# 2. Выводим в логи, что начинаем обновление
- name: Show current kernel
debug:
msg: "Current kernel on {{ inventory_hostname }}: {{ kernel_before.stdout }}"
# 3. Обновление всех пакетов (включая ядро)
- name: Update all packages (dist-upgrade)
apt:
upgrade: dist
autoremove: yes
autoclean: yes
register: apt_result
# 4. Новая версия ядра
- name: Get new kernel version after update
command: uname -r
register: kernel_after
changed_when: false
ignore_errors: yes
# 5. Проверяем, изменилось ли ядро
- name: Check if kernel version changed
set_fact:
kernel_updated: "{{ kernel_before.stdout != kernel_after.stdout }}"
# 6. Выводим информацию о результате
- name: Show kernel update status
debug:
msg: "Kernel on {{ inventory_hostname }} {{ 'was updated' if kernel_updated else 'is already up to date' }}"
when: kernel_after.stdout is defined
# 7. Перезагрузка, если ядро обновлено
- name: Reboot if kernel was updated
reboot:
reboot_timeout: 600
pre_reboot_delay: 30
post_reboot_delay: 60
when: kernel_updated
# 8. Сообщаем о завершении (опционально, для логов)
- name: Kernel update completed
debug:
msg: "Kernel update process finished on {{ inventory_hostname }}"
when: kernel_updated