Upgrady aneb adrenalinový sport správců serverů

Myslíte, že správce serverů nemá šanci zažít ve své práci nějaké to napětí a adrenalin? Ale ano, stačí se pustit do upgradu serverů na novější verze distribucí, pokud možno za chodu. Tak jsem se rozhodl upgradovat server, na kterém běží mimo jiné i tento web. Upgradoval jsem Debian z verze 5.0 na verzi 6.0, jelikož včera vyšla (Debian Squeeze vyšel v únoru – omlouvám se za zpoždění publikace). Ano, správně, tohle by se dělat nemělo, mělo by se počkat, mělo by se to pěkně naplánovat, ještě lépe před upgradem otestovat na kopii serveru, ale rozhodl jsem se být odvážný. Ostatně, i když je to „produkční“ server, je to můj server, jehož nefunkčnost vadí pouze mně.

Upgrade samozřejmě neproběhl hladce, dpkg vyhodil chybu a upgrade předčasně skončil. Problém byl v Pythonu, resp. v symbolickém odkazu /usr/bin/python, který neukazoval na dostupný interpret (v tu dobu 2.5). Tak jsem to opravil ručně a pokračoval dál dpkg --configure -a, dokud se nenainstaloval Python 2.6 a nenastala podobná chyba. Naštěstí pomohlo vytvořit symlink na verzi 2.6.

Instalace balíčků skončila úspěšně a já začal zjišťovat, co nefunguje. Nefungoval Postfix kvůli neznámé volbě v konfiguračním souboru pro dkim-filter. Opraveno. Pak jsem zjistil, že modul passenger sloužící k propojení Apache a Ruby dělá neplechu ve virtual hostech, kde vůbec neměl figurovat. Pohled do dokumentace Passengeru rychle odhalil možné řešení – použít volbu PassengerEnabled, globálně ji nastavit na off a uvnitř příslušného virtualhostu ji nastavit na on. Řešení zabralo.

Vyzkoušel jsem přijímání pošty, což fungovalo. Při bližším zkoumání jsem ovšem zjistil, že funguje pouze doručování v rámci virtuálních schránek, lokální transport (v rámci „unixových“ uživatelů) už ne. Dobrá, upravil jsem maildroprc a problém vyřešil. Když bylo doručování pošty zprovozněno, rozhodl jsem se vyzkoušet odesílání pošty. Očekával jsem nějakou chybu a také jsem se dočkal. Courier (imap démon) totiž potřebuje FAM nebo Gamin, což jsou monitory změn v souborech. No, on je vlastně nepotřebuje, funguje i bez nich, akorát si stěžuje. Jenomže saslauthd, který ho využívá k ověřování uživatelů, neočekává, že by si mohl stěžovat, a tak skončí bez pokusu o přihlášení se stavem „autentikace selhala“. Jelikož FAM si s sebou tahá portmap, rozhodl jsem se použít Gamin.

Zamlčel jsem ještě problémy se změnami v Awstats a patrně ještě něčím, co jsem dosud neobjevil. Mám-li to shrnout, pak rozhodně doporučuji s upgradem nějakou dobu po vydání stabilní verze počkat, a až dojde na věc, vyzkoušet upgrade na kopii daného serveru. Je rozhodně lepší řešit problém na testovacím serveru než na produkčním, i když v mém případě to vlastně až tak „produkční“ server (ve smyslu server nefunguje = právě jsme zkrachovali) nebyl. Proto jsem si také mohl trošku toho adrenalinu dovolit.