Mae PowerShell Desired State Configuration (DSC) yn symleiddio'n fawr y gwaith o leoli a ffurfweddu'r system weithredu, rolau gweinyddwyr, a chymwysiadau pan fydd gennych gannoedd o weinyddion.
Ond wrth ddefnyddio DSC ar y safle, h.y. nid yn MS Azure, mae yna un neu ddau o arlliwiau. Maent yn arbennig o amlwg os yw'r sefydliad yn fawr (o 300 o weithfannau a gweinyddwyr) ac nad yw wedi darganfod byd cynwysyddion eto:
- Nid oes adroddiadau llawn ar statws systemau. Os nad yw'r cyfluniad gofynnol wedi'i gymhwyso ar rai gweinyddwyr, yna heb yr adroddiadau hyn ni fyddwn yn gwybod amdano. Mae'n eithaf anodd cael gwybodaeth gan y gweinydd adrodd adeiledig, ac i nifer fawr o westeion gall gymryd amser hir hefyd.
- Yn brin o scalability a goddefgarwch namau. Mae'n amhosibl adeiladu fferm o weinyddion gwe tynnu DSC a fyddai ag un gronfa ddata sy'n goddef namau a storfa gyffredin o ffeiliau mof ar gyfer ffurfweddiadau, modiwlau ac allweddi cofrestru.
Heddiw byddaf yn dweud wrthych sut y gallwch ddatrys y broblem gyntaf a chael data ar gyfer adrodd. Byddai popeth yn symlach pe bai modd defnyddio SQL fel cronfa ddata. MS
Deuthum o hyd i'r dull hwn: ar gyfer y rhai sy'n defnyddio Windows Server 2012 a 2016, gallwch chi
Nodyn: Ar gyfer Windows Server 2016 mae'n rhaid i chi ei ddefnyddio
Nid af i fanylion am y broses o ddefnyddio gweinydd tynnu DSC, mae wedi'i ddisgrifio'n dda iawn
-
UseSecurityBestPractices = $false
Fel arall, bydd TLS 1.0 yn anabl ac ni fyddwch yn gallu cysylltu â chronfa ddata SQL. Ni fydd Canolfan Ddiogelwch Kaspersky hefyd yn gweithio (dylid datrys y broblem yn Kaspersky Security Center v11).
-
Enable32BitAppOnWin64 = $true
Os na wnewch y newid hwn, ni fyddwch yn gallu rhedeg y gweinydd AppPool DSC ar IIS gyda WSUS.
- Wrth osod Gweinydd DSC gyda WSUS, analluoga caching statig a deinamig ar gyfer y safle DSC.
Gadewch i ni symud ymlaen i sefydlu'r gweinydd DSC i ddefnyddio cronfa ddata SQL.
Creu Cronfa Ddata SQL
- Gadewch i ni greu cronfa ddata SQL wag o'r enw DSC.
- Gadewch i ni greu cyfrif i gysylltu â'r gronfa ddata hon. Yn gyntaf, gwiriwch fod y gweinydd SQL yn caniatáu dilysu cyfrifon Windows a SQL.
- Ewch i'r adran Mapio Defnyddwyr. Dewiswch y gronfa ddata, yn yr achos hwn DSC. Rydym yn rhoi hawliau perchennog y gronfa ddata.
- Wedi'i wneud.
Creu Sgema ar gyfer Cronfa Ddata DSC
Mae dwy ffordd o greu sgema ar gyfer cronfa ddata DSC:
- yn annibynnol, trwy sgript 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
- mewnforio data o devices.mdb gwag fel rhan o'r modiwl PS PSDesiredStateConfiguration trwy'r Dewin Mewnforio Data SQL.
Mae'r Devices.mdb y byddwn yn gweithio gyda nhw wedi'i leoli yn C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.
- I fewnforio data, rhedeg y Dewin Mewnforio ac Allforio Gweinydd SQL.
- Rydym yn dewis o ble y byddwn yn cael y data - yn ein hachos ni, cronfa ddata Microsoft Access ydyw. Cliciwch Nesaf.
- Dewiswch y ffeil yr ydym yn mewnforio'r diagram ohoni.
- Rydym yn nodi ble i fewnforio - i ni, cronfa ddata SQL ydyw.
- Dewiswch y gweinydd SQL (Enw'r Gweinydd) a'r gronfa ddata y byddwn yn mewnforio data iddi (Cronfa Ddata).
- Dewiswch yr opsiwn Copïo data o un neu fwy o dablau neu olygfeydd (copïo data o dablau neu olygfeydd).
- Rydym yn dewis y tablau y byddwn yn mewnforio sgema'r gronfa ddata ohonynt.
- Gwiriwch y blwch ticio Rhedeg ar unwaith a chliciwch Gorffen.
- Wedi'i wneud.
- O ganlyniad, dylai tablau ymddangos yn y gronfa ddata DSC.
Sefydlu ffeil “procsi” .mdb
Creu cysylltiad ODBC i weinydd SQL. Tybir nad yw MS Access wedi'i osod ar y gweinydd sy'n rhedeg DSC, felly mae sefydlu cronfeydd data.mdb yn cael ei wneud ar westeiwr canolradd gyda MS Access wedi'i osod.
Gadewch i ni greu cysylltiad ODBC system i'r gweinydd SQL (rhaid i'r bitness cysylltiad gyd-fynd â bitness MS Access - 64 neu 32). Gellir ei greu gan ddefnyddio:
- 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
— neu â llaw, gan ddefnyddio'r dewin cysylltiad:
- Offer Gweinyddol Agored. Rydym yn dewis ffynonellau data ODBC yn dibynnu ar y fersiwn o MS Access sydd wedi'i osod. Ewch i'r tab System DSN a chreu cysylltiad system (Ychwanegu).
- Rydym yn nodi y byddwn yn cysylltu â'r gweinydd SQL. Cliciwch Gorffen.
- Nodwch yr enw a'r gweinydd i gysylltu ag ef. Yna bydd angen creu cysylltiad â'r un paramedrau ar y gweinydd DSC.
- Rydym yn nodi, i gysylltu â'r gweinydd SQL, ein bod yn defnyddio mewngofnodi a grëwyd yn flaenorol gyda'r enw DSC.
- Rydym yn nodi'r gronfa ddata yn y gosodiadau cysylltiad DSC.
- Cliciwch Gorffen.
- Cyn cwblhau'r gosodiad, rydym yn gwirio bod y cysylltiad yn gweithio (Ffynhonnell Data Prawf).
- Wedi'i wneud.
Creu cronfa ddata devices.mdb yn MS Access. Lansio MS Access a chreu cronfa ddata wag o'r enw devices.mdb.
- Ewch i'r tab Data Allanol a chliciwch ar Gronfa Ddata ODBC. Yn y ffenestr sy'n ymddangos, dewiswch Creu tabl cysylltiedig i gysylltu â'r ffynhonnell ddata.
- Yn y ffenestr newydd, dewiswch y tab Ffynhonnell Data Peiriant a chliciwch Iawn. Yn y ffenestr newydd, nodwch y tystlythyrau i gysylltu â'r gweinydd SQL.
- Dewiswch y tablau sydd angen eu cysylltu. Gwiriwch y blwch Cadw cyfrinair a chliciwch Iawn. Arbedwch y cyfrinair bob tro ar gyfer y tri thabl.
- Yn y mynegeion mae angen i chi ddewis y canlynol:
— TargetName ar gyfer y tabl dbo_Devices;
— NodeName neu IPAddress ar gyfer dbo_RegistrationData;
— NodeName neu IPAddress ar gyfer dbo_StatusReport. - Gadewch i ni ailenwi'r tablau yn MS Access, sef: dileu'r rhagddodiad dbo_ fel y gall DSC eu defnyddio.
- Wedi'i wneud.
- Arbedwch y ffeil a chau MS Access. Nawr rydym yn copïo'r devices.mdb canlyniadol i'r gweinydd DSC (yn ddiofyn yn C: Program FilesWindowsPowershellDSCService) a disodli'r un presennol ag ef (os yw'n bodoli).
Ffurfweddu Gweinydd DSC i Ddefnyddio SQL
- Rydym yn dychwelyd i'r gweinydd DSC. I gysylltu â'r gweinydd SQL gyda'n ffeil dirprwy, gadewch i ni greu cysylltiad ODBC newydd ar y gweinydd DSC. Rhaid i'r enw, dyfnder did, a gosodiadau cysylltiad fod yr un fath ag wrth greu'r ffeil MDB. Gallwch gopïo'r dyfeisiau gwag sydd eisoes wedi'u ffurfweddu.mdb o'r fan hon.
- I ddefnyddio devices.mdb, mae angen i chi wneud newidiadau i web.config y gweinydd tynnu DSC (rhagosodedig yw C:inetpubPSDSCPullServerweb.config):
- ar gyfer 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;">
- ar gyfer 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;">
Mae hyn yn cwblhau gosodiad y gweinydd DSC.
Gwirio ymarferoldeb y gweinydd DSC
- Gadewch i ni wirio bod y gweinydd DSC yn hygyrch trwy borwr gwe.
- Nawr, gadewch i ni wirio a yw'r gweinydd tynnu DSC yn gweithio'n gywir. I wneud hyn, mae modiwl xPSDesiredStateConfiguration yn cynnwys y sgript pullserversetuptests.ps1. Cyn rhedeg y sgript hon, rhaid i chi osod modiwl Powershell o'r enw Pester. Ei osod Gosod-Modiwl -Name Pester.
- Agor C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<fersiwn y modiwl>DSCPullServerSetupPullServerDeploymentVerificationTest (fersiwn 8.0.0.0.0 yn yr enghraifft).
- Agorwch PullServerSetupTests.ps1 a gwiriwch y llwybr i web.config y gweinydd DSC. Mae'r llwybr i web.config, a fydd yn gwirio'r sgript, wedi'i amlygu mewn coch. Os oes angen, byddwn yn newid y llwybr hwn.
- Rhedeg pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - Yn SQL Management Studio gwelwn fod gwesteiwyr a weinyddir yn anfon adroddiadau at weinydd adrodd y DSC ac mae'r data'n dod i ben yn y gronfa ddata DSC ar y gweinydd SQL.
Dyna i gyd. Yn yr erthyglau canlynol rwy'n bwriadu dweud wrthych sut i adeiladu adroddiadau ar y data a gafwyd, a byddaf yn cyffwrdd â materion yn ymwneud â goddefgarwch namau a scalability.
Ffynhonnell: hab.com