PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

PowerShell Desired State Configuration (DSC) yksinkertaistaa huomattavasti käyttöjärjestelmän, palvelinroolien ja sovellusten käyttöönottoa ja määrittämistä, kun käytössäsi on satoja palvelimia.

Mutta käytettäessä DSC on-premises, ts. ei MS Azuressa, siinä on pari vivahdetta. Ne ovat erityisen havaittavissa, jos organisaatio on suuri (300 työasemasta ja palvelimesta) eikä se ole vielä löytänyt konttien maailmaa:

  • Järjestelmien tilasta ei ole täydellisiä raportteja. Jos vaadittua kokoonpanoa ei ole otettu käyttöön joillakin palvelimilla, ilman näitä raportteja emme tiedä siitä. Tietojen saaminen sisäänrakennetulta raportointipalvelimelta on melko vaikeaa, ja suurella määrällä isäntiä se voi myös kestää kauan.
  • Siitä puuttuu skaalautuvuus ja vikasietoisuus. On mahdotonta rakentaa DSC pull -verkkopalvelimien farmia, jossa olisi yksi vikasietoinen tietokanta ja yhteinen tallennustila mof-tiedostoille konfiguraatioita, moduuleja ja rekisteröintiavaimia varten.

Tänään kerron sinulle, kuinka voit ratkaista ensimmäisen ongelman ja saada tietoja raportointia varten. Kaikki olisi yksinkertaisempaa, jos SQL:ää voitaisiin käyttää tietokantana. NEITI lupauksia sisäänrakennettu tuki vain Windows Server 2019:ssä tai build Windows Server 1803:ssa. Hae tiedot myös OleDB-palveluntarjoajan avulla ei toimikoska DSC Server käyttää nimettyä parametria, jota OleDbCommand ei täysin tue.

Löysin tämän menetelmän: niille, jotka käyttävät Windows Server 2012:ta ja 2016:ta, voit perustaa SQL-tietokannan käyttäminen DSC-kyselypalvelimen taustaohjelmana. Tätä varten luomme "välityspalvelimen" .mdb-tiedoston muodossa siihen liittyvine taulukoineen, joka ohjaa asiakasraporteista saadut tiedot SQL-palvelimen tietokantaan.

Huomautus: Windows Server 2016:ssa sinun on käytettävä AccessDatabaseEngine2016x86koska Microsoft.Jet.OLEDB.4.0 ei ole enää tuettu.

En mene yksityiskohtiin DSC-pulttipalvelimen käyttöönottoprosessista, se on hyvin kuvattu täällä. Huomautan vain pari kohtaa. Jos otamme DSC-vedon käyttöön samassa verkkopalvelimessa WSUS:n tai Kaspersky Security Centerin kanssa, meidän on muutettava seuraavat parametrit määrityksen luomisskriptissä:

  1. UseSecurityBestPractices     = $false

    Muussa tapauksessa TLS 1.0 poistetaan käytöstä, etkä voi muodostaa yhteyttä SQL-tietokantaan. Kaspersky Security Center ei myöskään toimi (ongelman pitäisi ratkaista Kaspersky Security Center v11:ssä).

  2. Enable32BitAppOnWin64   = $true

    Jos et tee tätä muutosta, et voi käyttää AppPool DSC -palvelinta IIS:ssä WSUS:n kanssa.

  3. Kun asennat DSC-palvelinta WSUS:n kanssa, poista DSC-sivuston staattinen ja dynaaminen välimuisti käytöstä.

Jatketaan DSC-palvelimen asettamiseen SQL-tietokannan käyttöä varten.

SQL-tietokannan luominen

  1. Luodaan tyhjä SQL-tietokanta nimeltä DSC.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  2. Luodaan tili yhteyden muodostamiseksi tähän tietokantaan. Tarkista ensin, että SQL-palvelin sallii sekä Windows- että SQL-tilien todennuksen.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  3. Siirry User Mapping -osioon. Valitse tietokanta, tässä tapauksessa DSC. Annamme tietokannan omistajan oikeudet.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  4. Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

Kaavan luominen DSC-tietokantaa varten

DSC-tietokannan skeeman luomiseen on kaksi tapaa:

  • itsenäisesti TSQL-komentosarjan kautta
    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
  • tuoda tiedot tyhjistä devices.mdb:stä osana PS-moduulia PSDesiredStateConfiguration ohjatun SQL-tietojen tuontitoiminnon avulla.

    Devices.mdb, jonka kanssa työskentelemme, sijaitsee kohteessa C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Tuo tietoja suorittamalla ohjattu SQL Server Import and Export Wizard.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  2. Valitsemme, mistä saamme tiedot - meidän tapauksessamme se on Microsoft Access -tietokanta. Napsauta Seuraava.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  3. Valitse tiedosto, josta tuomme kaavion.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  4. Ilmoitamme tuontipaikan - meille se on SQL-tietokanta.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  5. Valitse SQL-palvelin (Server Name) ja tietokanta, johon tuomme tiedot (DataBase).

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  6. Valitse vaihtoehto Kopioi tiedot yhdestä tai useammasta taulukosta tai näkymästä (tietojen kopioiminen taulukoista tai näkymistä).

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  7. Valitsemme taulukot, joista tuomme tietokantaskeeman.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  8. Valitse Suorita heti -valintaruutu ja napsauta Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  9. Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  10. Tämän seurauksena taulukoiden pitäisi näkyä DSC-tietokannassa.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

