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
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]
"Protocol"= 'disabled' alebo 'FTP' alebo 'SFTP' (disabled a SFTP od verzie d2u_client 4.0.0.43); ak nie je uvedený alebo nie je rozpoznaný, použije sa FTP, 'disabled' znamená že d2u_client nerobí žiadnu činnosť.
"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]
"TrustedHostKeysSHA256"=čiarkami oddedené sha256 fingerprinty SFTP serverov v kódovaní base64, ktoré budú považované za dôveryhodné. Východzia hodnota je "*", čo znamená že akýkoľvek SFTP server je dôveryhodný. Na nedôveryhodný SFTP server sa d2u_client odmietne pripojiť.
- 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 (viď parameter FTPScriptsFile, napr. 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:
2 komentárov
Anonymný
FTPScriptsFile bude vykonaný vždy, keď sa spustí FTP update? Viete dať nejakú ukážku, ako by malo FTP skript fungovať štýlom - zmení sa niečo, vtedy vymaž content na lokálnom počítači, vymaž adresár java a stiahni všetky súbory. V opačnom prípade nerob nič. Alebo štandardne nespúšťať HI cez FTP update?
Anonymný
Skripty budu vykonane vzdy. Skript si musi stavovu informaciu (konkretne ci uz java adresar zmazal) ulozit niekde sam. Napr. si to poznaci vytvorenim nejakeho prazdenho suboru na klientskom pocitaci. D2u_* mu v tom nijako nevie pomoct.
Pridať komentár