Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

PowerShell Desired State Configuration (DSC) močno poenostavi delo uvajanja in konfiguriranja operacijskega sistema, vlog strežnika in aplikacij, ko imate na stotine strežnikov.

Toda pri uporabi DSC na mestu uporabe, tj. ne v MS Azure, obstaja nekaj odtenkov. Še posebej so opazni, če je organizacija velika (od 300 delovnih postaj in strežnikov) in še ni odkrila sveta vsebnikov:

  • Ni popolnih poročil o statusu sistemov. Če zahtevana konfiguracija ni bila uporabljena na nekaterih strežnikih, potem brez teh poročil ne bomo izvedeli za to. Pridobivanje informacij iz vgrajenega strežnika za poročanje je precej težko, pri velikem številu gostiteljev pa lahko traja tudi dolgo.
  • Nima razširljivosti in odpornosti na napake. Nemogoče je zgraditi farmo vlečnih spletnih strežnikov DSC, ki bi imela eno samo bazo podatkov, odporno na napake, in skupno shrambo datotek mof za konfiguracije, module in registracijske ključe.

Danes vam bom povedal, kako lahko rešite prvo težavo in pridobite podatke za poročanje. Vse bi bilo enostavneje, če bi SQL lahko uporabljali kot bazo podatkov. GOSPA obljube vgrajena podpora samo v Windows Server 2019 ali v različici Windows Server 1803. Pridobite podatke tudi s ponudnikom OleDB ne bo delovaloker strežnik DSC uporablja imenovani parameter, ki ga OleDbCommand ne podpira v celoti.

Našel sem to metodo: za tiste, ki uporabljajo Windows Server 2012 in 2016, lahko nastavite uporabo podatkovne baze SQL kot zaledja za strežnik poizvedb DSC. Za to bomo ustvarili »proxy« v obliki datoteke .mdb s pripadajočimi tabelami, ki bo podatke, prejete iz poročil strank, preusmerila v bazo podatkov strežnika SQL.

Opomba: Za Windows Server 2016 morate uporabiti AccessDatabaseEngine2016x86ker Microsoft.Jet.OLEDB.4.0 ni več podprt.

