PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

PowerShell Desired State Configuration (DSC) förenklar arbetet med att distribuera och konfigurera operativsystem, serverroller och applikationer nÀr man har hundratals servrar.

Men vid anvÀndning av DSC pÄ plats, det vill sÀga inte i MS Azure, uppstÄr ett par nyanser. De kÀnns sÀrskilt om organisationen Àr stor (frÄn 300 arbetsstationer och servrar) och containers fortfarande inte har införts:

  • Det finns inga fullstĂ€ndiga rapporter om systemstatus. Om önskad konfiguration inte har tillĂ€mpats pĂ„ vissa servrar, sĂ„ kommer vi inte att fĂ„ veta det utan dessa rapporter. Att fĂ„ information frĂ„n den inbyggda rapportservern Ă€r ganska svĂ„rt, och för ett stort antal vĂ€rdar – dessutom tidskrĂ€vande.
  • Det saknas skalbarhet och redundans. Det gĂ„r inte att bygga en farm av DSC-förfrĂ„gningswebbservrar som har en gemensam redundansdatabas och ett gemensamt utrymme för mof-filer för konfigurationer, moduler och registreringsnycklar.

Idag kommer jag att berÀtta hur man kan lösa det första problemet och fÄ data för att skapa rapporter. Allt skulle vara enklare om man kunde anvÀnda SQL som databas. promises MS har inbyggt stöd endast i Windows Server 2019 eller i bygget av Windows Server 1803. Att hÀmta data med hjÀlp av OleDB-provider gÄr inte heller inte att göra, eftersom DSC-servern anvÀnder ett namngivet parameter som inte fullt ut stöds av OleDbCommand.

Jag har funnit ett sÄdant sÀtt: för dem som anvÀnder Windows Server 2012 och 2016 gÄr det anpassas att anvÀnda en SQL-databas som backend för DSC-servern. För detta ÀndamÄl skapar vi en "proxy" i form av en .mdb-fil med lÀnkade tabeller, som kommer att omdirigera data som samlas in frÄn klientrapporter till SQL-serverdatabasen.

Obs: för Windows Server 2016 Àr det nödvÀndigt att anvÀnda AccessDatabaseEngine2016x86, eftersom Microsoft.Jet.OLEDB.4.0 inte lÀngre stöds.

