LPS:Orion7/FR-CESNET/instmgr.cmd

Z Support
< LPS:Orion7/FR-CESNET
Verze z 11:30, 4 květen 2016; Knykles (diskuse | příspěvky)

(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

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
    1. instmgr update (all/nazev_balicku) - Stáhne potenciálně aktualizované balíčku do lokálního úložiště.
    2. instmgr (-forceafs) install (all/nazev_balicku) - Nainstaluje stažené aktualizace z lokálního úložiště.
    3. instmgr (-forceafs) upgrade (all/nazev_balicku) - Stáhne potenciálně aktualizované balíčky do lokálního úložiště a provede jejich instalaci
    4. 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.
    5. 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

  1. 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ů.
  2. 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.
  3. Při prvním spuštění instalovaného PC proběhne instalace balíčků již při startu.
  4. Kontrola se spustí poprvé 5 minut po startu PC, pak každé 4 hodiny.
  5. 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
  6. 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.
  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.
  8. 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

  1. Spustíme příkazový řádek jako administrátor
  2. 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.

  1. Spustíme příkazový řádek jako administrátor
  2. 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)

Vývojový diagram

Vyvojovy diagram instmgr

FAQ

  • Doplnte.

>> zpet <<

Osobní nástroje
Jmenné prostory

Varianty
Zobrazení
Akce
Kdo jsem
Navigace
Často hledaná témata
Nástroje