PowerShell Desired State Configuration (DSC) uvelike pojednostavljuje posao postavljanja i konfigurisanja operativnog sistema, uloga servera i aplikacija kada imate stotine servera.
Ali kada koristite DSC lokalno, tj. ne u MS Azureu, postoji nekoliko nijansi. Posebno su uočljivi ako je organizacija velika (od 300 radnih stanica i servera) i još nije otkrila svijet kontejnera:
- Ne postoje potpuni izvještaji o statusu sistema. Ako potrebna konfiguracija nije primijenjena na nekim serverima, onda bez ovih izvještaja nećemo znati za to. Prilično je teško dobiti informacije od ugrađenog servera za izvještavanje, a za veliki broj hostova to također može potrajati.
- Nedostaje skalabilnost i tolerancija grešaka. Nemoguće je izgraditi farmu DSC pull web servera koji bi imali jedinstvenu bazu podataka otpornu na greške i zajedničko skladište mof fajlova za konfiguracije, module i registracione ključeve.
Danas ću vam reći kako možete riješiti prvi problem i dobiti podatke za izvještavanje. Sve bi bilo jednostavnije kada bi se SQL mogao koristiti kao baza podataka. GOSPOĐA
Pronašao sam ovu metodu: za one koji koriste Windows Server 2012 i 2016, možete
Napomena: Za Windows Server 2016 morate koristiti
Neću ulaziti u detalje o procesu postavljanja DSC pull servera, vrlo je dobro opisan
-
UseSecurityBestPractices = $false
U suprotnom, TLS 1.0 će biti onemogućen i nećete se moći povezati na SQL bazu podataka. Kaspersky Security Center takođe neće raditi (problem bi trebalo da bude rešen u Kaspersky Security Center v11).
-
Enable32BitAppOnWin64 = $true
Ako ne izvršite ovu promjenu, nećete moći pokrenuti AppPool DSC server na IIS-u sa WSUS-om.
- Kada instalirate DSC server sa WSUS-om, onemogućite statičko i dinamičko keširanje za DSC lokaciju.
Pređimo na postavljanje DSC servera za korištenje SQL baze podataka.
Kreiranje SQL baze podataka
- Kreirajmo praznu SQL bazu podataka pod nazivom DSC.
- Kreirajmo nalog za povezivanje sa ovom bazom podataka. Prvo provjerite da li SQL server dozvoljava autentifikaciju i Windows i SQL naloga.
- Idite na odjeljak Mapiranje korisnika. Odaberite bazu podataka, u ovom slučaju DSC. Dajemo prava vlasnika baze podataka.
- Gotovo.
Kreiranje šeme za DSC bazu podataka
Postoje dva načina za kreiranje šeme za DSC bazu podataka:
- nezavisno, kroz TSQL skriptu
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
- uvezite podatke iz praznih uređaja.mdb kao dio PS modula PSDesiredStateConfiguration putem SQL čarobnjaka za uvoz podataka.
Devices.mdb sa kojim ćemo raditi nalazi se u C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Da biste uvezli podatke, pokrenite čarobnjak za uvoz i izvoz SQL Servera.
- Mi biramo odakle ćemo dobiti podatke – u našem slučaju to je Microsoft Access baza podataka. Kliknite na Next.
- Odaberite datoteku iz koje uvozimo dijagram.
- Naznačavamo gdje uvoziti - za nas je to SQL baza podataka.
- Odaberite SQL server (Server Name) i bazu podataka u koju ćemo uvesti podatke (DataBase).
- Izaberite opciju Kopiraj podatke iz jedne ili više tabela ili pogleda (kopiranje podataka iz tabela ili pogleda).
- Odabiremo tabele iz kojih ćemo uvesti šemu baze podataka.
- Označite polje za potvrdu Pokreni odmah i kliknite na Završi.
- Gotovo.
- Kao rezultat, tabele bi se trebale pojaviti u DSC bazi podataka.
Postavljanje .mdb “proxy” datoteke
Kreiranje ODBC veze sa SQL serverom. Pretpostavlja se da MS Access nije instaliran na serveru koji pokreće DSC, pa se postavljanje baze podataka.mdb vrši na srednjem hostu sa instaliranim MS Accessom.
Kreirajmo sistemsku ODBC vezu sa SQL serverom (bitnost veze mora odgovarati bitnosti MS Access - 64 ili 32). Može se kreirati pomoću:
- 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
— ili ručno, pomoću čarobnjaka za povezivanje:
- Otvorite Administrativni alati. ODBC izvore podataka biramo ovisno o verziji instaliranog MS Accessa. Idite na karticu Sistemski DSN i kreirajte sistemsku vezu (Dodaj).
- Naznačavamo da ćemo se povezati na SQL server. Kliknite na Završi.
- Odredite ime i server na koji ćete se povezati. Tada će se na DSC serveru morati kreirati veza sa istim parametrima.
- Naznačavamo da za povezivanje sa SQL serverom koristimo prethodno kreiranu prijavu sa imenom DSC.
- Bazu podataka specificiramo u postavkama DSC veze.
- Kliknite na Završi.
- Prije dovršetka podešavanja, provjeravamo da li veza radi (Test Data Source).
- Gotovo.
Kreiranje baze podataka devices.mdb u MS Accessu. Pokrenite MS Access i kreirajte praznu bazu podataka pod nazivom devices.mdb.
- Idite na karticu Eksterni podaci i kliknite na ODBC baza podataka. U prozoru koji se pojavi izaberite Kreiraj povezanu tabelu da biste se povezali sa izvorom podataka.
- U novom prozoru odaberite karticu Izvor podataka stroja i kliknite OK. U novom prozoru unesite vjerodajnice za povezivanje sa SQL serverom.
- Odaberite tabele koje je potrebno povezati. Označite polje Sačuvaj lozinku i kliknite na OK. Svaki put sačuvajte lozinku za sve tri tabele.
- U indeksima morate odabrati sljedeće:
— TargetName za tabelu dbo_Devices;
— NodeName ili IPAddress za dbo_RegistrationData;
— NodeName ili IPAddress za dbo_StatusReport. - Preimenujmo tabele u MS Access-u, naime: uklonite prefiks dbo_ da ih DSC može koristiti.
- Gotovo.
- Sačuvajte datoteku i zatvorite MS Access. Sada kopiramo rezultirajući devices.mdb na DSC server (po defaultu u C: Program FilesWindowsPowershellDSCService) i zamjenjujemo postojeći (ako postoji).
Konfiguriranje DSC servera za korištenje SQL-a
- Vraćamo se na DSC server. Da se povežemo na SQL server sa našim proxy fajlom, napravimo novu ODBC vezu na DSC serveru. Ime, dubina bita i postavke veze moraju biti isti kao kod kreiranja MDB datoteke. Odavde možete kopirati već konfigurirane prazne devices.mdb.
- Da biste koristili devices.mdb, morate napraviti promjene u web.config DSC pull servera (podrazumevano 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;">
Ovim je završeno podešavanje DSC servera.
Provjera funkcionalnosti DSC servera
- Provjerimo da li je DSC serveru dostupan preko web pretraživača.
- Sada hajde da proverimo da li DSC pull server radi ispravno. Da biste to učinili, modul xPSDesiredStateConfiguration uključuje skriptu pullserversetuptests.ps1. Prije pokretanja ove skripte, morate instalirati Powershell modul pod nazivom Pester. Instalirajte ga Install-Module -Naziv Pester.
- Otvorite C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<verzija modula>DSCPullServerSetupPullServerDeploymentVerificationTest (u primjeru verzije 8.0.0.0.0).
- Otvorite PullServerSetupTests.ps1 i provjerite putanju do web.config DSC servera. Put do web.config, koji će provjeriti skriptu, označen je crvenom bojom. Ako je potrebno, mijenjamo ovaj put.
- Pokrenite pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Vse rabotaet. - U SQL Management Studiju vidimo da administrirani hostovi šalju izvještaje na DSC izvještajni server i podaci završavaju u DSC bazi podataka na SQL serveru.
To je sve. U narednim člancima planiram da vam kažem kako da napravite izveštaje na osnovu dobijenih podataka, a dotaknuću se i pitanja tolerancije grešaka i skalabilnosti.
izvor: www.habr.com