.mdb-välityspalvelimen määrittäminen

ODBC-yhteyden luominen SQL-palvelimeen. Oletuksena on, että MS Accessia ei ole asennettu DSC:tä käyttävälle palvelimelle, joten tietokanta.mdb:n määrittäminen tehdään välipalvelimella, johon on asennettu MS Access.

Luodaan järjestelmän ODBC-yhteys SQL-palvelimeen (yhteyden bittinopeuden on vastattava MS Accessin bittinopeutta - 64 tai 32). Se voidaan luoda käyttämällä:
- 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

— tai manuaalisesti ohjatun yhteystoiminnon avulla:

  1. Avaa Hallintatyökalut. Valitsemme ODBC-tietolähteet asennetun MS Accessin version mukaan. Siirry System DSN -välilehteen ja luo järjestelmäyhteys (Lisää).

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  2. Ilmoitamme, että muodostamme yhteyden SQL-palvelimeen. Napsauta Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  3. Määritä nimi ja palvelin, johon haluat muodostaa yhteyden. Sitten DSC-palvelimelle on luotava yhteys samoilla parametreilla.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  4. Ilmoitamme, että yhteyden muodostamiseksi SQL-palvelimeen käytämme aiemmin luotua kirjautumistunnusta nimellä DSC.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  5. Määritämme tietokannan DSC-yhteysasetuksissa.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  6. Napsauta Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  7. Ennen asennuksen suorittamista tarkistamme, että yhteys toimii (Test Data Source).

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  8. Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

Devices.mdb-tietokannan luominen MS Accessissa. Käynnistä MS Access ja luo tyhjä tietokanta nimeltä devices.mdb.

PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  1. Siirry Ulkoiset tiedot -välilehteen ja napsauta ODBC-tietokanta. Valitse näkyviin tulevasta ikkunasta Luo linkitetty taulukko muodostaaksesi yhteyden tietolähteeseen.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  2. Valitse uudessa ikkunassa Koneen tietolähde -välilehti ja napsauta OK. Anna uudessa ikkunassa valtuustiedot, jotta voit muodostaa yhteyden SQL-palvelimeen.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  3. Valitse linkitettävät taulukot. Valitse Tallenna salasana -ruutu ja napsauta OK. Tallenna salasana joka kerta kaikille kolmelle taulukolle.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  4. Indekseistä sinun on valittava seuraavat:
    — dbo_Devices-taulukon TargetName;

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

    — NodeName tai IPAddress kohteelle dbo_RegistrationData;

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

    — NodeName tai IPAddress dbo_StatusReportille.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  5. Nimetään taulukot uudelleen MS Accessissa, eli: poista dbo_-etuliite, jotta DSC voi käyttää niitä.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  6. Valmis.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  7. Tallenna tiedosto ja sulje MS Access. Nyt kopioimme tuloksena olevan devices.mdb:n DSC-palvelimelle (oletuksena C: Program FilesWindowsPowershellDSCServicessä) ja korvaamme olemassa olevan sillä (jos sellainen on).

DSC-palvelimen määrittäminen käyttämään SQL:ää

  1. Palaamme DSC-palvelimelle. Jos haluat muodostaa yhteyden SQL-palvelimeen välityspalvelimellamme, luo uusi ODBC-yhteys DSC-palvelimelle. Nimen, bittisyvyyden ja yhteysasetusten on oltava samat kuin MDB-tiedostoa luotaessa. Voit kopioida jo määritetyt tyhjät devices.mdb täältä.
  2. Käyttääksesi devices.mdb:tä sinun on tehtävä muutoksia DSC-pulssipalvelimen web.config-tiedostoon (oletus on C:inetpubPSDSCPullServerweb.config):

- Windows Server 2012:lle

<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:lle

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

Tämä päättää DSC-palvelimen asennuksen.

Tarkistetaan DSC-palvelimen toimivuutta

  1. Tarkistetaan, että DSC-palvelin on käytettävissä verkkoselaimen kautta.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  2. Tarkastetaan nyt, toimiiko DSC-pulssipalvelin oikein. Tätä varten xPSDesiredStateConfiguration-moduuli sisältää pullserversetuptests.ps1-komentosarjan. Ennen kuin suoritat tämän komentosarjan, sinun on asennettava Powershell-moduuli nimeltä Pester. Asenna se Install-Module -Name Pester.
  3. Avaa C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<moduuliversio>DSCPullServerSetupPullServerDeploymentVerificationTest (esimerkkiversiossa 8.0.0.0.0).

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  4. Avaa PullServerSetupTests.ps1 ja tarkista polku DSC-palvelimen web.config-tiedostoon. Polku web.config-tiedostoon, joka tarkistaa komentosarjan, on korostettu punaisella. Tarvittaessa muutamme tätä polkua.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  5. Suorita pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Kaikki toimii.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

  6. SQL Management Studiossa näemme, että hallinnoidut isännät lähettävät raportteja DSC-raportointipalvelimelle ja tiedot päätyvät SQL-palvelimen DSC-tietokantaan.

    PowerShell Desired State -kokoonpano ja tiedosto: osa 1. DSC Pull Serverin määrittäminen toimimaan SQL-tietokannan kanssa

Siinä kaikki. Seuraavissa artikkeleissa aion kertoa sinulle, miten saaduista tiedoista laaditaan raportteja, ja käsittelen vikasietoisuutta ja skaalautuvuutta koskevia kysymyksiä.

Lähde: will.com

Lisää kommentti