PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

Ang PowerShell Desired State Configuration (DSC) ay lubos na pinapasimple ang trabaho ng pag-deploy at pag-configure ng operating system, mga tungkulin ng server, at mga application kapag mayroon kang daan-daang mga server.

Ngunit kapag gumagamit ng DSC on-premises, i.e. hindi sa MS Azure, mayroong isang pares ng mga nuances. Ang mga ito ay lalo na kapansin-pansin kung ang organisasyon ay malaki (mula sa 300 workstation at server) at hindi pa natutuklasan ang mundo ng mga lalagyan:

  • Walang buong ulat sa katayuan ng mga system. Kung ang kinakailangang pagsasaayos ay hindi nailapat sa ilang mga server, kung wala ang mga ulat na ito ay hindi namin malalaman ang tungkol dito. Medyo mahirap makakuha ng impormasyon mula sa built-in na server ng pag-uulat, at para sa isang malaking bilang ng mga host maaari din itong tumagal ng mahabang panahon.
  • Kulang sa scalability at fault tolerance. Imposibleng bumuo ng isang sakahan ng DSC pull web server na magkakaroon ng isang database ng fault-tolerant at isang karaniwang storage ng mof file para sa mga configuration, module at registration key.

Ngayon sasabihin ko sa iyo kung paano mo malulutas ang unang problema at makakuha ng data para sa pag-uulat. Ang lahat ay magiging mas simple kung ang SQL ay magagamit bilang isang database. MS pangako built-in na suporta lamang sa Windows Server 2019 o sa build Windows server 1803. Kumuha din ng data gamit ang OleDB provider ayaw gumanadahil gumagamit ang DSC Server ng pinangalanang parameter na hindi ganap na sinusuportahan ng OleDbCommand.

Natagpuan ko ang paraang ito: para sa mga gumagamit ng Windows Server 2012 at 2016, magagawa mo ayos gamit ang SQL database bilang backend para sa DSC query server. Upang gawin ito, gagawa kami ng "proxy" sa anyo ng isang .mdb file na may nauugnay na mga talahanayan, na magre-redirect ng data na natanggap mula sa mga ulat ng kliyente patungo sa database ng SQL server.

Tandaan: Para sa Windows Server 2016 dapat mong gamitin AccessDatabaseEngine2016x86dahil hindi na sinusuportahan ang Microsoft.Jet.OLEDB.4.0.

Hindi ako magdetalye tungkol sa proseso ng pag-deploy ng DSC pull server, ito ay napakahusay na inilarawan dito. Magpapansin lang ako ng ilang puntos. Kung i-deploy namin ang DSC puller sa parehong web server na may WSUS o Kaspersky Security Center, sa script ng paggawa ng configuration kailangan naming baguhin ang mga sumusunod na parameter:

  1. UseSecurityBestPractices     = $false

    Kung hindi, idi-disable ang TLS 1.0 at hindi ka makakakonekta sa database ng SQL. Hindi rin gagana ang Kaspersky Security Center (dapat maresolba ang problema sa Kaspersky Security Center v11).

  2. Enable32BitAppOnWin64   = $true

    Kung hindi mo gagawin ang pagbabagong ito, hindi mo magagawang patakbuhin ang AppPool DSC server sa IIS gamit ang WSUS.

  3. Kapag nag-i-install ng DSC Server na may WSUS, huwag paganahin ang static at dynamic na pag-cache para sa DSC site.

Magpatuloy tayo sa pagse-set up ng DSC server para magamit ang SQL database.

Paglikha ng isang database ng SQL

  1. Gumawa tayo ng walang laman na database ng SQL na pinangalanang DSC.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  2. Gumawa tayo ng account para kumonekta sa database na ito. Una, suriin na pinapayagan ng SQL server ang pagpapatunay ng parehong Windows at SQL account.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  3. Pumunta sa seksyong User Mapping. Piliin ang database, sa kasong ito DSC. Ibinibigay namin ang mga karapatan ng may-ari ng database.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  4. Tapos na.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

Paglikha ng Schema para sa DSC Database

Mayroong dalawang paraan upang lumikha ng isang schema para sa isang DSC database:

  • nang nakapag-iisa, sa pamamagitan ng isang TSQL script
    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
  • mag-import ng data mula sa mga walang laman na device.mdb bilang bahagi ng PS module PSDesiredStateConfiguration sa pamamagitan ng SQL Data Import Wizard.

    Ang Devices.mdb na gagawin namin ay matatagpuan sa C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Upang mag-import ng data, patakbuhin ang SQL Server Import at Export Wizard.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  2. Pinipili namin kung saan namin kukunin ang data - sa aming kaso ito ay isang database ng Microsoft Access. I-click ang Susunod.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  3. Piliin ang file kung saan namin ini-import ang diagram.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  4. Ipinapahiwatig namin kung saan mag-i-import - para sa amin ito ay isang database ng SQL.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  5. Piliin ang SQL server (Server Name) at ang database kung saan kami mag-i-import ng data (DataBase).

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  6. Piliin ang opsyong Kopyahin ang data mula sa isa o higit pang mga talahanayan o view (pagkopya ng data mula sa mga talahanayan o view).

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  7. Pinipili namin ang mga talahanayan kung saan ii-import namin ang schema ng database.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  8. Lagyan ng check ang Run Immediately checkbox at i-click ang Tapos.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  9. Tapos na.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  10. Bilang resulta, dapat na lumitaw ang mga talahanayan sa database ng DSC.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

