Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

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 premtimet mbështetje e integruar vetëm në Windows Server 2019 ose në serverin e ndërtuar Windows 1803. Merr të dhëna duke përdorur gjithashtu ofruesin OleDB nuk punonsepse Serveri DSC përdor një parametër të emërtuar që nuk mbështetet plotësisht nga OleDbCommand.

Kam gjetur këtë metodë: për ata që përdorin Windows Server 2012 dhe 2016, ju mundeni ngritur duke përdorur një bazë të dhënash SQL si një backend për serverin e pyetjeve DSC. Për ta bërë këtë, ne do të krijojmë një "proxy" në formën e një skedari .mdb me tabela shoqëruese, i cili do të ridrejtojë të dhënat e marra nga raportet e klientit në bazën e të dhënave të serverit SQL.

Shënim: Për Windows Server 2016 duhet të përdorni AccessDatabaseEngine2016x86sepse Microsoft.Jet.OLEDB.4.0 nuk mbështetet më.

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ë këtu. Unë do të vërej vetëm disa pika. Nëse vendosim tërheqësin DSC në të njëjtin server në internet me WSUS ose Kaspersky Security Center, atëherë në skriptin e krijimit të konfigurimit duhet të ndryshojmë parametrat e mëposhtëm:

  1. 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).

  2. 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.

  3. 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

  1. Le të krijojmë një bazë të dhënash boshe SQL të quajtur DSC.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  2. 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.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  3. 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.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  4. Done.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

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.

  1. Për të importuar të dhëna, ekzekutoni SQL Server Import and Export Wizard.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  2. Ne zgjedhim se nga do t'i marrim të dhënat - në rastin tonë është një bazë të dhënash Microsoft Access. Kliko Next.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  3. Zgjidhni skedarin nga i cili importojmë diagramin.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  4. Ne tregojmë se ku të importojmë - për ne është një bazë të dhënash SQL.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  5. Zgjidhni serverin SQL (Emri i Serverit) dhe bazën e të dhënave në të cilën do të importojmë të dhëna (DataBase).

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

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

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  7. Ne zgjedhim tabelat nga të cilat do të importojmë skemën e bazës së të dhënave.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  8. Kontrolloni kutinë e kontrollit Run menjëherë dhe klikoni Finish.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  9. Done.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  10. Si rezultat, tabelat duhet të shfaqen në bazën e të dhënave DSC.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

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:

  1. 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).

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  2. Ne tregojmë se do të lidhemi me serverin SQL. Klikoni Finish.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  3. 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.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  4. Ne tregojmë se për t'u lidhur me serverin SQL, ne përdorim një hyrje të krijuar më parë me emrin DSC.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  5. Ne specifikojmë bazën e të dhënave në cilësimet e lidhjes DSC.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  6. Klikoni Finish.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  7. Përpara përfundimit të konfigurimit, kontrollojmë që lidhja po funksionon (Test Data Source).

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  8. Done.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

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.

Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  1. 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.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  2. 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.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  3. Zgjidhni tabelat që duhet të lidhen. Kontrolloni kutinë Ruaj fjalëkalimin dhe klikoni OK. Ruani fjalëkalimin çdo herë për të tre tabelat.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  4. Në indekset ju duhet të zgjidhni sa vijon:
    — TargetName për tabelën dbo_Devices;

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

    — Emri i nyjës ose adresa IP për dbo_RegistrationData;

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

    — NodeName ose IPadresa për dbo_StatusReport.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  5. Le të riemërtojmë tabelat në MS Access, domethënë: hiqni prefiksin dbo_ në mënyrë që DSC t'i përdorë ato.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  6. Done.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  7. 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

  1. 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.
  2. 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

  1. Le të kontrollojmë nëse serveri DSC është i aksesueshëm përmes një shfletuesi uebi.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  2. 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.
  3. Hapni C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<versioni i modulit>DSCPullServerSetupPullServerDeploymentVerificationTest (në shembullin version 8.0.0.0.0).

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  4. 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ë.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  5. Ekzekutoni pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Të gjitha punët.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash SQL

  6. 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.

    Konfigurimi dhe skedari i gjendjes së dëshiruar të PowerShell: pjesa 1. Konfigurimi i DSC Pull Server për të punuar me një bazë të dhënash 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

Shto një koment