Update IAM appliance

Tento update návod použijte pouze v případě, že dokumentace neobsahuje specifický postup pro update na konkrétní verzi IAM appliance.

IAM appliance sestává z operačního systému CentOS jako základu a dodatečných softwarových balíčků dodávaných v rámci appliance. Tyto skupiny balíčků lze aktualizovat odděleně.

Ověřte, zda jsou dostupné aktualizace pro IAM appliance. Pokud má appliance přístup do internetu nebo do lokálního repozitáře, sama si občerstvuje seznam nových verzí software. Pokud přístup do internetu nemá, je nutné jí ho povolit a vyvolat občerstvení seznamu software.

Občerstvení seznamu softwarových balíčků
[root@localhost ~]# dnf makecache
... zkráceno ...
Metadata cache created.

Zjistěte, zda je k dispozici nějaká aktualizace IAM balíčků. Pokud ano, zobrazí se vám seznam dostupných aktualizací.

Zjištění dostupných aktualizací
[root@localhost ~]# dnf list updates | grep iam-
Last metadata expiration check: 0:01:03 ago on Thu 28 Jan 2021 11:34:45 AM UTC.
Available Upgrades
iam-appliance.noarch                                   0.5-1.el8                                     iam-centos8
... zkráceno ...
Aktualizace IAM appliance
  1. Vypnutí appliance.

  2. Vytvoření snapshotu disku appliance, aby bylo možné provést návrat v případě chyby.

  3. Spuštění appliance.

  4. Zastavení služeb.

  5. Provedení update.

  6. Vyřešení konfiguračních konfliktů.

  7. Kontrolovaný start služeb.

  8. Kontrola.

Vypnutí appliance

Appliance vypněte běžným způsobem, například zadáním příkazu poweroff na konzoli, nebo přes ACPI shutdown.

Vytvoření snapshotu

Vytvořte snapshot vypnutého virtuálního serveru.

Spuštění appliance

Spusťte appliance standardním způsobem. Po nastartování zkontrolujte, že všechny služby běží.

Zastavení služeb

Appliance sestává z několika samostatných služeb, které je nutné před instalací aktualizací zastavit.

Zastavte hlavní služby appliance
[root@localhost ~]# systemctl stop czechidm iam-cas
[root@localhost ~]# systemctl stop iam-czechidm-db iam-web-proxy iam-directory-server

Provedení update

Update se provádí s explicitně vybranými balíčky appliance, aby nedošlo k aktualizaci celého operačního systému. Díky závislostem appliance na některých komponentách OS může dojít i k aktualizaci těchto komponent, z pohledu update IAM appliance je to očekávané.

Aktualizace balíčků IAM appliance
[root@localhost ~]# dnf update iam-*

Utilita dnf vypisuje svůj progress na terminál. Prověřte případná chybová hlášení, pokud se v průběhu aktualizace nějaká objeví.

Vyřešení konfiguračních konfliktů

Softwarové balíčky s sebou nesou několik konfiguračních souborů, které je nutné na konkrétním nasazeném prostředí lokálně editovat. Protože je nežádoucí, aby se lokální konfigurace ztratila, proces aktualizace s tím počítá.

Pokud dochází k aktualizaci souboru, který byl lokálně změněn, ve výstupu dnf se objeví hlášení, že soubor byl vyroben s příponou .rpmnew nebo .rpmsave. Toto je konfigurační konflikt, který je nutné vyřešit ručně.

Konflikt 1 - soubor .rpmnew

Předpokládejme soubor docker-compose-czechidm.yml. Tento soubor byl lokálně změněn, aby služba využívala více systémových prostředků. Při aktualizaci se ve stejném adresáři objeví také soubor docker-compose-czechidm.yml.rpmnew.

  • Soubor docker-compose-czechidm.yml.rpmnew je novou verzí souboru ze softwarového balíčku.

  • Soubor docker-compose-czechidm.yml je původní soubor, stejný jako před aktualizacemi. Tedy služba by v tuto chvíli používala původní konfiguraci.

V tomto případě je potřeba zkontrolovat, že v novém konfiguračním souboru docker-compose-czechidm.yml.rpmnew nepřibyla žádná nová konfigurace nebo nebyla změněna konfigurace, ve které nebyly dělány lokální úpravy.

