Utility d2u_*
Sada utilít d2u_* slúži na automatickú aktualizáciu inštalácie systému D2000 z FTP/SFTP servera. Podpora SFTP bola pridaná do verzie d2u_client 4.0.0.37
Poznámka: Popisovaný stav je platný od verzie d2u_client 2.2.0.6 (D2000 v7.02.002 patche).
Medzi utility d2u_* patria:
Od verzie d2u_client 2.3.0.24 je dostupný rýchly mód (štandardne zapnutý), t.j. na klientovi nekontroluje jednotlivé súbory a adresáre, ale prečíta si UUID (identifikátor) z lokálneho súboru "content.xml" v installdir a appldir a ak sa nelíšia od UUID v "content.xml" na FTP serveri, tak považuje klienta za plne synchronizovaného.
V prípade, že lokálne UUID v "content.xml" sa líši, prípadne chýba, prebehne plná aktualizácia a v prípade, že nenastala chyba, tak sa UUID do lokálneho "content.xml" zapíše. Rýchly mód je možné potlačiť prepínačom /F (viď parametre príkazového riadka).
Pre použitie rýchleho módu je treba použiť d2u_snapshot.exe minimálne verzie z 24.10.2011 a ním pregenerovať súbory content.xml na FTP serveri.
Utilita d2u_service
Utilita d2u_service beží ako servis pod užívateľom s právami na zápis do inštalačného a aplikačného adresára a umožňuje vykonať aktualizáciu, aj keď je za konzolou prihlásený užívateľ, ktorý tieto práva nemá. Utilitu musí na klientskom počítači zaregistrovať lokálny administrátor spustením "d2u_service -i" v adresári D2000_INSTALL_DIR\bin\.
Utilita d2u_client
Utilita d2u_client po spustení vykoná aktualizáciu inštalačného a aplikačného adresára oproti FTP/SFTP serveru a spustí zadaný proces (typicky HI.EXE).
K svojmu behu potrebuje v systémových registroch nasledovné hodnoty:
[HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<kľúč_inštalácie>\Update]
"FTPServer"=ip_adresa_(s)ftp_servera ; napríklad: "192.168.103.10" [1]
"FTPMode"=mód_ftp_spojenia ; prípustné módy sú: "active" a "passive", záleží od konfigurácie firewallu, nastavenie má význam len pre protokol FTP
"FTPApplDir"=aplikačný_adresár_na_(s)ftp_serveri ; napríklad "/pub/D2000.APP", [2]
"FTPInstallRoot"=inštalačný_adresár_na_(s)ftp_serveri ; napríklad "/pub/D2000.EXE", [3]
"FTPScriptsFile"=meno popisného súboru skriptov; napríklad "scripstfile.ini", [3]
"FTPUser"=ftp_login ; napríklad "d2update"
"FTPPassword"=ftp_password ; napríklad "securePassword" [4]
"Protocol"= 'FTP' alebo 'SFTP' (SFTP od verzie d2u_client 4.0.0.37); ak nie je uvedený alebo nie je rozpoznaný, použije sa FTP
- D2Update je schopný pre "Update" použiť viac (S)FTP serverov. Ak sa použije viac (S)FTP serverov, ich adresy musia byť oddelené čiarkami. D2Update postupne skúša spojenie so všetkými zadanými servermi a aktualizáciu vykoná s prvým fungujúcim. Počet zadaných (S)FTP serverov nie je obmedzený.
- Aplikačný adresár na (S)FTP serveri má nasledovnú štruktúru:
súbor /aplikačný_adresár_na_ftp_serveri/content.xml
Súbor content.xml musí byť vygenerovaný utilitou d2u_snapshot.exe (viď nižšie) po každej zmene obsahu aplikačných adresárov na (S)FTP serveri.
aplikačný adresár /aplikačný_adresár_na_ftp_serveri/aplikácia1/
aplikačný adresár /aplikačný_adresár_na_ftp_serveri/aplikácia2/
...
aplikačný adresár /aplikačný_adresár_na_ftp_serveri/aplikáciaN/ Inštalačný adresár na (S)FTP serveri má nasledovnú štruktúru:
súbor /inštalačný_adresár_na_ftp_serveri/update/content.xml
Súbor musí byť vygenerovaný utilitou d2u_snapshot.exe (viď nižšie) po každej zmene aplikačného adresára na (S)FTP serveri.
adresár /inštalačný_adresár_na_ftp_serveri/scripts/
Tu môžu byť uložené popisné súbory skriptov a skripty , ktoré budú spustené pred a po aktualizácii. Ak má dôjsť k spusteniu skriptov, musí špecifikované meno popisného súboru skriptov scriptsfile.ini v registroch alebo z príkazového riadka prepínačom /S (viď nižšie)
Formát skriptového súboru je nasledovný:sekcia [before] definuje skripty spustené pred zahájením samotného update, sekcia [after] defunuje skripty ktoré sa vykonajú po ukončení update. RUN_AS_SERVICE vykoná skript v kontexte systémovej služby d2u_service (typicky bežiacej pod kontom LOCAL_SYSTEM), RUN_AS_CLIENT vykoná skript v kontexte prihláseného užívateľascriptsfile.ini[BEFORE] RUN_AS_CLIENT=before_cli.cmd RUN_AS_SERVICE=before_srv.cmd [AFTER] RUN_AS_CLIENT=after_cli.cmd RUN_AS_SERVICE=after_srv.cmd
adresár /inštalačný_adresár_na_ftp_serveri/update/
Tu sú adresáre inštalácie D2000, tj. bin/, java/, resdll/ atď.- Password je v nezakódovanom čitateľnom tvare.
Parametre z príkazového riadka:
/V | verbose |
/S=scriptsfile.ini | spustí skripty popísané v scripstfile.ini |
/Lsk | slovenský jazyk |
/Q | quiet |
/A | aktualizuje iba aplikačný adresár |
/T | test - nič fyzicky nezapisuje, iba simuluje aktualizáciu |
/F | fullcheck - ignoruje lokálny content.xml |
/Dtime | delay [time] sekúnd |
Utilita d2u_reload (pre verzie d2update < 3.0)
Utilitu používali d2u_service a d2u_client na svoju aktualizáciu, od verzie 3.0 už nie je potrebná
Utilita d2u_snapshot
Utilita po spustení vytvorí v aktuálnom pracovnom adresári súbor content.xml, ktorý je umiestnený na (S)FTP serveri a d2u_client.exe podľa tohto súboru porovnáva, ktoré súbory treba stiahnuť z (S)FTP servera.
Typický postup je nakopírovať d2u_snapshot.exe do /aplikačný_adresár_na_ftp_serveri/ a do /inštalačný_adresár_na_ftp_serveri/update/.
Pri každej zmene v inštalačnom a aplikačnom adresári na (S)FTP serveri je potrebné zo servera spustiť obe utility, tie vygenerujú súbory /aplikačný_adresár_na_ftp_serveri/content.xml a /inštalačný_adresár_na_ftp_serveri/update/content.xml. Tieto súbory si potom pri aktualizácii klienta stiahne d2u_client.exe a podľa nich vykoná aktualizáciu.
Funkcionalita IPSAutoRun v d2u_service.exe
IPSAutorun umožňuje spustiť z definovaného adresára alebo prenosného USB média pripravený balíček, ktorý môže vykonať napr. aktualizáciu systému, nainštalovať patch, urobiť servisný zásah a pod. Balíček je digitálne podpísaný oprávneným subjektom a d2u_service spustí balíček iba po úspešnom overení podpisu.
IPSAutoRun balíček pozostáva z dvoch súborov:
- <<nazov>>.7z
- <<nazov>>.7z.sig
pričom "<<nazov>>.7z" je .7zip archív a "<<nazov>>.7z.sig" je súbor s digitálnym podpisom zaručujúcim autenticitu archívu. Archív musí obsahovať súbor "\autorun.cmd" a štandardne ďalšie súbory.
d2u_service.exe sleduje prítomnosť IPSAutoRun balíčkov:
- v definovanom adresári (WatchedDir),
- v koreňovom adresári pripojeného USB úložiska.
Konfigurácia IPSAutoRun
d2u_service.exe číta z registrov nasledovné parametre:
(string) HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<<base>>\IPSAutoRun\PublicKey
- celá cesta k súboru s verejným kľúčom oprávneného subjektu (napr. "c:\D2000\D2000.EXE\utils\ipsautorun\public_key.pem"). Tento súbor musí byť chránený proti zmazaniu/zápisu prístupovými právami OS voči neautorizovaným užívateľom.
(string) HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<<base>>\IPSAutoRun\UnpackDir
- cesta k pracovnému adresáru, do ktorého sa autorun balíčky rozbalia a odkiaľ budú spustené (napr. "c:\temp\ipsautorun\")
(string) HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<<base>>\IPSAutoRun\WatchedDir
- cesta k pracovnému adresáru, ktorý bude monitorovaný na prítomnosť autorun balíčkov. Kvôli konzistencii balíčka a podpisu, je nutné najskôr do adresára kopírovať archív <meno>.7z a až potom podpis <meno>.7z.sig.
Podpisovanie balíčkov
Oprávnený subjekt si vygeneruje súkromný + verejný kľúč napríklad pomocou aplikácie openssl.exe, ktorú si stiahne z bezpečného zdroja (alebo použije openssl.exe, ktoré je v adresári <D2000_inštalačný_adresár>/bin resp. /bin64).
Postup generovania páru kľúčov v príkazovom riadku windows cmd.exe:
set RANDFILE=.\.rnd openssl genrsa -out private_key.pem 4096 openssl rsa -pubout -in private_key.pem -out public_key.pem |
V aktuálnom adresári vzniknú súbory "private_key.pem" - súkromný kľúč a "public_key.pem" - verejný kľúč. Privátny kľúč je nutné zabezpečiť proti neoprávnenému prístupu, bude slúžiť na podpisovanie balíčkov. Verejný kľúč je nutné rozdistribuovať na počítače, kde bude bežať d2u_service.
Postup prípravy a podpisovania balíčkov
Do balíčka (do koreňového adresára) umiestnite dávkový súbor autorun.cmd, v ktorom je implementovaná potrebná funkcionalia a prípadne ďalšie potrebné súbory. Balíček zbaľte do formátu 7zip (www.7-zip.org). Potom balíček podpíšte súkromným kľúčom nasledovným postupom (opäť je potrebný openssl.exe):
openssl dgst -sha256 -sign private_key.pem -keyform PEM -out .7z.sig .7z |
Vznikne súbor .7z.sig, ktorý spolu so .7z tvorí balíček pripravnený na použitie pre d2u_service.
Súvisiace stránky: