
PowerShell Desired State Configuration (DSC) e bën shumë më të lehtë procesin e shpërndarjes dhe konfigurimit të sistemit operativ, rolit të serverit dhe aplikacioneve, kur keni qindra servera.
Por gjatë përdorimit të DSC në vend, pra jo në MS Azure, dalin disa nuanca. Këto janë veçanërisht të ndjeshme nëse organizata është e madhe (nga 300 stacione pune dhe servera) dhe nuk ka hapur ende botën e kontejnerëve:
- Nuk ka raporte tĂ« plota mbi gjendjen e sistemeve. NĂ«se konfigurimi i nevojshĂ«m nuk aplikohet nĂ« disa servera, pa kĂ«to raporte nuk do ta mĂ«sojmĂ« kurrĂ«. Marrja e informacionit nga serveri i integruar tĂ« raporteve Ă«shtĂ« mjaft e vĂ«shtirĂ«, dhe pĂ«r njĂ« numĂ«r tĂ« madh hostesh â edhe e gjatĂ«.
- Mungon shkallëzueshmëria dhe qëndrueshmëria. Nuk është e mundur të ndërtoni një fermë të serverëve DSC që pyesin, të cilët do të kishin një bazë të përbashkët të qëndrueshmërisë dhe një magazinë të përbashkët të skedarëve mof të konfigurimeve, moduleve dhe çelësave të regjistrimit.
Sot do të flas për mënyrën se si mund të zgjidhet problemi i parë dhe si të merrni të dhëna për ndërtimin e raportimeve. Do të ishte më e lehtë nëse si bazë të dhënash mund të përdornim SQL. MS ka mbështetje të integruar vetëm në Windows Server 2019 ose në build Windows Server 1803. Marrja e të dhënave duke përdorur OleDB provider nuk do të funksionojë , pasi serveri DSC përdor parametrin e emërtuar, i cili nuk mbështetet plotësisht nga OleDbCommand.
Këtu gjeta një mënyrë: atyre që përdorin Windows Server 2012 dhe 2016, u është e mundur përdorimi i DB SQL si backend për serverin DSC që pyes. Për këtë do të krijojmë një "proksi" në formën e një skedari .mdb me tabela të lidhura, që do të drejtojë të dhënat e marra nga raportet e klientëve në DB SQL server.
Vërejtje: për Windows Server 2016 është e nevojshme të përdorim , pasi Microsoft.Jet.OLEDB.4.0 nuk mbështetet më.
Nuk do të ndalem në procesin e shpërndarjes së serverit DSC, pasi ai është përshkruar shumë mirë . Do të theksoj vetëm disa pika. Nëse po shpërndajmë serverin DSC në një server në ueb me WSUS ose Kaspersky Security Center, atëherë në skenarin e krijimit të konfigurimit duhet të ndryshojmë parametrat e mëposhtëm:
UseSecurityBestPractices = $falsePërndryshe, TLS 1.0 do të çaktivizohet, dhe nuk do të mund të lidhesh me DB SQL. Kaspersky Security Center gjithashtu nuk do të funksionojë (problemi duhet të zgjidhet në Kaspersky Security Center v11).
Enable32BitAppOnWin64 = $trueNëse nuk e bëni këtë ndryshim, nuk do të mund të filloni AppPool të DSC-serverit në IIS me WSUS.
- Kur instaloni DSC-serverin së bashku me WSUS, çaktivizoni keshtjellimin statik dhe dinamik për faqen DSC.
Të kalojmë në konfigurimin e serverit DSC për të përdorur DB SQL.
Krijimi i DB SQL
- Të krijojmë një databazë të zbrazët SQL me emrin DSC.


- Të krijojmë një llogari për t'u lidhur me këtë databazë. Së pari, kontrolloni që në SQL-server të lejohet autentifikimi i të dy llojeve të llogarive: Windows dhe SQL.


- Shkoni te Seksioni i Hartimit të Përdoruesve. Zgjidhni databazën, në këtë rast - DSC. Jepni të drejtat e pronarit të databazës.

- Gati.

Krijimi i skemës për databazën DSC
Krijimi i skemës për databazën DSC mund të bëhet në dy mënyra:
- vetë, përmes një skenari në 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ënat nga një devices.mdb të zbrazët brenda modulit PS të PSDesiredStateConfiguration përmes Asistentit të Importit të të Dhënave SQL.
Devices.mdb, me të cilin do të punojmë, ndodhet në C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Për të importuar të dhënat fillojmë Asistentin e Importit dhe Eksportit të SQL Server.

- Zgjidhni nga ku do tĂ« marrim tĂ« dhĂ«nat â nĂ« rastin tonĂ«, kjo Ă«shtĂ« databaza Microsoft Access. Shtypni Next.

- Zgjidhni skedarin nga i cili importojmë skemën.

- Specifikoni ku do tĂ« importoni â ne e kemi kĂ«tĂ« DB SQL.

- Zgjidhni SQL-serverin (Emri i Serverit) dhe databazën në të cilën do të importoni të dhënat (DataBase).

- Zgjidhni opsionin Kopjoni të dhënat nga një ose më shumë tabela ose pamje (kopjimi i të dhënave nga tabelat ose pamjet).

- Zgjidhni tabelat nga të cilat do të importoni skemën e databazës.

- Vënit shenjën Run Immediately dhe klikoni Finish.

- Gati.

- Si rezultat, në DB DSC duhet të shfaqen tabelat.