Případné rozdíly je potřeba zapracovat do souboru docker-compose-czechidm.yml, soubor docker-compose-czechidm.yml.rpmnew je následně možné (a žádoucí) odstranit.

Konflikt 2 - soubor .rpmsave

Předpokládejme soubor 10_czechidm.conf, který byl lokálně změněn. V průběhu update se ve stejném adresáři objeví soubor 10_czechidm.conf.rpmsave.

  • Soubor 10_czechidm.conf je autoritativně aktualizován ze softwarového balíčku.

  • Soubor 10_czechidm.conf.rpmsave je původním lokálně změněným souborem. Tedy služba by v tuto chvíli používala změněnou konfiguraci - z balíčku.

Obdobně jako v případě předchozí situace, je nutné ručně konflik vyřešit a změny zapracovat do souboru 10_czechidm.conf. Soubor 10_czechidm.conf.rpmsave je vhodné potom smazat.

Existence tohoto typu konfliktu poukazuje na pravděpodobně nestandardní konfiguraci appliance.

Soubory .rpmsave se mohou legitimně vyskytnout v případě odinstalování softwarového balíčku, kdy jsou ponechány, protože byl lokálně změněn jejich obsah.

Ostatní konflikty a varování

V některých případech jsou v průběhu aktualizace vypsána různá varování. Ta jsou zpravidla uvozena jako WARNING: nebo NOTICE: a za nimi následují podrobnější informace. Pokud je nutný zásah administrátora, je zmíněno Manual action required..

Kontrolovaný start služeb

V rámci aktualizací mohou konfigurace služeb odkazovat na nové Docker image - ty systém musí v tuto chvíli stáhnout.

Protože není možné předem říci, jak dlouho bude stahování Docker image trvat, mohlo by dojít k předběhnutí startu jednotlivých služeb. Proto provedeme jejich kontrolovaný start.

Kontrolovaný start nezávislých služeb
[root@localhost ~]# systemctl start iam-czechidm-db iam-web-proxy iam-directory-server

Pokud dochází ke stažení nového Docker image, objeví se v logu /var/log/messages záznam podobný následujícímu.

Systém stahuje kontejnerový image
Jan 28 09:42:32 localhost docker-compose[5967]: 12-r1: Pulling from bcv-postgres

Po stažení image dojde k automatického vytvoření kontejneru a startu služby. Potom je možné spustit i služby, které na ní zavisí.

Úspěšný start služby je možné sledovat v jejím logu - /var/log/messages nebo (od verze appliance 0.5 výše) v logách uložených ve struktuře /data/logs/…​.

Spuštění zbývajících služeb
[root@localhost ~]# systemctl start iam-czechidm iam-cas

V této verzi appliance exituje pět služeb : iam-czechidm, iam-czechidm-db, iam-web-proxy, iam-cas a iam-directory-server. Případně existují ještě volitelné služby, které ale závisí na konkrétním nasazeném prostředí. Všechny služby jsou kontejnerizované a aby je bylo možné spustit, musí běžet služba docker.

  • Služba iam-czechidm závisí na službě iam-czechidm-db, bez které ji není možné spustit.

  • Služba iam-web-proxy nemá závislost.

  • Služba iam-cas závisí na službě iam-directory-server, bez které ji není možné spustit.

  • Služba iam-czechidm závisí na službě iam-cas. Služby je možné spustit v libovolném pořadí, ale běžící služba iam-cas je nezbytná pro ověřování uživatelů.

Kontrola

Otestujte fungování služeb appliance a projděte uživatelskými testy.

Logy služeb je možné nalézt v adresářové struktuře /data/logs/…​.

Rollback

Pokud v průběhu kontroly narazíte na neodstranitelný problém, seberte diagnostický výstup:

  • Obsah /var/log/messages a výstup příkazu dmesg.

  • Obsah /var/log/dnf.log.

  • Výstupy příkazu systemctl status SLUŽBA kde SLUŽBA jsou výše uvedené služby.

  • Výstup příkazu systemctl list-unit-files.

  • Logy služeb z /data/logs/…​ z doby od započetí prací na serveru.

Po sebrání diagnostiky server vypněte a navraťte jeho stav ze snapshotu.