Konfigurimi i gjendjes së dëshiruar të PowerShell (DSC) thjeshton shumë punën e vendosjes dhe konfigurimit të sistemit operativ, roleve të serverit dhe aplikacioneve kur keni qindra serverë.
Por kur përdorni DSC në ambiente, d.m.th. jo në MS Azure, ka disa nuanca. Ato janë veçanërisht të dukshme nëse organizata është e madhe (nga 300 stacione pune dhe serverë) dhe nuk e ka zbuluar ende botën e kontejnerëve:
- Nuk ka raporte të plota për gjendjen e sistemeve. Nëse konfigurimi i kërkuar nuk është aplikuar në disa serverë, atëherë pa këto raporte ne nuk do të dimë për të. Marrja e informacionit nga serveri i raportimit të integruar është mjaft i vështirë, dhe për një numër të madh hostesh mund të marrë gjithashtu një kohë të gjatë.
- I mungon shkallëzueshmëria dhe toleranca ndaj gabimeve. Është e pamundur të ndërtohet një fermë e serverëve të internetit DSC pull që do të kenë një bazë të dhënash të vetme tolerante ndaj gabimeve dhe një ruajtje të përbashkët të skedarëve mof për konfigurimet, modulet dhe çelësat e regjistrimit.
Sot do t'ju tregoj se si mund ta zgjidhni problemin e parë dhe të merrni të dhëna për raportim. Gjithçka do të ishte më e thjeshtë nëse SQL mund të përdoret si një bazë të dhënash. ZNJ
Kam gjetur këtë metodë: për ata që përdorin Windows Server 2012 dhe 2016, ju mundeni
Shënim: Për Windows Server 2016 duhet të përdorni
Unë nuk do të hyj në detaje në lidhje me procesin e vendosjes së një serveri tërheqës DSC, ai është përshkruar shumë mirë
-
UseSecurityBestPractices = $false
Përndryshe, TLS 1.0 do të çaktivizohet dhe nuk do të mund të lidheni me bazën e të dhënave SQL. Qendra e Sigurisë Kaspersky gjithashtu nuk do të funksionojë (problemi duhet të zgjidhet në Kaspersky Security Center v11).
-
Enable32BitAppOnWin64 = $true
Nëse nuk e bëni këtë ndryshim, nuk do të jeni në gjendje të ekzekutoni serverin AppPool DSC në IIS me WSUS.
- Kur instaloni serverin DSC me WSUS, çaktivizoni cachimin statik dhe dinamik për sitin DSC.
Le të kalojmë në konfigurimin e serverit DSC për të përdorur bazën e të dhënave SQL.
Krijimi i një baze të dhënash SQL
- Le të krijojmë një bazë të dhënash boshe SQL të quajtur DSC.
- Le të krijojmë një llogari për t'u lidhur me këtë bazë të dhënash. Së pari, kontrolloni që serveri SQL lejon vërtetimin e llogarive të Windows dhe SQL.
- Shkoni te seksioni i hartës së përdoruesit. Zgjidhni bazën e të dhënave, në këtë rast DSC. Ne japim të drejtat e pronarit të bazës së të dhënave.
- Done.
Krijimi i një skeme për bazën e të dhënave DSC
Ekzistojnë dy mënyra për të krijuar një skemë për një bazë të dhënash DSC:
- në mënyrë të pavarur, përmes një skripti 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
- importoni të dhëna nga pajisjet boshe.mdb si pjesë e modulit PS PSDesiredStateConfiguration përmes SQL Data Import Wizard.
Devices.mdb me të cilin do të punojmë ndodhet në C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Për të importuar të dhëna, ekzekutoni SQL Server Import and Export Wizard.
- Ne zgjedhim se nga do t'i marrim të dhënat - në rastin tonë është një bazë të dhënash Microsoft Access. Kliko Next.
- Zgjidhni skedarin nga i cili importojmë diagramin.
- Ne tregojmë se ku të importojmë - për ne është një bazë të dhënash SQL.
- Zgjidhni serverin SQL (Emri i Serverit) dhe bazën e të dhënave në të cilën do të importojmë të dhëna (DataBase).
- Zgjidhni opsionin Kopjo të dhënat nga një ose më shumë tabela ose pamje (kopjimi i të dhënave nga tabelat ose pamjet).
- Ne zgjedhim tabelat nga të cilat do të importojmë skemën e bazës së të dhënave.
- Kontrolloni kutinë e kontrollit Run menjëherë dhe klikoni Finish.
- Done.
- Si rezultat, tabelat duhet të shfaqen në bazën e të dhënave DSC.
Vendosja e një skedari "proxy" .mdb
Krijimi i një lidhje ODBC me një server SQL. Supozohet se MS Access nuk është i instaluar në serverin që funksionon DSC, kështu që konfigurimi i databases.mdb bëhet në një host të ndërmjetëm me MS Access të instaluar.
Le të krijojmë një lidhje ODBC të sistemit me serverin SQL (bititeti i lidhjes duhet të përputhet me bitin e MS Access - 64 ose 32). Mund të krijohet duke përdorur:
- 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
— ose manualisht, duke përdorur magjistarin e lidhjes:
- Hapni mjetet administrative. Ne zgjedhim burimet e të dhënave ODBC në varësi të versionit të MS Access të instaluar. Shkoni te skeda System DSN dhe krijoni një lidhje të sistemit (Shto).
- Ne tregojmë se do të lidhemi me serverin SQL. Klikoni Finish.
- Specifikoni emrin dhe serverin për t'u lidhur. Pastaj një lidhje me të njëjtat parametra do të duhet të krijohet në serverin DSC.
- Ne tregojmë se për t'u lidhur me serverin SQL, ne përdorim një hyrje të krijuar më parë me emrin DSC.
- Ne specifikojmë bazën e të dhënave në cilësimet e lidhjes DSC.
- Klikoni Finish.
- Përpara përfundimit të konfigurimit, kontrollojmë që lidhja po funksionon (Test Data Source).
- Done.
Krijimi i një baze të dhënash devices.mdb në MS Access. Hapni MS Access dhe krijoni një bazë të dhënash boshe të quajtur devices.mdb.
- Shkoni te skeda e të dhënave të jashtme dhe klikoni në bazën e të dhënave ODBC. Në dritaren që shfaqet, zgjidhni Krijo një tabelë të lidhur për t'u lidhur me burimin e të dhënave.
- Në dritaren e re, zgjidhni skedën Burimi i të dhënave të makinës dhe klikoni OK. Në dritaren e re, futni kredencialet për t'u lidhur me serverin SQL.
- Zgjidhni tabelat që duhet të lidhen. Kontrolloni kutinë Ruaj fjalëkalimin dhe klikoni OK. Ruani fjalëkalimin çdo herë për të tre tabelat.
- Në indekset ju duhet të zgjidhni sa vijon:
— TargetName për tabelën dbo_Devices;
— Emri i nyjës ose adresa IP për dbo_RegistrationData;
— NodeName ose IPadresa për dbo_StatusReport. - Le të riemërtojmë tabelat në MS Access, domethënë: hiqni prefiksin dbo_ në mënyrë që DSC t'i përdorë ato.
- Done.
- Ruani skedarin dhe mbyllni MS Access. Tani kopjojmë pajisjet.mdb që rezultojnë në serverin DSC (si parazgjedhje në C: Program FilesWindowsPowershellDSCService) dhe zëvendësojmë ekzistuesin me të (nëse ekziston).
Konfigurimi i serverit DSC për të përdorur SQL
- Ne kthehemi te serveri DSC. Për t'u lidhur me serverin SQL me skedarin tonë proxy, le të krijojmë një lidhje të re ODBC në serverin DSC. Emri, thellësia e bitit dhe cilësimet e lidhjes duhet të jenë të njëjta si kur krijoni skedarin MDB. Nga këtu mund të kopjoni pajisjet e zbrazëta tashmë të konfiguruara.mdb.
- Për të përdorur pajisjet.mdb, duhet të bëni ndryshime në web.config të serverit tërheqës DSC (parazgjedhja është C:inetpubPSDSCPullServerweb.config):
- për 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;">
- për 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;">
Kjo përfundon konfigurimin e serverit DSC.
Kontrollimi i funksionalitetit të serverit DSC
- Le të kontrollojmë nëse serveri DSC është i aksesueshëm përmes një shfletuesi uebi.
- Tani le të kontrollojmë nëse serveri i tërheqjes DSC po funksionon siç duhet. Për ta bërë këtë, moduli xPSDesiredStateConfiguration përfshin skriptin pullserversetuptests.ps1. Para se të ekzekutoni këtë skript, duhet të instaloni një modul Powershell të quajtur Pester. Instaloni atë Install-Module -Emri Pester.
- Hapni C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<versioni i modulit>DSCPullServerSetupPullServerDeploymentVerificationTest (në shembullin version 8.0.0.0.0).
- Hapni PullServerSetupTests.ps1 dhe kontrolloni shtegun për në web.config të serverit DSC. Rruga drejt web.config, e cila do të kontrollojë skriptin, është e theksuar me të kuqe. Nëse është e nevojshme, ne e ndryshojmë këtë rrugë.
- Ekzekutoni pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Të gjitha punët. - Në SQL Management Studio ne shohim që hostet e administruar dërgojnë raporte në serverin e raportimit DSC dhe të dhënat përfundojnë në bazën e të dhënave DSC në serverin SQL.
Kjo eshte e gjitha. Në artikujt e mëposhtëm planifikoj t'ju tregoj se si të ndërtoni raporte mbi të dhënat e marra dhe do të prek çështjet në lidhje me tolerancën dhe shkallëzimin e gabimeve.
Burimi: www.habr.com