Добавить playbooks/kernel-update.yml
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
---
|
||||
- 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
|
||||
Reference in New Issue
Block a user