PowerShell Desired State Configuration (DSC) vergemaklik die werk om die bedryfstelsel, bedienerrolle en toepassings te ontplooi en te konfigureer aansienlik wanneer u honderde bedieners het.
Maar wanneer DSC op die perseel gebruik word, d.w.s. nie in MS Azure nie, daar is 'n paar nuanses. Hulle is veral opvallend as die organisasie groot is (vanaf 300 werkstasies en bedieners) en nog nie die wêreld van houers ontdek het nie:
- Daar is geen volledige verslae oor die status van stelsels nie. As die vereiste konfigurasie nie op sommige bedieners toegepas is nie, sal ons sonder hierdie verslae nie daarvan weet nie. Dit is nogal moeilik om inligting van die ingeboude verslagbediener te bekom, en vir 'n groot aantal gashere kan dit ook lank neem.
- Het nie skaalbaarheid en fouttoleransie nie. Dit is onmoontlik om 'n plaas van DSC-trekwebbedieners te bou wat 'n enkele foutverdraagsame databasis en 'n gemeenskaplike berging van mof-lêers vir konfigurasies, modules en registrasiesleutels sal hê.
Vandag sal ek jou vertel hoe jy die eerste probleem kan oplos en data vir verslaggewing kan kry. Alles sou eenvoudiger wees as SQL as 'n databasis gebruik kan word. MS
Ek het hierdie metode gevind: vir diegene wat Windows Server 2012 en 2016 gebruik, kan jy
Let wel: Vir Windows Server 2016 moet jy gebruik
Ek gaan nie in detail in oor die proses om 'n DSC-trekbediener te ontplooi nie, dit is baie goed beskryf
-
UseSecurityBestPractices = $false
Andersins sal TLS 1.0 gedeaktiveer word en jy sal nie aan die SQL-databasis kan koppel nie. Kaspersky Sekuriteitsentrum sal ook nie werk nie (die probleem moet in Kaspersky Sekuriteitsentrum v11 opgelos word).
-
Enable32BitAppOnWin64 = $true
As jy nie hierdie verandering maak nie, sal jy nie die AppPool DSC-bediener op IIS met WSUS kan laat loop nie.
- As u DSC Server met WSUS installeer, deaktiveer statiese en dinamiese kas vir die DSC-werf.
Kom ons gaan voort met die opstel van die DSC-bediener om die SQL-databasis te gebruik.
Skep 'n SQL-databasis
- Kom ons skep 'n leë SQL-databasis met die naam DSC.
- Kom ons skep 'n rekening om aan hierdie databasis te koppel. Maak eers seker dat die SQL-bediener verifikasie van beide Windows- en SQL-rekeninge toelaat.
- Gaan na die afdeling Gebruikerskartering. Kies die databasis, in hierdie geval DSC. Ons gee die regte van die databasis eienaar.
- Gedoen.
Skep 'n skema vir die DSC-databasis
Daar is twee maniere om 'n skema vir 'n DSC-databasis te skep:
- onafhanklik, deur 'n TSQL-skrip
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
- invoer data vanaf leë toestelle.mdb as deel van die PS-module PSDesiredStateConfiguration deur die SQL Data Import Wizard.
Die Devices.mdb waarmee ons sal werk, is geleë in C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Om data in te voer, hardloop die SQL Server Invoer en Uitvoer Wizard.
- Ons kies waar ons die data vandaan gaan kry – in ons geval is dit 'n Microsoft Access-databasis. Klik op Volgende.
- Kies die lêer waaruit ons die diagram invoer.
- Ons dui aan waar om in te voer - vir ons is dit 'n SQL databasis.
- Kies die SQL-bediener (bedienernaam) en die databasis waarin ons data sal invoer (databasis).
- Kies die opsie Kopieer data van een of meer tabelle of aansigte (kopieer data van tabelle of aansigte).
- Ons kies die tabelle waaruit ons die databasisskema sal invoer.
- Merk die Run Onmiddellik-merkblokkie en klik Voltooi.
- Gedoen.
- As gevolg hiervan moet tabelle in die DSC-databasis verskyn.
Stel 'n .mdb-“proxy”-lêer op
Skep 'n ODBC-verbinding met 'n SQL-bediener. Daar word aanvaar dat MS Access nie geïnstalleer is op die bediener wat DSC gebruik nie, dus word databasisse.mdb opgestel op 'n tussengasheer met MS Access geïnstalleer.
Kom ons skep 'n stelsel ODBC-verbinding met die SQL-bediener (die verbindingsbitheid moet ooreenstem met die MS Access-bitheid - 64 of 32). Dit kan geskep word met behulp van:
- Powershell cmdlet:
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
- of met die hand, met behulp van die verbindingsassistent:
- Maak Administratiewe gereedskap oop. Ons kies ODBC-databronne afhangende van die weergawe van geïnstalleerde MS Access. Gaan na die Stelsel DSN-oortjie en skep 'n stelselverbinding (Voeg by).
- Ons dui aan dat ons aan die SQL-bediener sal koppel. Klik Voltooi.
- Spesifiseer die naam en bediener om aan te koppel. Dan sal 'n verbinding met dieselfde parameters op die DSC-bediener geskep moet word.
- Ons dui aan dat ons 'n voorheen geskepde aanmelding met die naam DSC gebruik om aan die SQL-bediener te koppel.
- Ons spesifiseer die databasis in die DSC-verbindingsinstellings.
- Klik Voltooi.
- Voordat ons die opstelling voltooi, kyk ons of die verbinding werk (Toets Databron).
- Gedoen.
Skep 'n devices.mdb-databasis in MS Access. Begin MS Access en skep 'n leë databasis genaamd devices.mdb.
- Gaan na die Eksterne Data-oortjie en klik op ODBC-databasis. In die venster wat verskyn, kies Skep 'n gekoppelde tabel om aan die databron te koppel.
- In die nuwe venster, kies die Masjiendatabron-oortjie en klik OK. Voer in die nuwe venster die geloofsbriewe in om aan die SQL-bediener te koppel.
- Kies die tabelle wat gekoppel moet word. Merk die Stoor wagwoord blokkie en klik OK. Stoor die wagwoord elke keer vir al drie tabelle.
- In die indekse moet jy die volgende kies:
— Doelnaam vir die dbo_Devices-tabel;
— NodeName of IPAddress vir dbo_RegistrationData;
— NodeName of IPAddress vir dbo_StatusReport. - Kom ons hernoem die tabelle in MS Access, naamlik: verwyder die dbo_ voorvoegsel sodat DSC dit kan gebruik.
- Gedoen.
- Stoor die lêer en maak MS Access toe. Nou kopieer ons die resulterende devices.mdb na die DSC-bediener (by verstek in C: Program FilesWindowsPowershellDSCService) en vervang die bestaande een daarmee (as dit bestaan).
Konfigureer DSC-bediener om SQL te gebruik
- Ons keer terug na die DSC-bediener. Om met ons proxy-lêer aan die SQL-bediener te koppel, kom ons skep 'n nuwe ODBC-verbinding op die DSC-bediener. Die naam, bisdiepte en verbindinginstellings moet dieselfde wees as wanneer die MDB-lêer geskep word. Jy kan die reeds gekonfigureerde leë devices.mdb van hier af kopieer.
- Om devices.mdb te gebruik, moet jy veranderinge aan die web.config van die DSC pull-bediener maak (verstek is C:inetpubPSDSCPullServerweb.config):
- vir Windows Server 2012
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
- vir Windows Server 2016
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
Dit voltooi die DSC-bedieneropstelling.
Kontroleer die funksionaliteit van die DSC-bediener
- Kom ons kyk of die DSC-bediener toeganklik is deur 'n webblaaier.
- Kom ons kyk nou of die DSC-trekbediener reg werk. Om dit te doen, sluit die xPSDesiredStateConfiguration-module die pullserversetuptests.ps1-skrip in. Voordat u hierdie skrip uitvoer, moet u 'n Powershell-module genaamd Pester installeer. Installeer dit Installeer-Module -Noem Pester.
- Maak C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest oop (in die voorbeeld weergawe 8.0.0.0.0).
- Maak PullServerSetupTests.ps1 oop en gaan die pad na die web.config van die DSC-bediener na. Die pad na web.config, wat die skrif sal kontroleer, is in rooi uitgelig. Indien nodig, verander ons hierdie pad.
- Begin pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - In SQL Management Studio sien ons dat geadministreerde gashere verslae na die DSC-verslagdoeningsbediener stuur en die data beland in die DSC-databasis op die SQL-bediener.
Dis al. In die volgende artikels beplan ek om jou te vertel hoe om verslae te bou oor die data wat verkry is, en ek sal kwessies rakende fouttoleransie en skaalbaarheid aanraak.
Bron: will.com