Windows "installálási" probléma

Adott egy szolgáltatás, melyben három résztvevő szerepel: a szolgáltató (ez lennék én), az ügyfél (velem van kapcsolatban) és a vevő (az ügyféllel van kapcsolatban).
A rendszer jelenleg egy cloud-alapú megvalósítás, amelyhez mind az ügyfelek, mind a vevők egy-egy általunk fejlesztett kliensszoftverrel férnek hozzá.
A rendszer maga linux-alapú, de a felhasználói szoftver Windows Vista+ környezetre készült. Ez eddig nem jelentett problémát, mert az ügyfelek nem igazán rendelkeztek üzlethelyiséggel, a vevők az otthoni gépükön dolgoztak.

Most viszont a következőt kellene megoldanom:
Az ügyfelek az üzletükben lévő gépeken biztosítanák a rendszer elérését. Ehhez én berakok egy szervert az üzletbe, amelyen az összes egy ügyfélhez kapcsolódó funkció kb. „tükrözve” van a cloudban futó rendszerről, az üzletben található, az ügyfél tulajdonát képező gépeken pedig a kliensszoftver egy specializáltabb változata futna. Ezáltal a rendszer képes lenne akkor is működni, ha az üzlet netkapcsolata éppen elhal.
A feladat tehát, hogy az üzletek gépeire nekem kellene tudnom felpakolni a teljes futtatókörnyezetet, standardizáltan, tehát ha 100 üzlet van, akkor mind a 100, egyenként 1-10 gépe ugyanabból az image-ből menne, a különbözőségeket a kliensszoftver „felnyalja” a helyi szerverről.
Az üzletek gépei hardver tekintetében nem különböznek lényegesen, ha olyan eszköz kerül a rendszerbe, ami korábban nem volt, akkor a master-image megkapja a drivereket, onnantól bárhol máshol is használható.
A vevők által használt gép nem rendelkezne internet-kapcsolattal, a szükséges frissítéseket szintén a master-image-ben végeznénk el.

Linux alatt simán megoldom egy iSCSI root-image-dzsel, de a MS licenszelési/aktiválási gyakorlata nekem kínai, és soha nem adminisztráltam Windows Servert, ezért arra lennék kíváncsi, hogy milyen módszerrel lehet ezt jogszerűen megoldani.

Hozzászólások

Jól értem, hogy Linux alapú szervert tervezel elhelyezni az üzletekben, ugye?
A hardverek újonnan kerülnek beszerzésre és csak az Általad szolgáltatott rendszert kell róla elérni?
Jól értem, hogy az üzletben található Windows klienseket az elhelyezendő szerverről szeretnéd teríteni illetve frissíteni?
Mi a kiindulási állapot? Bare metal?
Rendelkezésre áll már a Windows licenc a gépekhez? Milyen licencről beszélünk?
Jól értem, hogy a Ügyfélnél elhelyezett kliensgépek számára nem biztosítanál internet-kapcsolatot, csak az üzletben elhelyezett szervert érnék el? A kliensgépek biztonsági frissítéseit rendszeres újra-image-eléssel tervezed megoldani?
Milyen a sávszélesség az üzletek felé, amin az image-et frissíteni kell?

Üdv,
Marci

"Jól értem, hogy Linux alapú szervert tervezel elhelyezni az üzletekben, ugye?"
Igen, a jelenlegi állapotban egy Ubuntu 14.04 van Xennel.
Ha másképp nem megy, mehet egy VM-be egy Windows Server, de ha ez sem elég, mehet a Windows a vason is, csak akkor baromi gyorsan kell megtanulnom Windows Servert adminolni.

"A hardverek újonnan kerülnek beszerzésre és csak az Általad szolgáltatott rendszert kell róla elérni?"
Nem, a hardverek (mármint a windowsos kliensgépek) egy része már adott.
Igen, csak az általam szolgáltatott rendszert kell elérni.

"Jól értem, hogy az üzletben található Windows klienseket az elhelyezendő szerverről szeretnéd teríteni illetve frissíteni?"
Igen.
Bár az ideális megoldás az lenne, ha a rendszert iSCSI-ról tudnám betölteni.
A munkafájlokhoz természetesen van belső lemez, tehát ha az iSCSI-ról betöltéshez nem elég, ha PXE-ről tud a gép bootolni, van hova bootpartíciót tenni.

"Mi a kiindulási állapot? Bare metal?"
Igen.

"Rendelkezésre áll már a Windows licenc a gépekhez? Milyen licencről beszélünk?"
A már meglévő gépeken jelenleg XP fut, ezek le lesznek gyalulva, az új beszerzésekhez nem lesz.
A legfőbb problémáim egyike, hogy hogyan licenszelhető a Windows (mondjuk 8.1) egyetlen példánya akár több ezer gépre.

"Jól értem, hogy a Ügyfélnél elhelyezett kliensgépek számára nem biztosítanál internet-kapcsolatot, csak az üzletben elhelyezett szervert érnék el? A kliensgépek biztonsági frissítéseit rendszeres újra-image-eléssel tervezed megoldani?"
Igen.

"Milyen a sávszélesség az üzletek felé, amin az image-et frissíteni kell?"
Fogalmam sincs. Mondjuk, hogy 1 mbit/s szinte biztos, hogy adott. Viszont nem zavar, ha egy friss image nem azonnal jelenik meg.
Ráadásul a Windowst szeretném gyakorlatilag teljesen kiherélni, tekintve, hogy mindössze egyetlen specifikus alkalmazásnak kell futnia. Hogy hogy csinálunk kioszk módot, azt még nem találtuk ki :)

Hello,

Ez eléggé beágyazott rendszer iránti igénynek tűnik. Lehet, hogy a Windows Embedded vonalon kéne nézelődni.
pár info, ami segíthet eligazodni:
-A Windows Embedded Standard 2009 az utolsó verzió, ami tudott hálózatról bootolni. Ez azonban Windows XP alapú, nem Vista vagy újabb.
-Ez utáni klienseket nem lehet támogatott módon hálózatról indítani, így az iSCSI-ról indításról alighanem le kell mondani.
-Gép telepítése/újratelepítése megoldható PXE hálózati bootolással, ehhez nem kell feltétlenül Windows Serverhez kapcsolódni, van erre opensource megoldás is.

"A legfőbb problémáim egyike, hogy hogyan licenszelhető a Windows (mondjuk 8.1) egyetlen példánya akár több ezer gépre."
Pont úgy mint egy gépre. Ha nem Embedded, akkor OEM vagy teljes licenc kell mindegyik gépre. Az Embedded licencelését nem ismerem.

Embedded esetén a Write filter segít, hogy ne berheljék szét a gépet.
Ugyanakkor a patchek miatti teljes újratelepítés túlzásnak tűnik.
Inkább gondolkodnék egy rendszeres központi patchelésben (ami olyankor feloldja a Write filtert).

Üdv,
Marci

Nem ragaszkodom a hálózatról bootoláshoz, bár 6-7 gép esetén egy 10 GB-os image-dzsel vagy negyed óra a nyitás...

"Ha nem Embedded, akkor OEM vagy teljes licenc kell mindegyik gépre."
Ezzel nem is lenne semmi problémám, ha a dolog úgy menne, hogy veszek 500 licenszet, és használok egy image-et 500 példányban. (Akár a helyi szerveren egy proxyn kiengedem a klienseket, hogy az MS elhiggye, hogy legális példány.) De nem tudok róla, hogy ez működne.

(Hiába, baromira elkényelmesedik az ember, ha 15+ éve csak linuxos rendszereket üzemeltet... :)

"6-7 gép esetén egy 10 GB-os image-dzsel vagy negyed óra a nyitás..."
Minden gépre telepítsd helyi diszkre az image-et először. Másnaptól nem lesz negyed óra...

"Ezzel nem is lenne semmi problémám, ha a dolog úgy menne, hogy veszek 500 licenszet, és használok egy image-et 500 példányban. "

Pont így működhet tudtommal. Egyedül arról kell gondoskodni, hogy minden gép megkapja a saját egyedi kulcsát és aktiválni tudja magát.

Üdv,
Marci

"Minden gépre telepítsd helyi diszkre az image-et először. Másnaptól nem lesz negyed óra..."
Bevallom hősiesen, könnyebben megoldom, hogy minden bekapcsoláskor felkerüljön az image, mint azt, hogy mikor kell frissíteni. (Plusz nem hittem el, hogy nem lehet megoldani az iSCSI-s bootot, rákerestem, majd kipróbálom: http://it-joe.com/howtos/winiscsi.php )

"Egyedül arról kell gondoskodni, hogy minden gép megkapja a saját egyedi kulcsát és aktiválni tudja magát."
Hát, találtam egy ilyet: http://pogostick.net/~pnh/ntpasswd/MANUAL.txt
Azért annyira nem rajongok az ilyen módszerekért, és nem hiszem, hogy egy prezentációban előadható, hogy „és akkor meghackelem az image-ben található registryt”. :)

