LPS:Orion7/FR-CESNET/instmgr.cmd
Z Support
Obsah |
instmgr.cmd
- Skript pro správu instalací SW v systému Orion7
- Skript pro svou funkci nepotřebuje namapované disky I: a J:
Uživatelská dokumentace
Popis funkcí
- Skript slouží pro instalaci a aktualizaci softwarových balíčků v systému Orion7
- Aktuálně jsou implementovány funkce update upgrade install remove always
- instmgr update (all/nazev_balicku) - Stáhne potenciálně aktualizované balíčku do lokálního úložiště.
- instmgr (-forceafs) install (all/nazev_balicku) - Nainstaluje stažené aktualizace z lokálního úložiště.
- instmgr (-forceafs) upgrade (all/nazev_balicku) - Stáhne potenciálně aktualizované balíčky do lokálního úložiště a provede jejich instalaci
- instmgr remove (all/nazev_balicku) - Odstraní verzi balíčku z registru, složku balíčku modules z %programdata%\Orion\modules a kopii balíčku v lokálním úložišti.
- instmgr (-forceafs) always (all/nazev_balicku) - Provede spuštění always-sys.cmd a always-usr.cmd skriptů při každém zavolání.
* parametr -forceafs umožňuje obejít lokální úložiště D:\Software.7 a instalovat přímo z AFS
- Skript instmgr.cmd hlídá běžící instance! není tedy možné aby běžely dvě instance zároveň. V případě že je detekována běžící instance (kupříkladu instmgr update all) na pozadí, skript půl hodiny periodicky kontroluje, zdali se instance na pozadí neukončí. Pokud k ukončení do půl hodiny nedojde, ukončí se.
- Skript automaticky rozlišuje zdali je spuštěn jako administrátor, nebo uživatel. Na základě toho rozhoduje, zdali spustit skript -usr nebo -sys
Průběh a stavy automatického instalačního mechanismu
- Nový nebo aktualizovaný balíček je nahrán na AFS, zaveden do databáze strojů, a přiřazen na konkrétní stroj či skupinu strojů.
- Každý spuštěný stroj periodicky kontroluje zdali nemá přiřazen nový balíček, nebo zdali nebyl balíček aktualizován. Kontrola probíhá v režimu lokální úložiště na disku D: versus zdrojové úložiště na AFS.
- Při prvním spuštění instalovaného PC proběhne instalace balíčků již při startu.
- Kontrola se spustí poprvé 5 minut po startu PC, pak každé 4 hodiny.
- V případě že je nalezen nový/aktualizovaný balíček, je tento balíček stažen na lokální disk D: do úložiště D:\Software.7
- Při vypnutí/restartu PC se spouští doménovou politikou řízený skript, který porovná verzi balíčku v lokálním úložišti s verzí v systémovém registru HKLM\Software\Orion\versions, pokud chybí hodnota s názvem balíčku, nebo se liší od hodnoty v úložišti, spustí instalaci balíčku tzv. install-sys.cmd skript. Instalace probíhá z lokálního úložiště D:\Software.7.
- Při spuštění PC se spouští doménovou politikou řízený skript, který provádí tzv. always-sys.cmd skript. Pokud v daném balíčku existuje, je proveden při každém spuštění PC.
- Při přihlášení uživatele se spouští registrem řízený skript, který zajistí provedení tzv. install-usr.cmd skriptu a always-usr.cmd skriptu. V případě install-usr.cmd se porovnává verze v systémovém registru 'HKLM\Software\Orion\versions' a uživatelském registru 'HKCU\Software\Orion\versions'. Pouze pokud se liší, provede se install-usr.cmd. Skript always-usr.cmd je spouštěn při každém přihlášení.
Ruční správa balíčků
Instalace
- Spustíme příkazový řádek jako administrátor
- Zavoláme příkaz instmgr upgrade název_balíčku
Odinstalace balíku
instmgr remove nazev_baliku
- pokud existuje pro dany balik odinstalacni skript remove-sys.cmd zavola jej
- Pokud je pouzit vychozi remove skript, obsazeny v modulu "template", staci do souboru displayname.rmv v modules zapsat název programu v menu Programy a Funkce
Ješte je ve hře varianta:
wmic product where name="Java 7 Update 75" call uninstall /nointeractive
Ve vychozim stavu je soubor remove-sys.cmd obsazen v baliku “template” Dale je mozne implementovat odinstalaci baliku v zavislosti na DB stroju, tj, pro veskere baliky obsazene v D:\Software.7, ktere nemaji repliku v registrech
hklm\software\orion /v modules
Zavolat remove-sys.cmd
Mám docela chuť to udělat :-)
- Pokud neexistuje soubor remove-sys.cmd ani displayname.rmv, odebere se pouze informace o instalaci balíčků a lokální úložiště, ekvivalentní příkazům:
reg delete hklm\software\orion\version /v nazev_baliku /f rmdir /s /q D:\Software.7\nazev_baliku
Automatický instalační mechanismus pak při vypnutí nebo ručním zavolání zpustí instalaci balíčku znovu.
- Spustíme příkazový řádek jako administrátor
- Zavoláme příkaz instmgr remove název_balíčku
Technická dokumentace
- Skript je napsaný v Perlu
- Používá se distribuce Strawberry Perl for Windows
- Bezet muze pouze jedna instance, je to zajisteno klicem “instmgrstate” v
HKLM\Software\Orion
- Klic se resetuje rebootem, nebo rucne, pokud instmgr nasilne skonci.
- Klic vytvari a maze CMD sekce skriptu instmgr.cmd, jeste pred zacatkem a po konci perloveho kodu (Pokud Perl zkrachuje, CMD umozni znovuspusteni)
- instmgr.cmd je volán ze skriptů sys_startup.cmd, sys_shutdown.cmd, usr_login.cmd, service_startup.cmd
Vývojový diagram
FAQ
- Doplnte.