os_update
Название Роли
Эта роль будет применять обновления безопасности или полные патчи к машинам Red Hat, Ubuntu и Alpine.
Она может делать:
- обновления безопасности или полные патчи
- очищать старые версии ядра
- определять необходимость перезагрузки и выполнять ее (см. переменные)
Поскольку я работаю только с AWX (v20.0.1), она тестировалась только с его (последними) версиями ansible.
Требования
Работающий интернет и правильная настройка репозиториев на машинах.
Поддерживаемые операционные системы:
RHEL, CentOS, Rocky, Alma
- Версия: 6-9
Ubuntu LTS: 20.04, 22.04
Alpine: stable-latest
Debian должен работать, я использую только LTS дистрибутивы, которые могут иметь SLA.
Mint работает, но не имеет приоритета (личные нужды)
Переменные Роли
- gather_facts отключен, так как сначала нужно определить, онлайн ли хост.
Мы делаем это несколько раз, чтобы избежать проблем с загрузкой и подключением.
Пожалуйста, посмотрите в папкуtests
.
Большинство переменных имеют аналог varname_default
, который предназначен для переопределения значения по умолчанию на уровне плейбука.
Таким образом, вы можете определить поведение по умолчанию для всех целей, для которых вообще не определены переменные. Например: полное|обновление безопасности.
Пример:
- значение по умолчанию
os_update_reboot
вdefaults/main.yml
установлено вTrue
- в плейбуке вы определяете
os_update_reboot_default
какFalse
- в инвентаре вы установили
os_update_reboot
вTrue
для вашей группы хостовtesting
Таким образом, все ваши хосты избежат перезагрузки после патчирования, кроме вашей группы хостовtesting
... Voilà, умно, не правда ли?
Напоминаем: varname
всегда является обязательным, varname_default
просто переопределяет поведение по умолчанию роли.
os_update_level:
security
os_update_level: [none|security|full]os_update_reboot:
true
os_update_reboot: [true|false]os_update_remove_old_kernel:
true
os_update_remove_old_kernel: [true|false]os_update_keep_kernel_nr:
2
Зависимости
Пока нет.
Пример Плейбука
Проверьте директорию тестов на примеры
Лицензия
GPLv3
Security or full patching, cleanup old kernel versions, detect needed reboots and boot them. All that is controlled by defaults in clever way :-)
ansible-galaxy install joe-speedboat/ansible.os_update