„PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

„PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

„PowerShell Desired State Configuration“ (DSC) labai supaprastina operacinės sistemos, serverio vaidmenų ir programų diegimo ir konfigūravimo darbą, kai turite šimtus serverių.

Bet naudojant DSC on-premises, t.y. ne MS Azure, yra keletas niuansų. Jie ypač pastebimi, jei organizacija yra didelė (nuo 300 darbo vietų ir serverių) ir dar neatrado konteinerių pasaulio:

  • Nėra išsamių ataskaitų apie sistemų būklę. Jei reikiama konfigūracija kai kuriuose serveriuose nebuvo pritaikyta, be šių ataskaitų mes apie tai nesužinosime. Gana sunku gauti informaciją iš integruoto ataskaitų teikimo serverio, o daugeliui kompiuterių tai taip pat gali užtrukti ilgai.
  • Trūksta mastelio ir atsparumo gedimams. Neįmanoma sukurti DSC ištraukiamų žiniatinklio serverių ūkio, kuriame būtų viena gedimams atspari duomenų bazė ir bendra konfigūracijų, modulių ir registracijos raktų MOF failų saugykla.

Šiandien aš jums pasakysiu, kaip galite išspręsti pirmąją problemą ir gauti duomenis ataskaitoms. Viskas būtų paprasčiau, jei SQL būtų galima naudoti kaip duomenų bazę. MS pažadai integruotas palaikymas tik sistemoje „Windows Server 2019“ arba „Windows Server 1803“. Gaukite duomenis taip pat naudodami „OleDB“ teikėją neveiksnes DSC serveris naudoja pavadintą parametrą, kurio visiškai nepalaiko OleDbCommand.

Radau šį metodą: tiems, kurie naudoja Windows Server 2012 ir 2016, galite įsteigti naudojant SQL duomenų bazę kaip DSC užklausų serverio užpakalinę programą. Norėdami tai padaryti, sukursime „proxy“ .mdb failo su susijusiomis lentelėmis pavidalu, kuris nukreips iš klientų ataskaitų gautus duomenis į SQL serverio duomenų bazę.

Pastaba: „Windows Server 2016“ turite naudoti AccessDatabaseEngine2016x86nes Microsoft.Jet.OLEDB.4.0 nebepalaikomas.

