PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

PowerShelli soovitud oleku konfiguratsioon (DSC) lihtsustab oluliselt operatsioonisüsteemi, serverirollide ja rakenduste juurutamist ja konfigureerimist, kui teil on sadu servereid.

Aga kui kasutada DSC on-premises, st. mitte MS Azure'is, seal on paar nüanssi. Need on eriti märgatavad, kui organisatsioon on suur (alates 300 tööjaamast ja serverist) ega ole veel konteinerite maailma avastanud:

  • Puuduvad täielikud aruanded süsteemide oleku kohta. Kui mõnel serveril pole vajalikku konfiguratsiooni rakendatud, siis ilma nende aruanneteta me sellest teada ei saa. Sisseehitatud aruandlusserverist on info hankimine üsna keeruline ja suure hulga hostide puhul võib see samuti kaua aega võtta.
  • Puudub mastaapsus ja veataluvus. On võimatu ehitada DSC-pulga veebiserverite farmi, millel oleks üks tõrketaluv andmebaas ja ühine MOF-failide salvestusseade konfiguratsioonide, moodulite ja registreerimisvõtmete jaoks.

Täna räägin teile, kuidas saate esimese probleemi lahendada ja aruandluse jaoks andmeid hankida. Kõik oleks lihtsam, kui SQL-i saaks kasutada andmebaasina. PRL lubadusi sisseehitatud tugi ainult Windows Server 2019 või Windows Server 1803 versioonis. Andmete toomine ka OleDB pakkuja abil ei töötakuna DSC Server kasutab nimelist parameetrit, mida OleDbCommand täielikult ei toeta.

Leidsin selle meetodi: need, kes kasutavad Windows Server 2012 ja 2016, saate seda teha seadistage SQL-andmebaasi kasutamine DSC päringuserveri taustaprogrammina. Selleks loome .mdb faili kujul koos seotud tabelitega “puhverserveri”, mis suunab kliendiaruannetest saadud andmed SQL serveri andmebaasi.

Märkus. Windows Server 2016 jaoks peate kasutama AccessDatabaseEngine2016x86sest Microsoft.Jet.OLEDB.4.0 enam ei toetata.

Ma ei hakka DSC-tõmbeserveri juurutamise protsessi üksikasjalikult kirjeldama, see on väga hästi kirjeldatud siin. Märgin vaid paar punkti. Kui juurutame DSC tõmbaja samas veebiserveris WSUS-i või Kaspersky Security Centeriga, siis peame konfiguratsiooni loomise skriptis muutma järgmisi parameetreid:

  1. UseSecurityBestPractices     = $false

    Vastasel juhul keelatakse TLS 1.0 ja te ei saa SQL-i andmebaasiga ühendust luua. Samuti ei tööta Kaspersky Security Center (probleem peaks olema lahendatud Kaspersky Security Center v11-s).

  2. Enable32BitAppOnWin64   = $true

    Kui te seda muudatust ei tee, ei saa te AppPool DSC-serverit WSUS-iga IIS-is käitada.

  3. Kui installite DSC-serveri koos WSUS-iga, keelake DSC saidi staatiline ja dünaamiline vahemälu.

Liigume edasi DSC-serveri seadistamise juurde SQL-andmebaasi kasutamiseks.

SQL-i andmebaasi loomine

  1. Loome tühja SQL-i andmebaasi nimega DSC.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  2. Loome selle andmebaasiga ühenduse loomiseks konto. Esiteks kontrollige, kas SQL-server lubab nii Windowsi kui ka SQL-i kontode autentimist.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  3. Minge jaotisse Kasutaja kaardistamine. Valige andmebaas, antud juhul DSC. Anname andmebaasi omaniku õigused.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  4. Valmis.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

Skeemi loomine DSC andmebaasi jaoks

DSC andmebaasi skeemi loomiseks on kaks võimalust:

  • iseseisvalt TSQL-i skripti kaudu
    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
  • importida andmeid tühjadest devices.mdb-st PS-mooduli PSDesiredStateConfiguration osana SQL-i andmete importimise viisardi kaudu.

    Devices.mdb, millega me töötame, asub failis C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Andmete importimiseks käivitage SQL Serveri impordi- ja ekspordiviisard.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  2. Meie valime, kust andmed saame – meie puhul on selleks Microsoft Accessi andmebaas. Klõpsake nuppu Edasi.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  3. Valige fail, millest diagrammi impordime.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  4. Näitame, kuhu importida – meie jaoks on see SQL-andmebaas.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  5. Valige SQL-server (Server Name) ja andmebaas, kuhu andmeid impordime (DataBase).

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  6. Valige suvand Kopeeri andmed ühest või mitmest tabelist või vaatest.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  7. Valime tabelid, millest impordime andmebaasi skeemi.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  8. Märkige ruut Käivita kohe ja klõpsake nuppu Lõpeta.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  9. Valmis.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  10. Selle tulemusena peaksid tabelid ilmuma DSC andmebaasi.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

Mdb "puhverserveri" faili seadistamine

ODBC-ühenduse loomine SQL-serveriga. Eeldatakse, et DSC-d töötavasse serverisse pole installitud MS Access, mistõttu andmebaass.mdb seadistamine toimub vahepealses hostis, kuhu on installitud MS Access.

Loome süsteemi ODBC ühenduse SQL serveriga (ühenduse bitisagedus peab ühtima MS Accessi bitidsusega - 64 või 32). Seda saab luua kasutades:
- Powershelli 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

— või käsitsi, kasutades ühenduse viisardit:

  1. Avage haldustööriistad. Valime ODBC andmeallikad sõltuvalt installitud MS Accessi versioonist. Minge vahekaardile System DSN ja looge süsteemiühendus (Lisa).

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  2. Anname märku, et loome ühenduse SQL-serveriga. Klõpsake nuppu Lõpeta.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  3. Määrake nimi ja server, millega ühenduse luua. Seejärel tuleb DSC-serveris luua ühendus samade parameetritega.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  4. Märkame, et SQL-serveriga ühenduse loomiseks kasutame varem loodud sisselogimist nimega DSC.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  5. Andmebaasi täpsustame DSC ühenduse seadetes.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  6. Klõpsake nuppu Lõpeta.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  7. Enne seadistamise lõpetamist kontrollime ühenduse toimimist (Test Data Source).

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  8. Valmis.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

Devices.mdb andmebaasi loomine MS Accessis. Käivitage MS Access ja looge tühi andmebaas nimega devices.mdb.

PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  1. Minge vahekaardile Välised andmed ja klõpsake ODBC andmebaasi. Valige kuvatavas aknas Andmeallikaga ühenduse loomiseks loo lingitud tabel.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  2. Valige uues aknas vahekaart Masina andmeallikas ja klõpsake nuppu OK. Sisestage uues aknas SQL-serveriga ühenduse loomiseks mandaadid.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  3. Valige tabelid, mis tuleb linkida. Märkige ruut Salvesta parool ja klõpsake nuppu OK. Salvestage kõigi kolme tabeli parool iga kord.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  4. Indeksides peate valima järgmise:
    — tabeli dbo_Devices sihtnimi;

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

    — dbo_RegistrationData sõlmenimi või IP-aadress;

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

    — dbo_StatusReporti sõlmenimi või IP-aadress.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  5. Nimetame tabelid MS Accessis ümber, nimelt: eemaldame eesliide dbo_, et DSC saaks neid kasutada.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  6. Valmis.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  7. Salvestage fail ja sulgege MS Access. Nüüd kopeerige saadud devices.mdb DSC serverisse (vaikimisi C:Program FilesWindowsPowershellDSCServices) ja asendage olemasolev sellega (kui see on olemas).

DSC-serveri konfigureerimine SQL-i kasutamiseks

  1. Pöördume tagasi DSC serverisse. SQL-serveriga ühenduse loomiseks meie puhverserveri abil loome DSC-serveris uue ODBC-ühenduse. Nimi, bitisügavus ja ühenduse sätted peavad olema samad, mis MDB-faili loomisel. Siit saate kopeerida juba seadistatud tühjad devices.mdb.
  2. Devices.mdb kasutamiseks peate tegema muudatusi DSC-tõmbeserveri failis web.config (vaikimisi on C:inetpubPSDSCPullServerweb.config):

- Windows Server 2012 jaoks

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

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

See lõpetab DSC-serveri seadistamise.

DSC-serveri funktsionaalsuse kontrollimine

  1. Kontrollime, kas DSC-server on veebibrauseri kaudu juurdepääsetav.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  2. Nüüd kontrollime, kas DSC-tõmbeserver töötab õigesti. Selleks sisaldab moodul xPSDesiredStateConfiguration skripti pullserversetuptests.ps1. Enne selle skripti käivitamist peate installima Powershelli mooduli nimega Pester. Installige see Install-Module - Name Pester.
  3. Avage C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<mooduli versioon>DSCPullServerSetupPullServerDeploymentVerificationTest (näiteversioonis 8.0.0.0.0).

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  4. Avage PullServerSetupTests.ps1 ja kontrollige DSC-serveri faili web.config teed. Tee veebilehele web.config, mis kontrollib skripti, on punasega esile tõstetud. Vajadusel muudame seda teed.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  5. Käivitage pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Kõik töötab.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

  6. SQL Management Studios näeme, et administreeritud hostid saadavad aruandeid DSC aruandlusserverisse ja andmed jõuavad SQL serveri DSC andmebaasi.

    PowerShelli soovitud oleku konfiguratsioon ja fail: osa 1. DSC Pull Serveri konfigureerimine töötama SQL-andmebaasiga

See on kõik. Järgmistes artiklites kavatsen teile rääkida, kuidas saadud andmetest aruandeid koostada, ning käsitlen tõrketaluvuse ja mastaapsuse küsimusi.

Allikas: www.habr.com

Lisa kommentaar