mrjoshuap.leapp
ansible-leapp
Ten rola Ansible próbuje przeprowadzić zautomatyzowaną aktualizację systemów opartych na EL, głównie Red Hat Enterprise Linux.
Wykonuje następujące zadania na wysokim poziomie:
- Weryfikacja wymagań wstępnych
- Przygotowanie systemu do aktualizacji
- Generowanie raportu wstępnego leapp
- Naprawa powszechnych problemów z aktualizacją (domyślnie wyłączona)
- Wykonanie aktualizacji (domyślnie wyłączone)
- Sprawdzenie stanu po aktualizacji (domyślnie wyłączone)
Domyślnie ta rola nie przeprowadza faktycznej aktualizacji. Jej celem jest przygotowanie systemu i wygenerowanie raportu wstępnego, który należy przeanalizować. Jeśli chcesz, możesz także spróbować przeprowadzić aktualizację.
TODO
- Wdrożenie weryfikacji po aktualizacji (tasks/verify.yml)
Odnośniki
Wykorzystałem następujące dokumenty jako odniesienia:
- https://developers.redhat.com/products/rhel/download
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/upgrading_from_rhel_7_to_rhel_8/index
- https://www.redhat.com/en/blog/upgrading-rhel-7-rhel-8-leapp-and-boom
- https://access.redhat.com/articles/4263361
- https://access.redhat.com/articles/3664871
Zmienne roli
Zmienne, które modyfikują zachowanie tej roli, są zadeklarowane w defaults/main.yml
# Podaj listę identyfikatorów repozytoriów, które istnieją w /etc/yum.repos.d
# Domyślnie []
leapp_custom_repositories: []
# Określ urządzenie grub, generalnie nie jest wymagane dla większości instalacji
leapp_grub_device: '/boot'
# Pominąć Menedżera Subskrypcji Red Hat? Domyślnie nie
leapp_skip_rhsm: no
# Pominąć walidację wymagań wstępnych? Domyślnie nie
leapp_skip_validate: no
# Pominąć zadania przygotowawcze? Domyślnie nie
leapp_skip_prepare: no
# Pominąć instalację cockpit? Domyślnie nie
leapp_skip_prepare_cockpit_install: no
# Pominąć instalację pakietów? Domyślnie nie
leapp_skip_prepare_package_install: no
# Pominąć aktualizację pakietów? Domyślnie tak
leapp_skip_prepare_update: yes
# Pominąć ponowne uruchamianie po zmianach w aktualizacjach pakietów? Domyślnie nie
leapp_skip_prepare_update_reboot: no
# Pominąć leapp wstępny? Domyślnie tak
leapp_skip_preupgrade: yes
# Pominąć usunięcie poprzednich raportów? Domyślnie nie
leapp_skip_preupgrade_cleanup: no
# Pominąć naprawę powszechnych problemów? Domyślnie tak
leapp_skip_remediate: yes
# Pominąć faktyczną aktualizację leapp? Domyślnie tak
leapp_skip_upgrade: yes
# Jak długo czekać (w sekundach) na ponowne uruchomienie po aktualizacji? Domyślnie 1200
leapp_reboot_timeout: 1200
Zależności
Nie ma zależności do użycia tej roli, jednak rola ta zakłada, że masz wdrożone standardowe środowisko operacyjne, które zapewnia:
- Red Hat Enterprise Linux 7
- System uprawniony z RHSM lub Satellite
- Skonfigurowane i włączone repozytoria dla najnowszych aktualizacji, szczególnie dla
rhel-7-server-rpms
irhel-7-server-extras-rpms
Dodatkowo, musisz pobrać dodatkowe wymagane pliki danych (zmiany pakietów RPM i mapowanie repozytoriów RPM) dołączone do artykułu bazy wiedzy i umieścić je w katalogu 'files' w tym samym katalogu co playbook zawierający tę rolę.
Przykład Playbooka
Poniżej przedstawiono prosty playbook, który wykona domyślne działania, aż do przeprowadzenia faktycznej aktualizacji:
---
- name: Wykonaj aktualizację inplace systemu EL
hosts: all
become: yes
vars:
# Podaj listę identyfikatorów repozytoriów, które istnieją w /etc/yum.repos.d
# Domyślnie []
leapp_custom_repositories: []
# Pominąć Menedżera Subskrypcji Red Hat? Domyślnie nie
leapp_skip_rhsm: no
# Pominąć walidację wymagań wstępnych? Domyślnie nie
leapp_skip_validate: no
# Pominąć zadania przygotowawcze? Domyślnie nie
leapp_skip_prepare: no
# Pominąć instalację cockpit? Domyślnie nie
leapp_skip_prepare_cockpit_install: no
# Pominąć instalację pakietów? Domyślnie nie
leapp_skip_prepare_package_install: no
# Pominąć aktualizację pakietów? Domyślnie tak
leapp_skip_prepare_update: yes
# Pominąć leapp wstępny? Domyślnie nie
leapp_skip_preupgrade: no
# Pominąć usunięcie poprzednich raportów? Domyślnie nie
leapp_skip_preupgrade_cleanup: no
# Pominąć faktyczną aktualizację leapp? Domyślnie tak
leapp_skip_upgrade: yes
# Jak długo czekać (w sekundach) na ponowne uruchomienie po aktualizacji? Domyślnie 1200
leapp_reboot_timeout: 1200
roles:
- mrjoshuap.leapp
Licencja
GPL-2.0-or-later
Informacje o autorze
Joshua Preston jest architektem rozwiązań w Red Hat, specjalizującym się w technologiach platformowych i zarządzających.
An Ansible role that attempts an inplace upgrade of EL7 to EL8 using LEAPP
ansible-galaxy install mrjoshuap.leapp