Ne bom se spuščal v podrobnosti o postopku uvajanja DSC pull strežnika, zelo dobro je opisan tukaj. Opozoril bom le na nekaj točk. Če DSC puller postavimo na isti spletni strežnik z WSUS ali Kaspersky Security Center, moramo v skriptu za ustvarjanje konfiguracije spremeniti naslednje parametre:

  1. UseSecurityBestPractices     = $false

    V nasprotnem primeru bo TLS 1.0 onemogočen in se ne boste mogli povezati z bazo podatkov SQL. Kaspersky Security Center prav tako ne bo deloval (težavo je treba rešiti v Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Če ne naredite te spremembe, ne boste mogli zagnati strežnika AppPool DSC na IIS z WSUS.

  3. Ko nameščate strežnik DSC z WSUS, onemogočite statično in dinamično predpomnjenje za mesto DSC.

Preidimo na nastavitev strežnika DSC za uporabo baze podatkov SQL.

Ustvarjanje baze podatkov SQL

  1. Ustvarimo prazno bazo podatkov SQL z imenom DSC.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  2. Ustvarimo račun za povezavo s to bazo podatkov. Najprej preverite, ali strežnik SQL omogoča preverjanje pristnosti računov Windows in SQL.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  3. Pojdite na razdelek Preslikava uporabnikov. Izberite bazo podatkov, v tem primeru DSC. Podajamo pravice lastnika baze podatkov.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  4. Končano.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

Ustvarjanje sheme za bazo podatkov DSC

Obstajata dva načina za ustvarjanje sheme za bazo podatkov DSC:

  • neodvisno, prek skripte TSQL
    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
  • uvozite podatke iz praznih devices.mdb kot del modula PS PSDesiredStateConfiguration prek čarovnika za uvoz podatkov SQL.

    Devices.mdb, s katerim bomo delali, se nahaja v C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Za uvoz podatkov zaženite čarovnika za uvoz in izvoz SQL Server.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  2. Sami izberemo, od kod bomo pridobivali podatke – v našem primeru je to baza Microsoft Access. Kliknite Naprej.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  3. Izberemo datoteko, iz katere uvozimo diagram.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  4. Navedemo, kam uvoziti - za nas je to baza podatkov SQL.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  5. Izberemo SQL strežnik (Server Name) in bazo v katero bomo uvozili podatke (DataBase).

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  6. Izberite možnost Kopiraj podatke iz ene ali več tabel ali pogledov (kopiranje podatkov iz tabel ali pogledov).

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  7. Izberemo tabele, iz katerih bomo uvozili shemo baze podatkov.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  8. Potrdite potrditveno polje Zaženi takoj in kliknite Dokončaj.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  9. Končano.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  10. Posledično bi se morale tabele pojaviti v bazi podatkov DSC.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

Nastavitev datoteke »proxy« .mdb

Ustvarjanje povezave ODBC s strežnikom SQL. Predpostavlja se, da MS Access ni nameščen na strežniku, v katerem se izvaja DSC, zato se nastavitev databases.mdb izvaja na vmesnem gostitelju z nameščenim MS Accessom.

Ustvarimo sistemsko ODBC povezavo s strežnikom SQL (bitnost povezave se mora ujemati z bitnostjo MS Access - 64 ali 32). Ustvarite ga lahko z:
- 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

— ali ročno s čarovnikom za povezavo:

  1. Odprite skrbniška orodja. Podatkovne vire ODBC izberemo glede na različico nameščenega MS Accessa. Pojdite na zavihek System DSN in ustvarite sistemsko povezavo (Dodaj).

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  2. Navedemo, da se bomo povezali s strežnikom SQL. Kliknite Dokončaj.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  3. Določite ime in strežnik za povezavo. Nato bo treba na strežniku DSC ustvariti povezavo z enakimi parametri.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  4. Navedemo, da za povezavo s strežnikom SQL uporabimo predhodno ustvarjeno prijavo z imenom DSC.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  5. Podatkovno bazo določimo v nastavitvah povezave DSC.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  6. Kliknite Dokončaj.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  7. Preden zaključimo nastavitev, preverimo, ali povezava deluje (Test Data Source).

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  8. Končano.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

Izdelava podatkovne baze devices.mdb v MS Accessu. Zaženite MS Access in ustvarite prazno zbirko podatkov z imenom devices.mdb.

Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  1. Pojdite na zavihek Zunanji podatki in kliknite Zbirka podatkov ODBC. V oknu, ki se prikaže, izberite Ustvari povezano tabelo, da se povežete z virom podatkov.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  2. V novem oknu izberite zavihek Machine Data Source in kliknite OK. V novo okno vnesite poverilnice za povezavo s strežnikom SQL.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  3. Izberite tabele, ki jih je treba povezati. Potrdite polje Shrani geslo in kliknite V redu. Vsakič shranite geslo za vse tri tabele.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  4. V indeksih morate izbrati naslednje:
    — TargetName za tabelo dbo_Devices;

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

    — NodeName ali IPAddress za dbo_RegistrationData;

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

    — NodeName ali IPAddress za dbo_StatusReport.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  5. Preimenujmo tabele v MS Accessu in sicer: odstranimo predpono dbo_, da jih bo DSC lahko uporabljal.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  6. Končano.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  7. Shranite datoteko in zaprite MS Access. Sedaj kopiramo dobljeni devices.mdb na strežnik DSC (privzeto v C: Program FilesWindowsPowershellDSCService) in z njim zamenjamo obstoječega (če obstaja).

Konfiguriranje strežnika DSC za uporabo SQL

  1. Vrnemo se na strežnik DSC. Za povezavo s strežnikom SQL z našo datoteko proxy ustvarimo novo povezavo ODBC na strežniku DSC. Ime, bitna globina in nastavitve povezave morajo biti enaki kot pri ustvarjanju datoteke MDB. Od tukaj lahko kopirate že konfigurirano prazno datoteko devices.mdb.
  2. Če želite uporabljati devices.mdb, morate spremeniti datoteko web.config vlečnega strežnika DSC (privzeto je C:inetpubPSDSCPullServerweb.config):

- za 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;">

- za 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;">

S tem je nastavitev strežnika DSC zaključena.

Preverjanje delovanja strežnika DSC

  1. Preverimo, ali je strežnik DSC dostopen prek spletnega brskalnika.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  2. Zdaj pa preverimo, ali vlečni strežnik DSC deluje pravilno. Če želite to narediti, modul xPSDesiredStateConfiguration vključuje skript pullservversetuptests.ps1. Preden zaženete ta skript, morate namestiti modul Powershell z imenom Pester. Namestite ga Install-Module -Name Pester.
  3. Odprite C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<različica modula>DSCPullServerSetupPullServerDeploymentVerificationTest (v primeru različice 8.0.0.0.0).

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  4. Odprite PullServerSetupTests.ps1 in preverite pot do web.config strežnika DSC. Pot do web.config, ki bo preveril skript, je označena z rdečo. Če je potrebno, to pot spremenimo.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  5. Zaženite pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Ð'Ñ Ðµ Ñ € Ð ° Ð ± отР° ÐµÑ ‚

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

  6. V programu SQL Management Studio vidimo, da upravljani gostitelji pošiljajo poročila strežniku za poročanje DSC in podatki končajo v bazi podatkov DSC na strežniku SQL.

    Konfiguracija in datoteka želenega stanja PowerShell: 1. del. Konfiguriranje strežnika DSC Pull Server za delo z bazo podatkov SQL

To je vse. V naslednjih člankih vam nameravam povedati, kako sestaviti poročila o pridobljenih podatkih, in dotaknil se bom vprašanj glede tolerance napak in razširljivosti.

Vir: www.habr.com

Dodaj komentar