Smulkiau nekalbėsiu apie DSC traukos serverio diegimo procesą, jis labai gerai aprašytas čia. Tik atkreipsiu dėmesį į keletą punktų. Jei įdiegsime DSC ištraukiklį tame pačiame žiniatinklio serveryje su WSUS arba Kaspersky Security Center, tada konfigūracijos kūrimo scenarijuje turime pakeisti šiuos parametrus:

  1. UseSecurityBestPractices     = $false

    Priešingu atveju TLS 1.0 bus išjungtas ir negalėsite prisijungti prie SQL duomenų bazės. Kaspersky Security Center taip pat neveiks (problema turėtų būti išspręsta naudojant Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Jei neatliksite šio pakeitimo, negalėsite paleisti AppPool DSC serverio IIS su WSUS.

  3. Diegdami DSC serverį su WSUS, išjunkite DSC svetainės statinį ir dinaminį talpyklą.

Pereikime prie DSC serverio nustatymo naudoti SQL duomenų bazę.

SQL duomenų bazės kūrimas

  1. Sukurkime tuščią SQL duomenų bazę pavadinimu DSC.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  2. Sukurkime paskyrą, kad galėtume prisijungti prie šios duomenų bazės. Pirmiausia patikrinkite, ar SQL serveris leidžia autentifikuoti ir Windows, ir SQL paskyras.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  3. Eikite į skyrių „User Mapping“. Pasirinkite duomenų bazę, šiuo atveju DSC. Suteikiame duomenų bazės savininko teises.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  4. Atlikta.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

DSC duomenų bazės schemos kūrimas

Yra du būdai sukurti DSC duomenų bazės schemą:

  • nepriklausomai, per TSQL scenarijų
    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
  • importuoti duomenis iš tuščių įrenginių.mdb kaip PS modulio PSDesiredStateConfiguration dalį per SQL duomenų importavimo vedlį.

    Devices.mdb, su kuriuo dirbsime, yra C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Norėdami importuoti duomenis, paleiskite SQL serverio importavimo ir eksportavimo vedlį.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  2. Mes pasirenkame, iš kur gausime duomenis – mūsų atveju tai yra Microsoft Access duomenų bazė. Spustelėkite Kitas.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  3. Pasirinkite failą, iš kurio importuosime diagramą.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  4. Nurodome kur importuoti – mums tai SQL duomenų bazė.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  5. Pasirinkite SQL serverį (Server Name) ir duomenų bazę, į kurią importuosime duomenis (DataBase).

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  6. Pasirinkite parinktį Kopijuoti duomenis iš vienos ar daugiau lentelių arba rodinių (duomenų kopijavimas iš lentelių ar rodinių).

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  7. Parenkame lenteles, iš kurių importuosime duomenų bazės schemą.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  8. Pažymėkite žymės langelį Vykdyti nedelsiant ir spustelėkite Baigti.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  9. Atlikta.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  10. Dėl to lentelės turėtų atsirasti DSC duomenų bazėje.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

.mdb „proxy“ failo nustatymas

ODBC ryšio su SQL serveriu sukūrimas. Daroma prielaida, kad MS Access nėra įdiegta serveryje, kuriame veikia DSC, todėl duomenų bazės.mdb nustatymas atliekamas tarpiniame pagrindiniame kompiuteryje, kuriame įdiegta MS Access.

Sukurkime sisteminį ODBC ryšį su SQL serveriu (ryšio bitumas turi atitikti MS Access bitumą – 64 arba 32). Jį galima sukurti naudojant:
- 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

— arba rankiniu būdu, naudojant prisijungimo vedlį:

  1. Atidarykite Administravimo įrankius. ODBC duomenų šaltinius parenkame priklausomai nuo įdiegtos MS Access versijos. Eikite į skirtuką Sistemos DSN ir sukurkite sistemos ryšį (Pridėti).

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  2. Nurodome, kad prisijungsime prie SQL serverio. Spustelėkite Baigti.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  3. Nurodykite pavadinimą ir serverį, prie kurio norite prisijungti. Tada DSC serveryje reikės sukurti ryšį su tais pačiais parametrais.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  4. Nurodome, kad prisijungti prie SQL serverio naudojame anksčiau sukurtą prisijungimą pavadinimu DSC.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  5. DSC ryšio nustatymuose nurodome duomenų bazę.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  6. Spustelėkite Baigti.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  7. Prieš užbaigdami sąranką patikriname, ar ryšys veikia (Test Data Source).

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  8. Atlikta.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

Devices.mdb duomenų bazės kūrimas programoje MS Access. Paleiskite MS Access ir sukurkite tuščią duomenų bazę, pavadintą devices.mdb.

„PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  1. Eikite į skirtuką Išoriniai duomenys ir spustelėkite ODBC duomenų bazė. Atsidariusiame lange pasirinkite Sukurti susietą lentelę, kad prisijungtumėte prie duomenų šaltinio.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  2. Naujame lange pasirinkite skirtuką Įrenginio duomenų šaltinis ir spustelėkite Gerai. Naujame lange įveskite kredencialus, kad prisijungtumėte prie SQL serverio.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  3. Pasirinkite lenteles, kurias reikia susieti. Pažymėkite laukelį Išsaugoti slaptažodį ir spustelėkite Gerai. Kiekvieną kartą išsaugokite visų trijų lentelių slaptažodį.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  4. Rodyklėse turite pasirinkti:
    — „dbo_Devices“ lentelės „TargetName“;

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

    — „dbo_RegistrationData“ mazgo pavadinimas arba IP adresas;

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

    — NodeName arba IPAddress, skirta dbo_StatusReport.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  5. Pervardykime lenteles MS Access, būtent: pašalinkite dbo_ priešdėlį, kad DSC galėtų jas naudoti.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  6. Atlikta.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  7. Išsaugokite failą ir uždarykite MS Access. Dabar nukopijuojame gautą devices.mdb į DSC serverį (pagal numatytuosius nustatymus C: Program FilesWindowsPowershellDSCService) ir pakeičiame esamą (jei ji yra).

DSC serverio konfigūravimas naudoti SQL

  1. Grįžtame į DSC serverį. Norėdami prisijungti prie SQL serverio naudodami tarpinio serverio failą, sukurkime naują ODBC ryšį DSC serveryje. Pavadinimas, bitų gylis ir ryšio parametrai turi būti tokie patys kaip ir kuriant MDB failą. Iš čia galite nukopijuoti jau sukonfigūruotus tuščius įrenginius.mdb.
  2. Norėdami naudoti devices.mdb, turite pakeisti DSC ištraukimo serverio web.config (numatytasis nustatymas yra C:inetpubPSDSCPullServerweb.config):

– skirta „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;">

– skirta „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;">

Tai užbaigia DSC serverio sąranką.

DSC serverio funkcionalumo tikrinimas

  1. Patikrinkime, ar DSC serveris pasiekiamas per interneto naršyklę.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  2. Dabar patikrinkime, ar DSC ištraukimo serveris veikia tinkamai. Norėdami tai padaryti, xPSDesiredStateConfiguration modulyje yra pulserversetuptests.ps1 scenarijus. Prieš paleisdami šį scenarijų, turite įdiegti Powershell modulį pavadinimu Pester. Įdiekite jį Install-Module -Name Pester.
  3. Atidarykite C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modulio versija>DSCPullServerSetupPullServerDeploymentVerificationTest (pavyzdyje versija 8.0.0.0.0).

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  4. Atidarykite PullServerSetupTests.ps1 ir patikrinkite kelią į DSC serverio web.config. Kelias į web.config, kuris patikrins scenarijų, yra paryškintas raudonai. Jei reikia, šį kelią keičiame.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  5. Paleiskite pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

  6. SQL valdymo studijoje matome, kad administruojami pagrindiniai kompiuteriai siunčia ataskaitas į DSC ataskaitų teikimo serverį ir duomenys patenka į SQL serverio DSC duomenų bazę.

    „PowerShell“ pageidaujamos būsenos konfigūracija ir failas: 1 dalis. „DSC Pull Server“ konfigūravimas darbui su SQL duomenų baze

Tai viskas. Tolesniuose straipsniuose ketinu papasakoti, kaip sudaryti gautų duomenų ataskaitas, ir paliesiu problemas, susijusias su atsparumu gedimams ir mastelio keitimu.

Šaltinis: www.habr.com

Добавить комментарий