Jag kommer inte att gÄ in pÄ detaljer om processen att distribuera DSC-servern, den Àr mycket vÀl beskriven ). Ett typiskt exempel pÄ anvÀndning:. Jag vill bara pÄpeka ett par punkter. Om vi distribuerar DSC-servern pÄ en webbserver tillsammans med WSUS eller Kaspersky Security Center, sÄ mÄste vi Àndra följande parametrar i konfigurationsskapande skriptet:

  1. UseSecurityBestPractices     = $false

    Annars kommer TLS 1.0 att inaktiveras, och du kommer inte att kunna ansluta till SQL-databasen. Kaspersky Security Center kommer inte heller att fungera (problemet bör lösas i Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Om du inte gör denna Àndring kommer AppPool DSC-servern pÄ IIS med WSUS inte att gÄ att starta.

  3. Vid installation av DSC-server tillsammans med WSUS, stÀng av statisk och dynamisk cache för DSC-webbplatsen.

LÄt oss gÄ vidare med att konfigurera DSC-servern för att anvÀnda SQL-databasen.

Skapa SQL-databas

  1. Vi skapar en tom SQL-databas med namnet DSC.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  2. Vi skapar ett konto för att ansluta till denna databas. Kontrollera först att bÄde Windows- och SQL-autentisering Àr aktiverad pÄ SQL-servern.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  3. Vi gĂ„r till avsnittet AnvĂ€ndarmappning. VĂ€lj databasen, i det hĂ€r fallet – DSC. Ge rĂ€ttigheter till databasens Ă€gare.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  4. Klart.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

Skapa ett schema för databasen DSC

Du kan skapa ett schema för databasen DSC pÄ tvÄ sÀtt:

  • sjĂ€lvstĂ€ndigt, genom en TSQL-skript
    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
  • importera data frĂ„n den tomma devices.mdb i PS-modulen PSDesiredStateConfiguration via SQL Import Wizard.

    Devices.mdb, som vi kommer att arbeta med, finns i C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. För att importera data, kör SQL Server Import and Export Wizard.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  2. VĂ€lj varifrĂ„n vi ska hĂ€mta data – i vĂ„rt fall Ă€r detta Microsoft Access-databasen. Klicka pĂ„ NĂ€sta.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  3. VÀlj filen dÀrifrÄn vi importerar schemat.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  4. Ange vart vi ska importera – det Ă€r vĂ„r SQL-databas.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  5. VĂ€lj SQL-server (Server Name) och den databas som vi kommer att importera data till (DataBase).

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  6. VÀlj alternativet Kopiera data frÄn en eller flera tabeller eller vyer.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  7. VÀlj de tabeller frÄn vilka vi ska importera databasens schema.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  8. Markera rutan Kör omedelbart och klicka pÄ Slutför.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  9. Klart.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  10. Som ett resultat bör tabellerna finnas i DSC-databasen.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

Konfigurera .mdb "proxy"-filen

Skapa en ODBC-anslutning till SQL-servern. Det förutsÀtts att MS Access inte Àr installerat pÄ servern med DSC, sÄ instÀllningen av databases.mdb görs pÄ en mellanliggande vÀrd med installerad MS Access.

Vi skapar en system-ODBC-anslutning till SQL-servern (anslutningens bitdjup mĂ„ste matcha MS Access bitdjup – 64 eller 32). Detta kan göras med:
— PowerShell cmdlet:

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

— eller manuellt med hjĂ€lp av anslutningsguiden:

  1. Öppna Administrativa verktyg. VĂ€lj ODBC-datakĂ€llor beroende pĂ„ versionen av installerad MS Access. GĂ„ till fliken System DSN och skapa en systemanslutning (LĂ€gg till).

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  2. Ange att vi ska ansluta till SQL-servern. Klicka pÄ Slutför.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  3. Ange namn och server för anslutningen. Anslutningen med samma parametrar mÄste sedan skapas pÄ DSC-servern.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  4. Ange att vi anvÀnder det förhandsskapade inloggningen med namnet DSC för att ansluta till SQL-servern.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  5. Ange DB i instÀllningarna för DSC-anslutningen.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  6. Klicka pÄ Slutför.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  7. Innan vi avslutar instÀllningen kontrollerar vi att anslutningen fungerar (Testa datakÀlla).

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  8. Klart.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

Skapa databasen devices.mdb i MS Access. Starta MS Access och skapa en tom databas med namnet devices.mdb.

PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  1. GÄ till fliken Externa data, klicka pÄ ODBC-databas. I det framtrÀdande fönstret vÀljer vi Skapa en lÀnkad tabell för att koppla till datakÀllan.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  2. I det nya fönstret vÀljer vi fliken MaskindatakÀlla och klickar pÄ OK. I det nya fönstret anger vi inloggningsuppgifter för anslutning till SQL-servern.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  3. VÀlj de tabeller som behöver kopplas. Markera Spara lösenord och klicka pÄ OK. Lösenordet ska sparas varje gÄng för alla tre tabeller.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  4. I indexen behöver följande vÀljas:
    — TargetName för tabellen dbo_Devices;

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

    — NodeName eller IPAddress för dbo_RegistrationData;

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

    — NodeName eller IPAddress för dbo_StatusReport.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  5. Ändra namnen pĂ„ tabellerna i MS Access, det vill sĂ€ga: ta bort prefixet dbo_ sĂ„ att DSC kan anvĂ€nda dem.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  6. Klart.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  7. Spara filen och stÀng MS Access. Kopiera nu den resulterande devices.mdb till DSC-servern (som standard i C:Program FilesWindowsPowershellDSCService) och ersÀtt den befintliga (om den finns).

Konfigurera DSC-servern för att anvÀnda SQL

  1. Vi ÄtervÀnder till DSC-servern. För att ansluta till SQL-servern med vÄr proxyfil, skapar vi en ny ODBC-anslutning pÄ DSC-servern. Namn, bitdjup och anslutningsinstÀllningar mÄste vara desamma som vid skapandet av MDB-filen. Det gÄr att kopiera den redan konfigurerade tomma devices.mdb hÀrifrÄn.
  2. För att anvĂ€nda devices.mdb mĂ„ste Ă€ndringar göras i web.config för den frĂ„gande DSC-servern (som standard – C:inetpubPSDSCPullServerweb.config):

— för Windows Server 2012

— för Windows Server 2016

Nu Àr konfigurationen av DSC-servern klar.

Kontroll av DSC-serverns funktionalitet

  1. Vi kontrollerar att DSC-servern Àr tillgÀnglig via webblÀsaren.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  2. Nu kontrollerar vi att den frÄgande DSC-servern fungerar korrekt. För detta finns ett skript pullserversetuptests.ps1 i modulen xPSDesiredStateConfiguration. Innan vi kör detta skript mÄste vi installera PowerShell-modulen som heter Pester. Vi installerar den med Install-Module -Name Pester.
  3. Vi öppnar C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfigurationDSCPullServerSetupPullServerDeploymentVerificationTest (i exemplet version 8.0.0.0.0).

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  4. Vi öppnar PullServerSetupTests.ps1 och kontrollerar sökvÀgen till web.config för DSC-servern. SökvÀgen till web.config, som skriptet kommer att kontrollera, Àr markerad med rött. Om det behövs Àndrar vi den sökvÀgen.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  5. Vi kör pullserversetuptests.ps1
    Invoke-Pester .PullServerSetupTests.ps1
    Allt fungerar.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

  6. I SQL Management Studio ser vi att de administrerade vÀrdarna skickar rapporter till DSC-rapports servern och att data kommer in i DSC:s databas pÄ SQL-servern.

    PowerShell Desired State Configuration och en fil: del 1. InstÀllning av DSC Pull Server för att arbeta med SQL-databas

Detta Àr allt. I kommande artiklar planerar jag att berÀtta hur man bygger rapporter med de erhÄllna uppgifterna och ta upp frÄgor om redundans och skalbarhet.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster