PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

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 beloftes ingeboude ondersteuning slegs in Windows Server 2019 of in gebou Windows-bediener 1803. Haal data ook met behulp van OleDB-verskaffer sal mislukomdat DSC Server 'n genoemde parameter gebruik wat nie ten volle deur OleDbCommand ondersteun word nie.

Ek het hierdie metode gevind: vir diegene wat Windows Server 2012 en 2016 gebruik, kan jy tune die gebruik van 'n SQL-databasis as 'n backend vir die DSC-navraagbediener. Om dit te doen, sal ons 'n "proxy" skep in die vorm van 'n .mdb-lêer met geassosieerde tabelle, wat die data wat vanaf kliëntverslae ontvang word na die SQL-bedienerdatabasis sal herlei.

Let wel: Vir Windows Server 2016 moet jy gebruik AccessDatabaseEngine2016x86omdat Microsoft.Jet.OLEDB.4.0 nie meer ondersteun word nie.

Ek gaan nie in detail in oor die proses om 'n DSC-trekbediener te ontplooi nie, dit is baie goed beskryf hier. Ek sal net 'n paar punte opmerk. As ons die DSC-trekker op dieselfde webbediener met WSUS of Kaspersky Security Center ontplooi, dan moet ons in die konfigurasieskeppingskrip die volgende parameters verander:

  1. 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).

  2. Enable32BitAppOnWin64   = $true

    As jy nie hierdie verandering maak nie, sal jy nie die AppPool DSC-bediener op IIS met WSUS kan laat loop nie.

  3. 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

  1. Kom ons skep 'n leë SQL-databasis met die naam DSC.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  2. 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.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  3. Gaan na die afdeling Gebruikerskartering. Kies die databasis, in hierdie geval DSC. Ons gee die regte van die databasis eienaar.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  4. Gedoen.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

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.

  1. Om data in te voer, hardloop die SQL Server Invoer en Uitvoer Wizard.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  2. Ons kies waar ons die data vandaan gaan kry – in ons geval is dit 'n Microsoft Access-databasis. Klik op Volgende.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  3. Kies die lêer waaruit ons die diagram invoer.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  4. Ons dui aan waar om in te voer - vir ons is dit 'n SQL databasis.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  5. Kies die SQL-bediener (bedienernaam) en die databasis waarin ons data sal invoer (databasis).

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  6. Kies die opsie Kopieer data van een of meer tabelle of aansigte (kopieer data van tabelle of aansigte).

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  7. Ons kies die tabelle waaruit ons die databasisskema sal invoer.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  8. Merk die Run Onmiddellik-merkblokkie en klik Voltooi.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  9. Gedoen.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  10. As gevolg hiervan moet tabelle in die DSC-databasis verskyn.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

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:

  1. 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).

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  2. Ons dui aan dat ons aan die SQL-bediener sal koppel. Klik Voltooi.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  3. Spesifiseer die naam en bediener om aan te koppel. Dan sal 'n verbinding met dieselfde parameters op die DSC-bediener geskep moet word.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  4. Ons dui aan dat ons 'n voorheen geskepde aanmelding met die naam DSC gebruik om aan die SQL-bediener te koppel.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  5. Ons spesifiseer die databasis in die DSC-verbindingsinstellings.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  6. Klik Voltooi.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  7. Voordat ons die opstelling voltooi, kyk ons ​​of die verbinding werk (Toets Databron).

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  8. Gedoen.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

Skep 'n devices.mdb-databasis in MS Access. Begin MS Access en skep 'n leë databasis genaamd devices.mdb.

PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  1. 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.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  2. 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.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  3. Kies die tabelle wat gekoppel moet word. Merk die Stoor wagwoord blokkie en klik OK. Stoor die wagwoord elke keer vir al drie tabelle.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  4. In die indekse moet jy die volgende kies:
    — Doelnaam vir die dbo_Devices-tabel;

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

    — NodeName of IPAddress vir dbo_RegistrationData;

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

    — NodeName of IPAddress vir dbo_StatusReport.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  5. Kom ons hernoem die tabelle in MS Access, naamlik: verwyder die dbo_ voorvoegsel sodat DSC dit kan gebruik.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  6. Gedoen.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  7. 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

  1. 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.
  2. 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

  1. Kom ons kyk of die DSC-bediener toeganklik is deur 'n webblaaier.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  2. 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.
  3. Maak C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest oop (in die voorbeeld weergawe 8.0.0.0.0).

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  4. 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.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  5. Begin pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

  6. 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.

    PowerShell Desired State Configuration en lêer: deel 1. Konfigureer DSC Pull Server om met 'n SQL databasis te werk

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

Voeg 'n opmerking