Pagse-set up ng .mdb “proxy” file

Paglikha ng koneksyon sa ODBC sa isang SQL server. Ipinapalagay na ang MS Access ay hindi naka-install sa server na nagpapatakbo ng DSC, kaya ang pagse-set up ng databases.mdb ay ginagawa sa isang intermediate host na may MS Access na naka-install.

Gumawa tayo ng system ODBC na koneksyon sa SQL server (dapat tumugma ang bitness ng koneksyon sa bitness ng MS Access - 64 o 32). Maaari itong malikha gamit ang:
- 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

— o mano-mano, gamit ang connection wizard:

  1. Buksan ang Administrative tool. Pinipili namin ang ODBC data source depende sa bersyon ng naka-install na MS Access. Pumunta sa tab na System DSN at lumikha ng koneksyon ng system (Magdagdag).

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  2. Ipinapahiwatig namin na kami ay kumonekta sa SQL server. I-click ang Tapos na.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  3. Tukuyin ang pangalan at server kung saan kumonekta. Pagkatapos ay kailangang gumawa ng koneksyon na may parehong mga parameter sa DSC server.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  4. Ipinapahiwatig namin na para kumonekta sa SQL server, gumagamit kami ng dating ginawang login na may pangalang DSC.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  5. Tinukoy namin ang database sa mga setting ng koneksyon ng DSC.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  6. I-click ang Tapos na.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  7. Bago kumpletuhin ang setup, tinitingnan namin kung gumagana ang koneksyon (Test Data Source).

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  8. Tapos na.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

Paglikha ng database ng mga device.mdb sa MS Access. Ilunsad ang MS Access at lumikha ng walang laman na database na tinatawag na devices.mdb.

PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  1. Pumunta sa tab na Panlabas na Data at mag-click sa ODBC Database. Sa lalabas na window, piliin ang Gumawa ng naka-link na talahanayan para kumonekta sa data source.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  2. Sa bagong window, piliin ang tab na Pinagmulan ng Data ng Machine at i-click ang OK. Sa bagong window, ipasok ang mga kredensyal upang kumonekta sa SQL server.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  3. Piliin ang mga talahanayan na kailangang i-link. Lagyan ng check ang kahon ng I-save ang password at i-click ang OK. I-save ang password sa bawat oras para sa lahat ng tatlong talahanayan.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  4. Sa mga index kailangan mong piliin ang mga sumusunod:
    — TargetName para sa dbo_Devices table;

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

    — NodeName o IPAddress para sa dbo_RegistrationData;

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

    — NodeName o IPAddress para sa dbo_StatusReport.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  5. Palitan natin ang pangalan ng mga talahanayan sa MS Access, ibig sabihin: tanggalin ang dbo_ prefix upang magamit ng DSC ang mga ito.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  6. Tapos na.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  7. I-save ang file at isara ang MS Access. Ngayon ay kinokopya namin ang mga nagreresultang device.mdb sa DSC server (bilang default sa C: Program FilesWindowsPowershellDSCService) at palitan ang umiiral na isa dito (kung mayroon).

Pag-configure ng DSC Server para Gumamit ng SQL

  1. Bumalik kami sa DSC server. Upang kumonekta sa SQL server gamit ang aming proxy file, gumawa tayo ng bagong koneksyon sa ODBC sa DSC server. Ang pangalan, bit depth, at mga setting ng koneksyon ay dapat na kapareho ng kapag gumagawa ng MDB file. Maaari mong kopyahin ang na-configure nang walang laman na mga device.mdb mula dito.
  2. Upang magamit ang devices.mdb, kailangan mong gumawa ng mga pagbabago sa web.config ng DSC pull server (default ay C:inetpubPSDSCPullServerweb.config):

- para sa 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;">

- para sa 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;">

Kinukumpleto nito ang pag-setup ng DSC server.

Sinusuri ang functionality ng DSC server

  1. Suriin natin na ang DSC server ay naa-access sa pamamagitan ng isang web browser.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  2. Ngayon tingnan natin kung gumagana nang tama ang DSC pull server. Upang gawin ito, kasama sa module ng xPSDesiredStateConfiguration ang script na pullserversetuptests.ps1. Bago patakbuhin ang script na ito, dapat kang mag-install ng Powershell module na pinangalanang Pester. I-install ito I-install-Module -Name Pester.
  3. Buksan ang C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (sa halimbawang bersyon 8.0.0.0.0).

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  4. Buksan ang PullServerSetupTests.ps1 at tingnan ang path sa web.config ng DSC server. Ang path sa web.config, na susuri sa script, ay naka-highlight sa pula. Kung kinakailangan, babaguhin natin ang landas na ito.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

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

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

  6. Sa SQL Management Studio nakita namin na ang mga pinangangasiwaang host ay nagpapadala ng mga ulat sa server ng pag-uulat ng DSC at ang data ay napupunta sa DSC database sa SQL server.

    PowerShell Desired State Configuration at file: bahagi 1. Pag-configure ng DSC Pull Server upang gumana sa isang SQL database

Iyon lang. Sa mga sumusunod na artikulo plano kong sabihin sa iyo kung paano bumuo ng mga ulat sa data na nakuha, at hahawakan ko ang mga isyu tungkol sa fault tolerance at scalability.

Pinagmulan: www.habr.com

Magdagdag ng komento