Hackelésre egyáltalán nincs szükség ehhez. Ilyen léptéken, üzleti célra, ahol megbízható működés kell, miért nézegetsz nem támogatott megoldásokat?
Viszont a reimaging rightshoz feltétel egy Mennyiségi Licencszerződés megléte (de nem kell a gépeket mind ebben licencelni!): http://www.microsoft.com/en-us/Licensing/learn-more/brief-reimaging-rig…

"Bevallom hősiesen, könnyebben megoldom, hogy minden bekapcsoláskor felkerüljön az image, mint azt, hogy mikor kell frissíteni"
Hogy érted ezt? A frissítést így is követned kell ugyanúgy, csak sokkal brutálisabb a teher: minden hotfixhez új image készítés, tesztelés, terítés...
Amúgy meg csak engedélyezned kell az adott frissítések leszedését a gépeknek...

Üdv,
Marci

Ha az osszes gep ugyanabbol a nehany image-bol megy, akkor konnyebben megoldja annak a par image-nek a felfrissiteset, mint ha a frissitesekkel kell bajlodni. Most nemreg is volt olyan frissites, amivel alaposan megszivtuk, mert teljesen random volt, hogy mely gepekre ment fel problema nelkul, es hol esett pofara (valami .Net nyelvi fajl frissites egyebkent). Ilyen jellegu rendszernel en is inkabb a kozos image-t preferalnam.
--
Blog | @hron84
Üzemeltető macik

Image-elni lehet Windowst is simán, csak az aktiváláskor rondít be a licenckulcs, ha nem olyanod van amit több gépen lehet aktiválni.
Linuxosként image-et, manuális aktiválást, puppet-et és lokális policy-t használnék így hirtelen. Biztos nem a legegyszerűbb, de más környezetben is hasznát veszed.

Azt amit feljebb vázoltál (távolról nyomni az image-et még akár lokális cache-en keresztül se) nem művelném, igazából felesleges is, nem kell a Windows-t állandóan újratenni.

Sajnos semmilyen manuális beavatkozás nem jöhet szóba.

Persze, simán meg lehetne csinálni azt is, hogy az ügyfél feltesz amit akar, csak legyen fent a kliensszoftver. Csakhogy ebben az esetben, ha valami nem megy, az nagy szívás.

Bármilyen furcsa, de technikailag még akkor is jobban járunk az image-es megoldással, ha néha egyedi hardvert kell kezelni (bár az elég ritka lesz, specifikálva van, hogy mit kezelünk, ha valakinek külön kívánsága van, legrosszabb esetben ott a DHL és társai, elküldi a cuccot, mi bepakoljuk a drivert az image-be, teszteljük, aztán visszaküldjük).
Ha a patch-keddet veszem figyelembe, image-frissítés havonta egyszer kell. A saját kliensszoftverünk lefrissíti magát a helyi szerverről, ha muszáj.

Ha nagyon spórolni akarok a sávszélességgel, csinálok egy „diffet” a régi és az új image között, és csak a különbözetet kell letölteni.

Ezt így szerintem el kéne felejteni mert túl komplikált a gyakorlatban.

Továbbra sem értem hogy a kliens miért szabja meg hogy Windows a kliensoprendszer?

Egyáltalán neked kell üzemeltetni is az egész cókmókot vagy csak az alkalmazást?

A frissítést jellemzően nem image-eléssel oldjuk meg mert nincs értelme.

A kliens program nem fut sehogy sem linuxon? Ha megoldható lenne Wine vagy portolással akkor egyszerűsödhetne a rendszer.
Akár PXE-boot-os kiosk is lehet megoldás, de akár egy "távoli asztal"-VNC is szóba-jöhetne.
Bár lehet valamit félreértettem, a rendszer felépítésében.

Bennem 3 kérdés merült fel:

- Az ügyfél szabja meg, hogy hogyan kell működnie a Te rendszerednek? (Mármint ért hozzá annyira?)
- Nem lenne egyszerűbb a kitelepített szerver is Linux alapú lenne?
- Nem lenne sokkal egyszerűbb, biztonságosabb inkább tartalék net elérés kiépíteni az üzletekbe, mint nyakadba venni a rendszer oda-vissza szinkronizációjából - és az inkonzisztenciából eredő - esetleges végeláthatatlan problémákat?

