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
Natagpuan ko ang paraang ito: para sa mga gumagamit ng Windows Server 2012 at 2016, magagawa mo
Tandaan: Para sa Windows Server 2016 dapat mong gamitin
Hindi ako magdetalye tungkol sa proseso ng pag-deploy ng DSC pull server, ito ay napakahusay na inilarawan
-
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).
-
Enable32BitAppOnWin64 = $true
Kung hindi mo gagawin ang pagbabagong ito, hindi mo magagawang patakbuhin ang AppPool DSC server sa IIS gamit ang WSUS.
- 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
- Gumawa tayo ng walang laman na database ng SQL na pinangalanang DSC.
- 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.
- Pumunta sa seksyong User Mapping. Piliin ang database, sa kasong ito DSC. Ibinibigay namin ang mga karapatan ng may-ari ng database.
- Tapos na.
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.
- Upang mag-import ng data, patakbuhin ang SQL Server Import at Export Wizard.
- Pinipili namin kung saan namin kukunin ang data - sa aming kaso ito ay isang database ng Microsoft Access. I-click ang Susunod.
- Piliin ang file kung saan namin ini-import ang diagram.
- Ipinapahiwatig namin kung saan mag-i-import - para sa amin ito ay isang database ng SQL.
- Piliin ang SQL server (Server Name) at ang database kung saan kami mag-i-import ng data (DataBase).
- 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).
- Pinipili namin ang mga talahanayan kung saan ii-import namin ang schema ng database.
- Lagyan ng check ang Run Immediately checkbox at i-click ang Tapos.
- Tapos na.
- Bilang resulta, dapat na lumitaw ang mga talahanayan sa database ng DSC.
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:
- 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).
- Ipinapahiwatig namin na kami ay kumonekta sa SQL server. I-click ang Tapos na.
- Tukuyin ang pangalan at server kung saan kumonekta. Pagkatapos ay kailangang gumawa ng koneksyon na may parehong mga parameter sa DSC server.
- Ipinapahiwatig namin na para kumonekta sa SQL server, gumagamit kami ng dating ginawang login na may pangalang DSC.
- Tinukoy namin ang database sa mga setting ng koneksyon ng DSC.
- I-click ang Tapos na.
- Bago kumpletuhin ang setup, tinitingnan namin kung gumagana ang koneksyon (Test Data Source).
- Tapos na.
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.
- 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.
- 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.
- 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.
- Sa mga index kailangan mong piliin ang mga sumusunod:
— TargetName para sa dbo_Devices table;
— NodeName o IPAddress para sa dbo_RegistrationData;
— NodeName o IPAddress para sa dbo_StatusReport. - Palitan natin ang pangalan ng mga talahanayan sa MS Access, ibig sabihin: tanggalin ang dbo_ prefix upang magamit ng DSC ang mga ito.
- Tapos na.
- 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
- 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.
- 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
- Suriin natin na ang DSC server ay naa-access sa pamamagitan ng isang web browser.
- 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.
- Buksan ang C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (sa halimbawang bersyon 8.0.0.0.0).
- 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.
- Patakbuhin ang pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - 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.
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