PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

A PowerShell Desired State Configuration (DSC) jelentősen megkönnyíti az operációs rendszer, a szerver szerepek és az alkalmazások telepítését és konfigurálását, amikor több száz szerverrel dolgozunk.

De a DSC on-premises, azaz nem az MS Azure-ban történő használatakor néhány tényező merül fel. Ezek különösen érezhetőek, ha a szervezet nagy (300 vagy annál több munkaállomással és szerverrel rendelkezik) és még nem nyitotta meg a konténerek világát:

  • Nincs teljes körű jelentés az informatikai rendszerek állapotáról. Ha a szükséges konfiguráció nem került alkalmazásra bizonyos szervereken, akkor ezek a jelentések nélkül nem fogunk értesülni róla. Az integrált jelentésszerverről az információk beszerzése meglehetősen nehézkes, nagy számú hoszt esetén pedig még időigényesebb.
  • Hiányzik a skálázhatóság és a hibatűrés. Nem lehet DSC lekérdező webkiszolgáló farmot építeni, amelynek egységes hibatűrő adatbázisa és közös tárolója lenne a konfigurációs mof-fájlok, modulok és regisztrációs kulcsok számára.

Ma arról fogok beszélni, hogyan lehet megoldani az első problémát, és adatokat szerezni a jelentések készítéséhez. Minden egyszerűbb lenne, ha SQL-t használhatnánk adatbázisként. MS ígér beépített támogatása csak Windows Server 2019-ben vagy Windows Server 1803-as verzióban érhető el. Az OleDB provider-en keresztül adatokat gyűjteni szintén nem lehetséges, mivel a DSC-szerver név szerinti paramétert használ, amelyet az OleDbCommand nem támogat teljesen.

Találtam egy ilyen megoldást: azok számára, akik Windows Server 2012-t és 2016-t használnak, lehetőség van személyre lehet SQL adatbázis használatára a lekérdező DSC-szerver hátsó végének. Ehhez létrehozunk egy "proxy-t" egy .mdb fájl formájában összekapcsolt táblákkal, amely irányítja az ügyfelektől kapott jelentések adatokat a SQL-server adatbázisába.

Megjegyzés: Windows Server 2016 esetén szükséges használni AccessDatabaseEngine2016x86, mivel a Microsoft.Jet.OLEDB.4.0 már nem támogatott.

Nem fogom részletesen tárgyalni a lekérdező DSC-szerver telepítési folyamatát, nagyon jól le van írva itt. Csak pár dolgot említek meg. Ha a lekérdező DSC-t egy webszerverre telepítjük WSUS-szal vagy Kaspersky Security Center-rel, akkor a konfigurációs fájl létrehozásához szükséges szkriptben az alábbi paramétereket kell módosítani:

  1. UseSecurityBestPractices     = $false

    Különben a TLS 1.0 le lesz tiltva, és nem tud kapcsolódni a SQL adatbázishoz. A Kaspersky Security Center sem fog működni (a problémát a Kaspersky Security Center v11-ben kell megoldani).

  2. Enable32BitAppOnWin64   = $true

    Ha ezt a módosítást nem hajtjuk végre, nem tudjuk elindítani az AppPool DSC-szerverét IIS-en a WSUS-sal.

  3. A DSC-szerver WSUS-szal való telepítésekor tiltsa le a statikus és dinamikus gyorsítást a DSC webhely számára.

Lépjünk tovább a DSC-szerver SQL adatbázis használatának beállítására.

SQL adatbázis létrehozása

  1. Hozzunk létre egy üres SQL adatbázist DSC néven.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  2. Hozzunk létre egy felhasználói fiókot a kapcsolódáshoz ehhez az adatbázishoz. Először ellenőrizzük, hogy az SQL-szerveren engedélyezve van a Windows és SQL felhasználói fiókok hitelesítése.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  3. Átmegyünk a Felhasználói hozzárendelés részhez. Kiválasztjuk az adatbázist, jelen esetben – DSC. Megadjuk az adatbázis tulajdonosi jogosultságait.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  4. Kész.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

Sémák létrehozása a DSC adatbázishoz

