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
Ezt a módszert találtam: azok számára, akik Windows Server 2012 és 2016 rendszert használnak, megteheti
Megjegyzés: Windows Server 2016 esetén használnia kell
A DSC pull szerver telepítésének folyamatát nem részletezem, nagyon jól le van írva
-
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).
-
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.
- 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
- Hozzunk létre egy üres SQL adatbázist DSC néven.
- 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.
- 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.
- Kész.
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ó.
- Az adatok importálásához futtassa az SQL Server importálási és exportálási varázslóját.
- 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.
- Válassza ki a fájlt, amelyből a diagramot importáljuk.
- Megjelöljük, hogy hova kell importálni - számunkra ez egy SQL adatbázis.
- Válassza ki az SQL szervert (Server Name) és azt az adatbázist, amelybe adatokat importálunk (DataBase).
- 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).
- Kiválasztjuk azokat a táblákat, amelyekből importálni fogjuk az adatbázissémát.
- Jelölje be az Azonnali futtatás jelölőnégyzetet, és kattintson a Befejezés gombra.
- Kész.
- Ennek eredményeként a táblázatoknak meg kell jelenniük a DSC adatbázisban.
.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:
- 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).
- Jelezzük, hogy csatlakozni fogunk az SQL szerverhez. Kattintson a Befejezés gombra.
- Adja meg a kapcsolatot és a kiszolgáló nevét. Ezután létre kell hozni egy kapcsolatot azonos paraméterekkel a DSC szerveren.
- Jelezzük, hogy az SQL szerverhez való csatlakozáshoz egy korábban létrehozott bejelentkezést használunk DSC néven.
- Az adatbázist a DSC kapcsolat beállításainál adjuk meg.
- Kattintson a Befejezés gombra.
- A beállítás befejezése előtt ellenőrizzük, hogy a kapcsolat működik-e (Test Data Source).
- Kész.
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.
- 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.
- 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.
- 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.
- Az indexekben a következőket kell kiválasztani:
— TargetName a dbo_Devices tábla számára;
— NodeName vagy IPAddress a dbo_RegistrationData számára;
— NodeName vagy IPAddress a dbo_StatusReport számára. - 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.
- Kész.
- 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
- 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.
- 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
- Ellenőrizzük, hogy a DSC szerver elérhető-e webböngészőn keresztül.
- 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.
- Nyissa meg a C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modul verziója>DSCPullServerSetupPullServerDeploymentVerificationTest-et (a példa 8.0.0.0.0 verziójában).
- 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.
- Futtassa a pullserversetuptests.ps1 fájlt
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - 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.
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