PowerShell Desired State Configuration (DSC) senplifye anpil travay pou deplwaye ak konfigirasyon sistèm operasyon an, wòl sèvè, ak aplikasyon lè ou gen dè santèn de sèvè.
Men, lè w ap itilize DSC sou lokal, i.e. pa nan MS Azure, gen yon koup nan nuans. Yo espesyalman aparan si òganizasyon an gwo (ki soti nan 300 estasyon travay ak sèvè) epi li poko dekouvri mond lan nan resipyan:
- Pa gen okenn rapò konplè sou estati sistèm yo. Si konfigirasyon ki nesesè yo pa te aplike sou kèk serveurs, Lè sa a, san rapò sa yo nou pa pral konnen sou li. Li se byen difisil jwenn enfòmasyon nan sèvè a rapò bati-an, ak pou yon gwo kantite hôtes li kapab tou pran yon bon bout tan.
- Mank évolutivité ak tolerans fay. Li enposib pou konstwi yon fèm DSC rale sèvè entènèt ki ta gen yon sèl baz done toleran fay ak yon depo komen nan fichye mof pou konfigirasyon, modil ak kle anrejistreman.
Jodi a mwen pral di ou ki jan ou ka rezoud pwoblèm nan premye epi jwenn done pou rapò. Tout bagay ta pi senp si SQL ta ka itilize kòm yon baz done. MS
Mwen te jwenn metòd sa a: pou moun ki sèvi ak Windows Server 2012 ak 2016, ou kapab
Remak: Pou Windows Server 2016 ou dwe itilize
Mwen pa pral antre nan detay sou pwosesis la nan deplwaye yon sèvè rale DSC, li trè byen dekri
-
UseSecurityBestPractices = $false
Sinon, TLS 1.0 pral enfim epi ou pa pral kapab konekte nan baz done SQL la. Kaspersky Security Center pa pral travay tou (pwoblèm nan ta dwe rezoud nan Kaspersky Security Center v11).
-
Enable32BitAppOnWin64 = $true
Si ou pa fè chanjman sa a, ou p ap kapab kouri sèvè AppPool DSC la sou IIS ak WSUS.
- Lè w ap enstale sèvè DSC ak WSUS, enfim kachèt estatik ak dinamik pou sit DSC la.
Ann ale nan mete kanpe sèvè DSC la pou itilize baz done SQL la.
Kreye yon baz done SQL
- Ann kreye yon baz done SQL vid ki rele DSC.
- Ann kreye yon kont pou konekte avèk baz done sa a. Premyèman, tcheke si sèvè SQL la pèmèt otantifikasyon tou de kont Windows ak SQL.
- Ale nan seksyon kat itilizatè a. Chwazi baz done a, nan ka sa a DSC. Nou bay dwa pwopriyetè baz done a.
- Fè.
Kreye yon Schema pou baz done DSC
Gen de fason pou kreye yon chema pou yon baz done DSC:
- poukont li, atravè yon script 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
- enpòte done ki soti nan devices.mdb vid kòm yon pati nan modil PS PSDesiredStateConfiguration atravè SQL Data Import Wizard la.
Devices.mdb nou pral travay avèk yo sitiye nan C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- Pou enpòte done, kouri SQL Server Import and Export Wizard.
- Nou chwazi kote nou pral jwenn done yo - nan ka nou an se yon baz done Microsoft Access. Klike sou Next.
- Chwazi fichye a soti nan ki nou enpòte dyagram nan.
- Nou endike ki kote yo enpòte - pou nou li se yon baz done SQL.
- Chwazi sèvè SQL la (Non sèvè) ak baz done a nan kote nou pral enpòte done (DataBase).
- Chwazi opsyon Kopi done ki sòti nan youn oswa plis tab oswa opinyon (kopi done ki soti nan tab oswa opinyon).
- Nou chwazi tab yo kote nou pral enpòte chema baz done a.
- Tcheke kare Kouri imedyatman epi klike sou Fini.
- Fè.
- Kòm yon rezilta, tab yo ta dwe parèt nan baz done DSC la.
Mete kanpe yon fichye "proxy" .mdb
Kreye yon koneksyon ODBC ak yon sèvè SQL. Li sipoze ke MS Access pa enstale sou sèvè a kouri DSC, kidonk mete kanpe databases.mdb fè sou yon lame entèmedyè ak MS Access enstale.
Ann kreye yon koneksyon ODBC sistèm ak sèvè SQL (bitness koneksyon an dwe matche ak bitness MS Access - 64 oswa 32). Li ka kreye lè l sèvi avèk:
- 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
— oswa manyèlman, lè l sèvi avèk sòsye koneksyon an:
- Louvri zouti Administratif. Nou chwazi sous done ODBC depann de vèsyon MS Access ki enstale a. Ale nan sistèm DSN tab la epi kreye yon koneksyon sistèm (Ajoute).
- Nou endike ke nou pral konekte ak sèvè SQL la. Klike sou Fini.
- Espesifye non an ak sèvè pou konekte avèk yo. Lè sa a, yon koneksyon ak paramèt yo menm pral bezwen yo dwe kreye sou sèvè a DSC.
- Nou endike ke pou konekte avèk sèvè SQL la, nou itilize yon login ki te kreye deja ak non DSC la.
- Nou presize baz done a nan anviwònman koneksyon DSC.
- Klike sou Fini.
- Anvan w fini konfigirasyon an, nou tcheke si koneksyon an ap travay (Tès Done Sous).
- Fè.
Kreye yon baz done devices.mdb nan MS Access. Lanse MS Access epi kreye yon baz done vid ki rele devices.mdb.
- Ale nan tab la Done Ekstèn epi klike sou ODBC Database. Nan fenèt la ki parèt, chwazi Kreye yon tab lye pou konekte avèk sous done a.
- Nan nouvo fenèt la, chwazi tab la Sous Done Machin epi klike sou OK. Nan nouvo fenèt la, antre kalifikasyon yo pou konekte avèk sèvè SQL la.
- Chwazi tab yo ki bezwen lye. Tcheke bwat la Sove modpas epi klike sou OK. Sove modpas la chak fwa pou tout twa tab yo.
- Nan endèks yo ou bezwen chwazi bagay sa yo:
— TargetName pou tab la dbo_Devices;
— NodeName oswa IPAddress pou dbo_RegistrationData;
— NodeName oswa IPAddress pou dbo_StatusReport. - Ann chanje non tab yo nan MS Access, sètadi: retire prefiks dbo_ pou DSC ka itilize yo.
- Fè.
- Sove fichye a epi fèmen MS Access. Koulye a, nou kopye ki kapab lakòz devices.mdb la sou sèvè DSC la (pa default nan C: Program FilesWindowsPowershellDSCService) epi ranplase youn ki egziste deja avèk li (si li egziste).
Konfigirasyon DSC sèvè pou itilize SQL
- Nou retounen nan sèvè DSC la. Pou konekte ak sèvè SQL la ak dosye proxy nou an, ann kreye yon nouvo koneksyon ODBC sou sèvè DSC la. Non, pwofondè ti jan, ak anviwònman koneksyon yo dwe menm jan ak lè w ap kreye fichye MDB la. Ou ka kopye devices.mdb vid deja configuré soti isit la.
- Pou itilize devices.mdb, ou bezwen fè chanjman nan web.config nan sèvè rale DSC la (default se C:inetpubPSDSCPullServerweb.config):
- pou 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;">
- pou 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;">
Sa a konplete konfigirasyon sèvè DSC la.
Tcheke fonksyonalite sèvè DSC la
- Ann tcheke si sèvè DSC la aksesib atravè yon navigatè entènèt.
- Koulye a, ann tcheke si sèvè rale DSC la ap travay kòrèkteman. Pou fè sa, modil xPSDesiredStateConfiguration gen ladan script pullserversetuptests.ps1. Anvan w kouri script sa a, ou dwe enstale yon modil Powershell ki rele Pester. Enstale li Enstale-modil -Non Pester.
- Louvri C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (nan egzanp vèsyon 8.0.0.0.0).
- Louvri PullServerSetupTests.ps1 epi tcheke chemen web.config sèvè DSC la. Chemen web.config, ki pral tcheke script la, make an wouj. Si sa nesesè, nou chanje chemen sa a.
- Kouri pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - Nan SQL Management Studio nou wè ke gen tout pouvwa a administre voye rapò nan sèvè a rapò DSC ak done yo fini nan baz done a DSC sou sèvè a SQL.
Se tout. Nan atik sa yo mwen planifye pou di w kouman pou konstwi rapò sou done yo jwenn, epi mwen pral manyen pwoblèm sou tolerans fay ak évolutivité.
Sous: www.habr.com