Konfigurimi i skedarit .mdb 'proxy'
Krijimi i lidhjes ODBC me SQL serverin. Supozohët se MS Access nuk është instaluar në serverin me DSC, prandaj konfigurimi i databases.mdb bëhet në një host ndërmjetës me MS Access të instaluar.
TĂ« krijojmĂ« njĂ« lidhje sistemore ODBC me SQL serverin (pĂ«rmasat e lidhjes duhet tĂ« pĂ«rputhen me ato tĂ« MS Access â 64 ose 32). Kjo mund tĂ« krijohet me:
â komandĂ«n Powershell:
Add-OdbcDsn âName DSC âDriverName 'SQL Server' âPlatform '' âDsnType System âSetPropertyValue @('Description=DSC Pull Server',"Server=''",'Trusted_Connection=yes','Database=DSC') âPassThruâ ose manualisht, me ndihmĂ«n e wizard-it tĂ« lidhjeve:
- Hapin mjetet administrative. Zgjidhni burimet e të dhënave ODBC në varësi të versionit të instaluar të MS Access. Kaloni në skedën System DSN dhe krijoni një lidhje sistemore (Shto).

- Tregoni se do të lidhni me SQL serverin. Klikoni Finish.

- Tregoni emrin dhe serverin për lidhjen. Pastaj, lidhja me të njëjtat parametra duhet të krijohet në serverin DSC.

- Tregoni se për lidhjen me SQL serverin përdoret login-i që ne krijuam paraprakisht me emrin DSC.

- Caktoni DB-në në cilësimet e lidhjes DSC.

- Klikoni Finish.

- Para se të përfundoni konfigurimin, kontrolloni që lidhja të funksionojë (Test Data Source).

- Gati.

Krijimi i bazës së të dhënave devices.mdb në MS Access. Hapni MS Access dhe krijoni një bazë të re të zbrazët me emrin devices.mdb.

- Kaloni në skedën të dhëna të jashtme, klikoni në bazën e të dhënave ODBC. Në dritaren që shfaqet, zgjidhni Krijo tabelë të lidhur për lidhje me burimin e të dhënave.

- Në dritaren e re zgjidhni skedën Machine Data Source dhe klikoni OK. Në dritaren e re, futni kredencialet për lidhjen me SQL serverin.

- Zgjidhni tabelat që duhen lidhur. Shënoni kutinë Ruaj password-in dhe klikoni OK. Ruani password-in çdo herë për të tri tabelat.

- Në indeksat duhet të zgjidhen këto:
â TargetName pĂ«r tabelĂ«n dbo_Devices;
â NodeName ose IPAddress pĂ«r dbo_RegistrationData;
â NodeName ose IPAddress pĂ«r dbo_StatusReport.
- Rinuejmë tabelat në MS Access, konkretisht: hiqni prefiksin dbo_ për të lejuar DSC të përdorë ato.

- Gati.

- Ruani skedarin dhe mbyllni MS Access. Tani kopjoni devices.mdb të pranuar në serverin DSC (në mënyrë default në C:Program FilesWindowsPowershellDSCService) dhe zëvendësoni atë tashmë ekzistues (nëse ka).
Konfigurimi i serverit DSC për përdorimin e SQL
- Kthehemi te serveri DSC. Për të u lidhur me SQL-serverin me skedarin tonë proxy, do të krijojmë një lidhje të re ODBC në serverin DSC. Emri, dhe arkitektura, dhe cilësimet e lidhjes duhet të jenë të njëjta si kur krijuam skedarin MDB. Mund të kopjoni skedarin e zbrazët devices.mdb të cilin e kemi konfigurauar më parë këtu.
- PĂ«r tĂ« pĂ«rdorur devices.mdb, duhet tĂ« bĂ«ni disa ndryshime nĂ« web.config e serverit tĂ« pyetjes DSC (nĂ« mĂ«nyrĂ« tĂ« paracaktuar â C:inetpubPSDSCPullServerweb.config):
â pĂ«r Windows Server 2012
â pĂ«r Windows Server 2016
Këtu përfundon konfigurimi i serverit DSC.
Verifikimi i funksionimit të serverit DSC
- Do ta kontrollojmë nëse serveri DSC është i aksesueshëm përmes shfletuesit web.

- Tani do të kontrollojmë nëse funksionon siç duhet serveri i pyetjes DSC. Për këtë, në modulin xPSDesiredStateConfiguration ka skriptin pullserversetuptests.ps1. Para se ta ekzekutoni këtë skript, është e nevojshme të instaloni modulit PowerShell me emrin Pester. E instalojmë atë Install-Module -Name Pester.
- Hapim C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfigurationDSCPullServerSetupPullServerDeploymentVerificationTest (në shembuj versioni 8.0.0.0.0).

- Hapim PullServerSetupTests.ps1 dhe kontrollojmë rrugën për web.config të serverit DSC. E kam shënuar me të kuqe rrugën për web.config, e cila do të kontrollohet nga skripti. Nëse është e nevojshme, e ndryshojmë atë rrugë.

- E ekzekutojmë pullserversetuptests.ps1
Invoke-Pester .PullServerSetupTests.ps1
E gjithë puna është në rregull.
- Në SQL Management Studio shohim se hostet e administruar dërgojnë raporte në serverin e raporteve DSC dhe të dhënat bien në bazën e të dhënave DSC në SQL-server.

Këtu përfundojmë. Në artikelët e ardhshëm planifikoj të flas se si të ndërtojmë raporte me të dhënat që kemi marrë, dhe do të prekem çështje rreth qëndrueshmërisë dhe shkallëzueshmërisë.
Burimi: habr.com





































