GNU/Linux >> Znalost Linux >  >> Linux

Příprava na použití aktualizací na Red Hat Linux

Cíl

Naším cílem je zajistit, aby aktualizace operačního systému probíhala hladce a bez chyb.

Verze operačního systému a softwaru

  • Operační systém: Red Hat Enterprise Linux 6+

Požadavky

Privilegovaný přístup k systémům

Obtížnost

SNADNÉ

Konvence

  • # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz
  • $ – dané linuxové příkazy, které mají být spouštěny jako běžný neprivilegovaný uživatel

Úvod

Udržování systému v aktuálním stavu je každodenním úkolem pro správce systému, stejně jako pro uživatele počítače. Použitím nejnovějšího (stabilního) dostupného softwaru v systému můžeme využít nejnovější funkce a budeme více chráněni před bezpečnostními problémy a doufejme, že méně budeme trpět chybami. K aktualizaci systému budete potřebovat nakonfigurovaný yum úložiště, která fungují jako zdroj aktualizovaného softwaru.

Pokud sedíte vedle počítače, na kterém běží operační systém, který má být aktualizován, můžete snadno jednat, pokud se během aktualizace něco pokazí, jako je kontrola výstupu na terminálu, nebo bootování do živého systému, pokud se upgradovaný nevrátí z restart – ale není tomu tak vždy. Představte si datové centrum se stovkami nebo tisíci (virtuálními) počítači nebo jednoduše fyzické PC, které musíte upgradovat na dálku.

Existují jednoduché kroky, které můžeme provést, abychom připravili systém na upgrade a případně odstranili jakýkoli problém, který by ohrozil úspěšnou aktualizaci.

Proces aktualizace

Při provádění bezpodmínečné aktualizace (což znamená „aktualizovat vše“) ​​yum načte všechna metadata z dostupných úložišť a vypočítá všechny balíčky, které mají být upgradovány proti rpm databáze, která obsahuje všechna metadata o balíčcích nainstalovaných v systému.

Proces aktualizace také vypočítá všechny závislosti upgradovaných balíčků, může nahradit staré balíčky a odstranit staré obrazy jádra podle své konfigurace. Počet obrazů jádra, které se mají zachovat, se nastavuje v /etc/yum.conf konfigurační soubor a ve výchozím nastavení je 3:

installonly_limit=3


Po výpočtu všech potřebných úprav yum poskytuje rozsáhlý seznam všech balíčků, které je třeba upgradovat, odstranit nebo nainstalovat kvůli závislostem, stejně jako při instalaci nebo aktualizaci konkrétních balíčků.

V interaktivní aktualizační relaci yum poskytne souhrn balíčků, které mají být upraveny, a také výpočet velikosti dat, která je třeba stáhnout pro upgrade, jak je uvedeno níže:

Shrnutí interaktivní aktualizace yum

Po prozkoumání výsledků se můžeme rozhodnout, zda aktualizaci spustíme, nebo ji zrušíme. Protože yum aktualizuje vše, pro co najde aktualizace, možná budeme chtít nepotřebné balíčky předem odstranit. Můžeme si také všimnout balíčku označeného pro aktualizaci, u kterého máme uzamčenou verzi, který je třeba z upgradu vyloučit.

Po schválení yum stáhne všechny nové balíčky a nainstaluje/aktualizuje je jeden po druhém. Po dokončení zkontroluje integritu nainstalovaných/aktualizovaných balíčků a vyčistí nepotřebné soubory. Poskytuje také zpětnou vazbu během procesu, poskytuje řádek textu pro každý krok a také ukončovací kód, který naznačuje, zda byl upgrade úspěšný nebo zda se objevil nějaký problém. Rovněž zruší proces aktualizace, pokud se objeví problém, který se z pohledu konzistentního systému jeví jako kritický – ale jsou chvíle, kdy už je příliš pozdě, takže předcházet problémům s aktualizací je lepší přístup.

Místo na disku

yum cache

Z výše popsaného procesu jsme mohli uhodnout, že potřebujeme nějaké místo na disku pro proces aktualizace:

  • Metadata všech nakonfigurovaných úložišť musí být uložena, dokud se nedokončí výpočet všech balíčků (a jejich závislostí), které mají být aktualizovány.
  • rpm balíčky, které tvoří samotnou aktualizaci, musí být uloženy lokálně, dokud nebudou správně nainstalovány.