A DSC adatbázishoz a sémát kétféleképpen hozhatjuk létre:

  • önállóan, TSQL szkripttel
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Devices](
    [TargetName] [nvarchar](255) NOT NULL,
    [ConfigurationID] [nvarchar](255) NOT NULL,
    [ServerCheckSum] [nvarchar](255) NOT NULL,
    [TargetCheckSum] [nvarchar](255) NOT NULL,
    [NodeCompliant] [bit] NOT NULL,
    [LastComplianceTime] [datetime] NULL,
    [LastHeartbeatTime] [datetime] NULL,
    [Dirty] [bit] NOT NULL,
    [StatusCode] [int] NULL
    ) ON [PRIMARY]
    GO
     
    CREATE TABLE [dbo].[RegistrationData](
    [AgentId] [nvarchar](255) NOT NULL,
    [LCMVersion] [nvarchar](255) NULL,
    [NodeName] [nvarchar](255) NULL,
    [IPAddress] [nvarchar](255) NULL,
    [ConfigurationNames] [nvarchar](max) NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
     
    CREATE TABLE [dbo].[StatusReport](
    [JobId] [nvarchar](50) NOT NULL,
    [Id] [nvarchar](50) NOT NULL,
    [OperationType] [nvarchar](255) NULL,
    [RefreshMode] [nvarchar](255) NULL,
    [Status] [nvarchar](255) NULL,
    [LCMVersion] [nvarchar](50) NULL,
    [ReportFormatVersion] [nvarchar](255) NULL,
    [ConfigurationVersion] [nvarchar](255) NULL,
    [NodeName] [nvarchar](255) NULL,
    [IPAddress] [nvarchar](255) NULL,
    [StartTime] [datetime] NULL,
    [EndTime] [datetime] NULL,
    [Errors] [nvarchar](max) NULL,
    [StatusData] [nvarchar](max) NULL,
    [RebootRequested] [nvarchar](255) NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
  • az adatokat importálni a üres devices.mdb-ből a PSDesiredStateConfiguration PS-modul részeként az SQL Adatvarázsló segítségével.

    A Devices.mdb, amellyel dolgozni fogunk, a C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer útvonalon található.

  1. Az adatok importálásához indítsa el az SQL Server Import and Export Wizard-ot.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  2. Válassza ki, honnan szeretnénk adatokat gyűjteni – az esetünkben ez a Microsoft Access adatbázis. Kattintson a Tovább gombra.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  3. Válassza ki a fájlt, ahonnan az sémát importálni fogjuk.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  4. Adja meg, hova szeretnénk importálni – esetünkben ez SQL adatbázis.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  5. Válassza ki az SQL szervert (Szerver név) és az adatbázist, ahová importálni fogjuk az adatokat (Adatbázis).

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  6. Válassza a Másolás adatokat egy vagy több táblából vagy nézetből (adatok másolása táblákból vagy nézetekből) lehetőséget.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  7. Válassza ki azokat a táblákat, amelyekből az adatbázis sémáját importálni szeretnénk.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  8. Jelölje be az Azonnali futtatás lehetőséget, majd kattintson a Befejezés gombra.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  9. Kész.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  10. Ennek eredményeként a DSC adatbázisban tábláknak kell megjelenniük.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

A .mdb „proxy” fájl beállítása

ODBC csatlakozás létrehozása SQL szerverhez. Feltételezhető, hogy az MS Access nincs telepítve a DSC-vel rendelkező szerveren, ezért a databases.mdb beállítása egy köztes hoszton történik, amelyen telepítve van az MS Access.

Hozzunk létre egy rendszer ODBC csatlakozást az SQL szerverhez (a csatlakozás bitmérete egyezzen meg az MS Access bitméretével – 64 vagy 32). Ezt a következő módokon hozhatjuk létre:
— PowerShell parancs segítségével:

Add-OdbcDsn –Name DSC –DriverName 'SQL Server' –Platform '' –DsnType System –SetPropertyValue @('Description=DSC Pull Server',"Server=", 'Trusted_Connection=yes', 'Database=DSC') –PassThru

— vagy manuálisan, a csatlakozási varázslóval:

  1. Nyissuk meg az Administrative tools-t. Válasszuk az ODBC adatforrásokat az MS Access telepített verziója szerint. Lépjünk a System DSN fülre és hozzunk létre egy rendszer csatlakozást (Add).

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  2. Jegezzük be, hogy SQL szerverhez csatlakozunk. Kattintsunk a Finish gombra.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  3. Adjuk meg a csatlakozáshoz szükséges nevet és szervert. Ezután a DSC szerveren ugyanazokkal a paraméterekkel kell csatlakozást létrehozni.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  4. Jegezzük be, hogy SQL szerverhez való csatlakozáskor az általunk korábban létrehozott DSC nevű bejelentkezést használjuk.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  5. Adjuk meg az adatbázist a DSC csatlakozási beállításainál.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  6. Kattintsunk a Finish gombra.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  7. A beállítások befejezése előtt ellenőrizzük, hogy a csatlakozás működik (Test Data Source).

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  8. Kész.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

devices.mdb adatbázis létrehozása MS Access-ben. Indítsuk el az MS Access-t és hozzunk létre egy üres devices.mdb adatbázist.

PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  1. Lépjünk a Külső adatok fülre, kattintsunk az ODBC adatbázisra. A megjelenő ablakban válasszuk az Adatforrással való kapcsolathoz tartozó összekapcsolt táblázat létrehozása lehetőséget.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  2. Az új ablakban válasszuk a Machine Data Source fület és kattintsunk az OK gombra. Az új ablakban adjuk meg a SQL szerverhez való csatlakozáshoz szükséges hitelesítő adatokat.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  3. Válasszuk ki az összekapcsolandó táblázatokat. Pipáljuk be a Jelszó megőrzése lehetőséget és kattintsunk az OK gombra. Jelszót minden egyes táblázathoz meg kell őrizni.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  4. Az indexeknél a következőket kell választani:
    — TargetName a dbo_Devices táblához;

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

    — NodeName vagy IPAddress a dbo_RegistrationData-hoz;

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

    — NodeName vagy IPAddress a dbo_StatusReport-hoz.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  5. A táblázatokat átnevezzük az MS Access-ben, nevezetesen: eltávolítjuk a dbo_ előtagot, hogy a DSC használhassa őket.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  6. Kész.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  7. Mentjük a fájlt és bezárjuk az MS Access-t. Most áttesszük a létrehozott devices.mdb-t a DSC szerverre (alapértelmezés szerint a C:Program FilesWindowsPowershellDSCService mappába) és helyettesítjük a meglévő fájlt (ha van ilyen).

DSC szerver beállítása SQL használatához

  1. Visszatérünk a DSC szerverhez. Az SQL szerverhez a proxy fájlunkkal való csatlakozáshoz új ODBC kapcsolatot kell létrehoznunk a DSC szerveren. A név, a bitméret és a kapcsolati beállítások ugyanazok kell, hogy legyenek, mint az MDB fájl létrehozásakor. A már beállított üres devices.mdb fájlt innen is átmásolhatjuk.
  2. A devices.mdb használatához módosításokat kell végeznünk a DSC lekérdező szerver web.config fájljában (alapértelmezés szerint – C:inetpubPSDSCPullServerweb.config):

— Windows Server 2012-hez

\n

— Windows Server 2016-hoz

\n

Ezzel befejeződik a DSC szerver beállítása.

A DSC szerver működésének ellenőrzése

  1. Ellenőrizzük, hogy a DSC szerver elérhető-e web böngészőn keresztül.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  2. Most ellenőrizzük, hogy a DSC lekérdező szerver megfelelően működik-e. Ehhez az xPSDesiredStateConfiguration modul részeként található pullserversetuptests.ps1 scriptet kell futtatnunk. A script futtatása előtt telepíteni kell a Pester nevű Powershell modult. Telepítsük az Install-Module -Name Pester paranccsal.
  3. Nyissuk meg a C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfigurationDSCPullServerSetupPullServerDeploymentVerificationTest fájlt (példánkban a verzió 8.0.0.0.0).

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  4. Nyissuk meg a PullServerSetupTests.ps1 fájlt, és ellenőrizzük a DSC szerver web.config fájljának elérési útját. A script azt a web.config elérési utat fogja ellenőrizni, amelyet pirossal kiemeltem. Ha szükséges, módosítsuk ezt az utat.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  5. Futtassuk a pullserversetuptests.ps1 scriptet
    Invoke-Pester .PullServerSetupTests.ps1
    Minden működik.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

  6. Az SQL Management Studio-ban láthatjuk, hogy az adminisztrált hosztok jelentéseket küldenek a DSC jelentéskészítő szerverre, és az adatok bekerülnek a DSC adatbázisába az SQL szerveren.

    PowerShell Desired State Configuration és a fájlcsiszoló: 1. rész. A DSC Pull Server beállítása SQL adatbázissal való munkához

Ezzel kész is vagyunk. A következő cikkekben tervezem bemutatni, hogyan készíthetünk jelentéseket a begyűjtött adatok alapján, és foglalkozom a hibatűréssel és a skálázhatósággal kapcsolatos kérdésekkel.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster