PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

A PowerShell Desired State Configuration (DSC) nagymértékben leegyszerűsíti az operációs rendszer, a kiszolgálói szerepkörök és az alkalmazások üzembe helyezését és konfigurálását, ha több száz szerverrel rendelkezik.

De a DSC on-premises használatakor, pl. nem az MS Azure-ban, van néhány árnyalat. Különösen szembetűnőek, ha a szervezet nagy (300 munkaállomás és szerver), és még nem fedezte fel a konténerek világát:

  • Nincsenek teljes jelentések a rendszerek állapotáról. Ha egyes szervereken nem alkalmazták a szükséges konfigurációt, akkor ezen jelentések nélkül nem tudunk róla. A beépített jelentéskészítő szerverről meglehetősen nehéz információt szerezni, és sok gazdagép esetében ez is hosszú ideig tarthat.
  • Hiányzik a méretezhetőség és a hibatűrés. Lehetetlen olyan DSC pull webszerverek farmját építeni, amely egyetlen hibatűrő adatbázissal és közös tárolóval rendelkezik a konfigurációk, modulok és regisztrációs kulcsok számára.

Ma elmondom, hogyan oldhatja meg az első problémát, és hogyan kaphat adatokat jelentésekhez. Minden egyszerűbb lenne, ha az SQL adatbázisként használható lenne. KISASSZONY ígéreteket beépített támogatás csak a Windows Server 2019-ben vagy a Windows Server 1803-ban. Töltse le az adatokat az OleDB szolgáltatóval is nem fog működnimert a DSC Server egy elnevezett paramétert használ, amelyet az OleDbCommand nem támogat teljes mértékben.

Ezt a módszert találtam: azok számára, akik Windows Server 2012 és 2016 rendszert használnak, megteheti létre SQL-adatbázist használ a DSC lekérdezőkiszolgáló háttérprogramjaként. Ehhez létrehozunk egy „proxyt” egy .mdb fájl formájában a hozzá tartozó táblákkal, amely átirányítja a kliens jelentésekből kapott adatokat az SQL szerver adatbázisába.

Megjegyzés: Windows Server 2016 esetén használnia kell AccessDatabaseEngine2016x86mert a Microsoft.Jet.OLEDB.4.0 már nem támogatott.

A DSC pull szerver telepítésének folyamatát nem részletezem, nagyon jól le van írva itt. Csak megjegyeznék néhány pontot. Ha a DSC lehúzót ugyanazon a webszerveren telepítjük a WSUS-szal vagy a Kaspersky Security Centerrel, akkor a konfiguráció-létrehozó szkriptben a következő paramétereket kell módosítanunk:

  1. UseSecurityBestPractices     = $false

    Ellenkező esetben a TLS 1.0 le lesz tiltva, és nem tud csatlakozni az SQL-adatbázishoz. A Kaspersky Security Center szintén nem fog működni (a problémát a Kaspersky Security Center v11-ben kell megoldani).

  2. Enable32BitAppOnWin64   = $true

    Ha nem hajtja végre ezt a módosítást, akkor nem fogja tudni futtatni az AppPool DSC-kiszolgálót IIS-en a WSUS-szal.

  3. Amikor a DSC-kiszolgálót WSUS-szal telepíti, tiltsa le a DSC-hely statikus és dinamikus gyorsítótárazását.

Térjünk át a DSC szerver beállítására az SQL adatbázis használatához.

SQL adatbázis létrehozása

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

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  2. Hozzon létre egy fiókot az adatbázishoz való csatlakozáshoz. Először ellenőrizze, hogy az SQL-kiszolgáló lehetővé teszi-e a Windows- és az SQL-fiókok hitelesítését.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  3. Lépjen a Felhasználói leképezés szakaszhoz. Válassza ki az adatbázist, jelen esetben a DSC-t. Átadjuk az adatbázis tulajdonosának jogait.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  4. Kész.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

Séma létrehozása a DSC adatbázishoz

Kétféleképpen hozhat létre sémát DSC-adatbázishoz:

  • függetlenül, egy TSQL-szkripten keresztül
    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
  • adatok importálása az üres devices.mdb fájlból a PSDesiredStateConfiguration PS modul részeként az SQL Data Import Wizard segítségével.

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

  1. Az adatok importálásához futtassa az SQL Server importálási és exportálási varázslóját.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  2. Mi választjuk ki, honnan szerezzük be az adatokat – esetünkben egy Microsoft Access adatbázisról van szó. Kattintson a Tovább gombra.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  3. Válassza ki a fájlt, amelyből a diagramot importáljuk.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  4. Megjelöljük, hogy hova kell importálni - számunkra ez egy SQL adatbázis.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  5. Válassza ki az SQL szervert (Server Name) és azt az adatbázist, amelybe adatokat importálunk (DataBase).

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

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

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  7. Kiválasztjuk azokat a táblákat, amelyekből importálni fogjuk az adatbázissémát.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  8. Jelölje be az Azonnali futtatás jelölőnégyzetet, és kattintson a Befejezés gombra.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  9. Kész.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  10. Ennek eredményeként a táblázatoknak meg kell jelenniük a DSC adatbázisban.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

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

ODBC kapcsolat létrehozása SQL szerverrel. Feltételezzük, hogy az MS Access nincs telepítve a DSC-t futtató kiszolgálón, így az databases.mdb beállítása egy köztes gazdagépen történik, amelyre telepítve van az MS Access.

Hozzon létre egy rendszer ODBC kapcsolatot az SQL szerverrel (a kapcsolat bitségének meg kell egyeznie az MS Access bitességgel - 64 vagy 32). A következő használatával hozható létre:
- Powershell parancsmag:

Add-OdbcDsn –Name DSC –DriverName 'SQL Server' –Platform '<64-bit or 32-bit>' –DsnType System –SetPropertyValue @('Description=DSC Pull Server',"Server=<Name of your SQL Server>",'Trusted_Connection=yes','Database=DSC') –PassThru

— vagy manuálisan, a csatlakozási varázsló segítségével:

  1. Nyissa meg a Felügyeleti eszközöket. Az ODBC adatforrásokat a telepített MS Access verziójától függően választjuk ki. Lépjen a Rendszer DSN lapra, és hozzon létre rendszerkapcsolatot (Hozzáadás).

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  2. Jelezzük, hogy csatlakozni fogunk az SQL szerverhez. Kattintson a Befejezés gombra.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  3. Adja meg a kapcsolatot és a kiszolgáló nevét. Ezután létre kell hozni egy kapcsolatot azonos paraméterekkel a DSC szerveren.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  4. Jelezzük, hogy az SQL szerverhez való csatlakozáshoz egy korábban létrehozott bejelentkezést használunk DSC néven.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  5. Az adatbázist a DSC kapcsolat beállításainál adjuk meg.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  6. Kattintson a Befejezés gombra.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

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

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  8. Kész.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

Devices.mdb adatbázis létrehozása MS Accessben. Indítsa el az MS Access programot, és hozzon létre egy üres adatbázist, melynek neve devices.mdb.

PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  1. Lépjen a Külső adatok fülre, és kattintson az ODBC adatbázis elemre. A megjelenő ablakban válassza a Kapcsolt tábla létrehozása lehetőséget az adatforráshoz való csatlakozáshoz.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  2. Az új ablakban válassza ki a Gépi adatforrás fület, és kattintson az OK gombra. Az új ablakban adja meg a hitelesítő adatokat az SQL-kiszolgálóhoz való csatlakozáshoz.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  3. Válassza ki a csatolni kívánt táblázatokat. Jelölje be a Jelszó mentése négyzetet, és kattintson az OK gombra. Minden alkalommal mentse el a jelszót mindhárom táblához.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  4. Az indexekben a következőket kell kiválasztani:
    — TargetName a dbo_Devices tábla számára;

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

    — NodeName vagy IPAddress a dbo_RegistrationData számára;

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

    — NodeName vagy IPAddress a dbo_StatusReport számára.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  5. Nevezzük át a táblákat az MS Access-ben, nevezetesen: távolítsuk el a dbo_ előtagot, hogy a DSC tudja használni őket.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  6. Kész.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  7. Mentse el a fájlt, és zárja be az MS Access alkalmazást. Most átmásoljuk a kapott devices.mdb fájlt a DSC szerverre (alapértelmezés szerint a C: Program FilesWindowsPowershellDSCService-ben), és lecseréljük vele a meglévőt (ha létezik).

A DSC szerver konfigurálása SQL használatára

  1. Visszatérünk a DSC szerverre. Ahhoz, hogy a proxy fájlunkkal csatlakozhasson az SQL szerverhez, hozzunk létre egy új ODBC kapcsolatot a DSC szerveren. A névnek, a bitmélységnek és a csatlakozási beállításoknak meg kell egyezniük az MDB fájl létrehozásakor megadottakkal. Innen átmásolhatja a már beállított üres devices.mdb-t.
  2. A devices.mdb használatához módosítania kell a DSC lekérési szerver web.config fájlját (az alapértelmezett C:inetpubPSDSCPullServerweb.config):

- Windows Server 2012 rendszerhez

<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">

- Windows Server 2016 rendszerhez

<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">

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

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

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

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  2. Most nézzük meg, hogy a DSC lekérő szerver megfelelően működik-e. Ehhez az xPSDesiredStateConfiguration modul tartalmazza a pullserversetuptests.ps1 parancsfájlt. A szkript futtatása előtt telepítenie kell egy Pester nevű Powershell modult. Telepítse Install-Module -Name Pester.
  3. Nyissa meg a C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modul verziója>DSCPullServerSetupPullServerDeploymentVerificationTest-et (a példa 8.0.0.0.0 verziójában).

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  4. Nyissa meg a PullServerSetupTests.ps1-et, és ellenőrizze a DSC-kiszolgáló web.config fájljának elérési útját. A szkriptet ellenőrző web.config elérési útja pirossal van kiemelve. Ha szükséges, ezt az utat változtatjuk.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  5. Futtassa a pullserversetuptests.ps1 fájlt
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

  6. Az SQL Management Studioban azt látjuk, hogy a felügyelt gazdagépek jelentéseket küldenek a DSC jelentéskészítő kiszolgálónak, és az adatok az SQL-kiszolgáló DSC-adatbázisába kerülnek.

    PowerShell kívánt állapot konfigurációja és fájl: 1. rész. A DSC Pull Server konfigurálása SQL adatbázissal való együttműködésre

Ez minden. A következő cikkekben azt tervezem, hogy elmondom, hogyan készítsünk jelentéseket a kapott adatokról, és kitérek a hibatűréssel és a skálázhatósággal kapcsolatos kérdésekre.

Forrás: will.com

Hozzászólás