Tato data se nazývají yum cache je potřeba pouze během aktualizace, ale může zabírat značné místo na disku. Výchozí umístění této mezipaměti je v /var/cache/yum adresář. Netřeba dodávat, že pokud není dostatek místa pro uložení všech potřebných dat, proces aktualizace selže. Některá nedokončená stahování budou vyřazena, ale nemusí být uvolněno všechno místo, což skončí tak, že systém selže při aktualizaci a jeho svazek obsahuje /var/cache téměř plné.

Mnoho instalací ukládá svůj /var adresář na svazku vyhrazeném pro protokolování, protože výchozí místo pro soubory protokolu je /var/log na většině distribucí a většina dobře fungujících aplikací přestane fungovat nebo dokonce havaruje, pokud nemohou zapisovat své soubory protokolu. Takže zaplnění svazku, do kterého píší, je špatná věc .

Čím více balíčků je třeba upgradovat a čím více úložišť máme, tím více místa bude aktualizace dočasně zabírat. Vypočítat tento prostor od aktualizace po aktualizaci je obtížné, ale lze jej otestovat pomocí řešení pro běh nasucho popsaným později, pokud máme testovací stroj s přesným obsahem softwaru. V reálném čase může aktualizace z RHEL 7.1 na 7.5 (instalace na plochu pomocí Gnome) zabrat 4 GB místa v mezipaměti, ale instalace několika oprav do systému, který je pouze jeden nebo dva měsíce zastaralý, zabere pouze několik MB.

Pro kontrolu, kolik místa máme, můžeme použít df příkaz:

# df -h /var/
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg_sys-var  6.0G  1.7G  4.4G  28% /var


Ve výše uvedeném příkladu máme 4,4 GB volného místa, což bude dostačující vzhledem k tomu, že server byl aktualizován teprve před několika měsíci. Chcete-li uvolnit místo, triviálním krokem by bylo vymazání yum cache již uloženo (možná při poslední aktualizaci). Chcete-li zkontrolovat, kolik místa v mezipaměti v tuto chvíli zabírá, můžeme použít du :

# du -mcd 1 /var/cache/yum
1103    /var/cache/yum/x86_64
1103    /var/cache/yum
1103    total


Výše uvedená čísla jsou v MB, takže yum cache v tomto příkladu zabírá asi 1 GB místa na disku a zabírá většinu místa na /var hlasitost.

Vymazání mezipaměti

Celou mezipaměť můžeme vymazat následujícím příkazem:

yum clean all

Ale jako yum nás ve výstupu výše uvedeného příkazu ve verzích RHEL 7 upozorní, že mohou existovat osiřelá data z odstraněných nebo deaktivovaných úložišť, k čemuž s největší pravděpodobností dojde po menších aktualizacích vydání. V takovém případě můžeme data bezpečně vymazat ručně:

rm -rf /var/cache/yum/*

Můžeme získat více místa pro aktualizaci vymazáním dalších dat uložených na svazku, jako je komprimace/smazání starých souborů protokolu, přesunutí velkých souborů na jiné svazky nebo zvětšení velikosti svazku.

Přesun mezipaměti

Pracovat dál s možnostmi yum , pokud máme opravdu málo místa na disku, nemůžeme nic vymazat a nemůžeme do svazku přidat další místo, můžeme přesunout umístění yum cache do jiného svazku s větším volným místem. Umístění mezipaměti můžeme nakonfigurovat v yum.conf výše zmíněný konfigurační soubor. Zvažte výchozí nastavení:

cachedir=/var/cache/yum/$basearch/$releasever

Změnou cesty před $basearch další operace yum bude fungovat se stejnou adresářovou strukturou, ale na jiné cestě – doufejme s větším volným místem pro upgrade. Mezipaměť můžeme také přesunout na jiný svazek přesunutím celého adresáře:

mv /var/cache/yum /extended_data_volume/


A vytvoření symbolického odkazu v původním umístění, který ukazuje na nové místo:

ln -s /extended_data_volume/yum /var/cache/yum


Je moudré vědět, že aktualizace neselže při triviální chybě, jako je nedostatek místa na disku. Na velkém systému sysadmins nasadí monitorovací nástroje, jako je Nagios, které mohou hlásit nedostatek místa na disku na všech počítačích, takže tento krok je mnohem méně časově náročný a náchylný k chybám.

Chyby sítě

Pokud dojde k problémům s konektivitou mezi úložišti a počítačem provádějícím aktualizaci, může se stát, že aktualizace selže. To se může stát pouze ve fázi metadat nebo ve fázi stahování nových otáček za minutu a nenaruší to systém. Až bude problém se sítí vyřešen, můžete proces aktualizace spustit znovu.

Na druhou stranu, pokud je aktualizace inicializována z interaktivní relace, při výpadku sítě se připojení může přerušit a aktualizační stroj zůstane bez administrátora, aby odpověděl na otázky yum se může zeptat. Pokud již byla fáze instalace/aktualizace balíčku zahájena, bude pokračovat bez dozoru a může selhat nebo dokončit, pokud by k tomu jinak došlo. Po opětovném připojení lze proces sledovat v /var/log/yum.log .

Výborná jízda

Kromě nedostatku místa na disku a problémů se sítí může aktualizace v mnoha případech selhat kvůli nevyřešeným závislostem balíčků. Ty je třeba vyřešit pomocí nástrojů, které dokážou vypočítat a zpracovat závislosti na balíčcích, ale bylo by užitečné vědět, že nastanou problémy ještě před samotnou aktualizací (a tedy nepromarnit vždy příliš krátké odstávky systému). Abychom získali tyto cenné informace, můžeme spustit proces aktualizace, jako by spouštěl skutečnou aktualizaci, ale zastavit se dříve, než dojde ke stažení, instalaci nebo aktualizaci balíčku.

Kolem Redhat 6.6 byla představena nová možnost, která způsobí yum přijmout „Ne“ na každou otázku, která se objeví během aktualizace – včetně schválení před skutečnou fází manipulace s balíčkem, a v důsledku toho není potřeba žádná skutečná interakce provést zkušební provoz:

yum update --assumeno

To může být ideální nástroj, který poskytne suchý chod nadcházející aktualizace, včetně balíčků, které mají být upgradovány, a případných chyb, které se mohou vyskytnout. Zvažte následující jednoduchý bash skript:

#!/bin/bash
yum update --assumeno &> $(hostname).yum.dryrun.$(date '+%Y-%m-%d').out
exit $?


Výše uvedený skript může být spuštěn automaticky a poskytne textovou zprávu o suchém běhu a také celkový ukončovací kód indikující případné problémy. Výstup není nutné ukládat do místního systému souborů. Cílem přesměrování výstupu může být síťový souborový systém nebo může být zpráva odeslána na nějaký centrální server pro vytváření sestav, může být shromážděna jinými skripty nebo aplikacemi. Zprávy mohou být publikovány a distribuovány mezi další IT oddělení ke schválení, takže každý zúčastněný může přesně vidět, jaké balíčky budou aktualizovány a na jakou verzi.

Suchý běh lze naplánovat tak, aby běžel v daném časovém rámci (možná v noci, aby se méně projevil výkon systému) pomocí cron nebo spouštěné z centrálního zdroje s loutkovým nastavením. Výstupní kód lze také uložit a zpracovat monitorováním nebo facter , aby se před pokračováním shromáždily možné výsledky nadcházejícího upgradu.

Závěr

I u jednoho nebo několika počítačů bychom pro jistotu měli před zahájením aktualizace celého operačního systému shromáždit informace. Jednoho dne nastane problém a je mnohem méně stresující, pokud jej dokážete vyřešit dříve, než bude mít dopad na skutečnou práci daného stroje. Ve větším měřítku prostě není možné sedět vedle každého serveru nebo desktopu a podporovat ho svou přítomností v naději, že to pomůže k bezchybnému běhu aktualizace.

Pro úspěšné aktualizace je nezbytná znalost fází procesu aktualizace, úskalí a jejich řešení. Začít další fázi aktualizace celé vaší infrastruktury s důvěrou, že nenastanou žádné problémy, je udělat to stylově.


Linux
  1. 10 modulů Ansible pro automatizaci systému Linux

  2. Co je Linux? Průvodce pro netechnické uživatele

  3. Vytvoření přizpůsobené image Red Hat Enterprise Linux 7 pro Microsoft Azure

  1. Jak zrcadlit úložiště v Linuxu

  2. Jak zvládnout paniku linuxového jádra

  3. Jak se připravit na certifikační zkoušky správce systému Linux

  1. 8 tipů pro spolehlivou automatizaci systému Linux

  2. Jak vyloučit konkrétní úložiště pro aktualizaci Yum v CentOS / Red Hat

  3. Co je Red Hat Linux?