Az első kérdést nem értem. Az ügyfél nem szab meg semmit (nem informatikusok, nem értenek hozzá), nekem kell „dobozos” megoldást szállítanom, viszont részben az ő hardverére. Ami az enyém, az a szerver, az számára egy fekete doboz, max. ha jön egy riasztás a RAID-től, kiküldünk egy diszket, hogy cseréljék ki. (Ha komolyabb a probléma, akkor egy komplett szervert :)

A másodikra a válasz, hogy linux alapú (ha valamiért nagyon kell, átállhatok Windowsra, a szerveroldali kódot kb. egy nap alatt át tudom írni Windows alá, csak az inotify és a syslog linux-specifikus, illetve az Nginx konfigját kell implementálnom IIS-re).

A harmadikra a válasz nem olyan egyszerű:
Egyrészt, nem sok ráhatásom van arra, hogy az ügyfélnek milyen lehetőségei vannak.
Szép számmal vannak az országban helyek, ahol egy 8/1 mbps-es ADSL-nek is örülnének, ha menne. Apáméknál pl. nem megy, 3G talán lenne külső antennával, a Note II-m nem igazán lát mobilnetet... A 15-20 évvel ezelőtt épített irodaházak, plázák infrastruktújáról jobb nem is beszélni.
Másrészt, elég gondosan lett megtervezve az egész, probléma csak akkor lenne, ha a kliensszoftver frissebb, mint a szerveroldali alkalmazás. Erre nem olyan nagy gond odafigyelni.
A külföldi helyzetről pedig fogalmam nincs.
Bónusz: amikor a fejlesztést elkezdtük, rendszeres volt a fejlesztőktől a telefon (UPC, T), hogy elérhetetlen a rendszer. Nekem meg vígan ment (Digi). Hiába lenne egy UPC-s kapcsolat mellett egy T-s, ha éppen mindkettő szenved (nemegyszer volt rá példa).

Vékonykliens windows server-rel?

Annyira azert megsem, beagyazott eszkozoknel eloszeretettel hasznalnak soros/parhuzamos portot, lenyegesen egyszerubb, mint USB-vel szopni elsore.

Ami azt illeti, a legtobb cucc egyebkent USB-s soros portnak mutatja magat, vagy meg annak se, csak valami generikus eszkoznek, aztan majd a kezeloszoftver kezelgeti. Drivert irni nem olyan egyszeru, mint asztali programot...
--
Blog | @hron84
Üzemeltető macik

Akkor most a thread elején adok egy nagyon egyszerű választ, miért nem is foglalkoztunk azzal, hogy teszteljük, megy-e minden USB-s eszközünk:
1. Nem a mi eszközeink, nincs módunk tesztelésre.
2. Ha valahol mindössze 1-2 kliensgép van, akkor ahhoz vegyek egy Windows 2012-t, 1-2 RDP device CAL-lal? Aki ezt ajánlja, kifizeti az árkülönbözetet? Miközben semmivel nem könnyíti meg az életem.

(Ha az RDP atombiztosan menne, akkor hibrid megoldást használnék, sok gépnél RDP, kevés gépnél nem, de a „láttam már USB-s eszközöket működni RDP-n” és a „garantálom, hogy iPhone 10-zel is menni fog” között a különbség elég nagy.)

1. Akkor üzletileg elég fura dolgot nyomtok. Egyrészt te üzemeltetnél, de a gép sem a tied, meg a felhasználók is azt csinálnak/használnak amit akarnak...

2. Inkább azt nem értjük/értem hogy miért Windows-t futtatsz a kliensgépen mikor ez úgy tűnik hogy nem felel meg a céljaidnak.

1. Igen, elég fura, de ez egy kényszer-szülte megoldás, hogy más által beállított gépeken kell futnia a rendszernek.

2. Az, hogy a kliensszoftvernek ilyen környezetben kell futnia kb. egy éve felmerült igény, míg a 0.1-es verzió kb. 10 éves. Korábban két év alatt lett a WinForms WPF-re cserélve. A fejlesztő előbb akasztaná fel magát, mint el kezdjen gondolkodni, hogy mondjuk Gtk-ra írja át.

Megkaptad az üzenetemet?

Üdv,
Marci