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
Našel sem to metodo: za tiste, ki uporabljajo Windows Server 2012 in 2016, lahko
Opomba: Za Windows Server 2016 morate uporabiti
Ne bom se spuščal v podrobnosti o postopku uvajanja DSC pull strežnika, zelo dobro je opisan
-
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).
-
Enable32BitAppOnWin64 = $true
Če ne naredite te spremembe, ne boste mogli zagnati strežnika AppPool DSC na IIS z WSUS.
- 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
- Ustvarimo prazno bazo podatkov SQL z imenom DSC.
- Ustvarimo račun za povezavo s to bazo podatkov. Najprej preverite, ali strežnik SQL omogoča preverjanje pristnosti računov Windows in SQL.
- Pojdite na razdelek Preslikava uporabnikov. Izberite bazo podatkov, v tem primeru DSC. Podajamo pravice lastnika baze podatkov.
- Končano.
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.
- Za uvoz podatkov zaženite čarovnika za uvoz in izvoz SQL Server.
- Sami izberemo, od kod bomo pridobivali podatke – v našem primeru je to baza Microsoft Access. Kliknite Naprej.
- Izberemo datoteko, iz katere uvozimo diagram.
- Navedemo, kam uvoziti - za nas je to baza podatkov SQL.
- Izberemo SQL strežnik (Server Name) in bazo v katero bomo uvozili podatke (DataBase).
- Izberite možnost Kopiraj podatke iz ene ali več tabel ali pogledov (kopiranje podatkov iz tabel ali pogledov).
- Izberemo tabele, iz katerih bomo uvozili shemo baze podatkov.
- Potrdite potrditveno polje Zaženi takoj in kliknite Dokončaj.
- Končano.
- Posledično bi se morale tabele pojaviti v bazi podatkov DSC.
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:
- 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).
- Navedemo, da se bomo povezali s strežnikom SQL. Kliknite Dokončaj.
- Določite ime in strežnik za povezavo. Nato bo treba na strežniku DSC ustvariti povezavo z enakimi parametri.
- Navedemo, da za povezavo s strežnikom SQL uporabimo predhodno ustvarjeno prijavo z imenom DSC.
- Podatkovno bazo določimo v nastavitvah povezave DSC.
- Kliknite Dokončaj.
- Preden zaključimo nastavitev, preverimo, ali povezava deluje (Test Data Source).
- Končano.
Izdelava podatkovne baze devices.mdb v MS Accessu. Zaženite MS Access in ustvarite prazno zbirko podatkov z imenom devices.mdb.
- 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.
- V novem oknu izberite zavihek Machine Data Source in kliknite OK. V novo okno vnesite poverilnice za povezavo s strežnikom SQL.
- Izberite tabele, ki jih je treba povezati. Potrdite polje Shrani geslo in kliknite V redu. Vsakič shranite geslo za vse tri tabele.
- V indeksih morate izbrati naslednje:
— TargetName za tabelo dbo_Devices;
— NodeName ali IPAddress za dbo_RegistrationData;
— NodeName ali IPAddress za dbo_StatusReport. - Preimenujmo tabele v MS Accessu in sicer: odstranimo predpono dbo_, da jih bo DSC lahko uporabljal.
- Končano.
- 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
- 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.
- Č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
- Preverimo, ali je strežnik DSC dostopen prek spletnega brskalnika.
- 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.
- Odprite C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<različica modula>DSCPullServerSetupPullServerDeploymentVerificationTest (v primeru različice 8.0.0.0.0).
- 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.
- Zaženite pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Ð'Ñ Ðµ Ñ € Ð ° Ð ± отР° ÐµÑ ‚ - 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.
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