PowerShell Desired State Configuration (DSC) sistema eragilea, zerbitzariaren rolak eta aplikazioak zabaltzeko eta konfiguratzeko lana asko errazten du ehunka zerbitzari dituzunean.
Baina DSC lokala erabiltzean, hau da. MS Azure-n ez, ñabardura pare bat daude. Batez ere nabarmenak dira antolakuntza handia bada (300 lan-estazio eta zerbitzarietatik aurrera) eta oraindik edukiontzien mundua deskubritu ez badu:
- Ez dago sistemen egoerari buruzko txosten osorik. Beharrezko konfigurazioa zerbitzari batzuetan aplikatu ez bada, txosten horiek gabe ez dugu horren berri izango. Nahiko zaila da integratutako txosten-zerbitzaritik informazioa lortzea, eta ostalari kopuru handientzat ere denbora luzea izan daiteke.
- Eskalagarritasun eta akatsen tolerantzia falta du. Ezinezkoa da DSC pull web zerbitzarien baserri bat eraikitzea, akatsak jasan ditzaketen datu-base bakarra eta konfigurazio, modulu eta erregistro-gakoetarako mof fitxategien biltegiratze komun bat izango lukeena.
Gaur esango dizut nola konpondu dezakezun lehen arazoa eta txostenak egiteko datuak nola lortu. Dena errazagoa izango litzateke SQL datu-base gisa erabiliko balitz. ANDEREA
Metodo hau aurkitu dut: Windows Server 2012 eta 2016 erabiltzen dutenentzat, dezakezu
Oharra: Windows Server 2016rako erabili behar duzu
Ez naiz DSC pull zerbitzaria zabaltzeko prozesuari buruz xehetasun gehiago sartuko, oso ondo deskribatuta dago
-
UseSecurityBestPractices = $false
Bestela, TLS 1.0 desgaitu egingo da eta ezin izango zara SQL datu-basera konektatu. Kaspersky Security Center-ek ere ez du funtzionatuko (arazoa Kaspersky Security Center v11-n konpondu behar da).
-
Enable32BitAppOnWin64 = $true
Aldaketa hau egiten ez baduzu, ezin izango duzu AppPool DSC zerbitzaria exekutatu IIS-en WSUSrekin.
- DSC zerbitzaria WSUSrekin instalatzean, desgaitu DSC gunerako cache estatikoa eta dinamikoa.
Goazen DSC zerbitzaria konfiguratzera SQL datu-basea erabiltzeko.
SQL datu-base bat sortzea
- Sortu dezagun DSC izeneko SQL datu-base huts bat.
- Sortu dezagun kontu bat datu-base honetara konektatzeko. Lehenik eta behin, egiaztatu SQL zerbitzariak Windows zein SQL kontuen autentifikazioa ahalbidetzen duela.
- Joan Erabiltzaileen mapaketa atalera. Hautatu datu-basea, kasu honetan DSC. Datu-basearen jabearen eskubideak ematen ditugu.
- Done.
DSC Datu-baserako eskema bat sortzea
DSC datu-base baterako eskema bat sortzeko bi modu daude:
- modu independentean, TSQL script baten bidez
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
- inportatu datuak gailu hutsetatik.mdb PSdesiredStateConfiguration PS moduluaren zati gisa SQL Datuak Inportatzeko Morroiaren bidez.
Lan egingo dugun Devices.mdb C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer-en dago.
- Datuak inportatzeko, exekutatu SQL Server inportazio eta esportazio morroia.
- Datuak nondik aterako ditugun aukeratzen dugu; gure kasuan, Microsoft Access datu-base bat da. Sakatu Hurrengoa.
- Hautatu diagrama inportatzen dugun fitxategia.
- Non inportatu behar den adierazten dugu - guretzat SQL datu-base bat da.
- Hautatu SQL zerbitzaria (Zerbitzariaren izena) eta datuak inportatuko ditugun datu-basea (DataBase).
- Hautatu Kopiatu datuak taula edo ikuspegi batetik edo gehiagotik (taula edo ikuspegietatik datuak kopiatzen).
- Datu-basearen eskema inportatuko dugun taulak hautatzen ditugu.
- Markatu Exekutatu berehala kontrol-laukia eta egin klik Amaitu.
- Done.
- Ondorioz, taulak DSC datu-basean agertu behar dira.
.mdb "proxy" fitxategia konfiguratzea
ODBC konexio bat sortzea SQL zerbitzari batera. Suposatzen da MS Access ez dagoela instalatuta DSC exekutatzen duen zerbitzarian, beraz, databases.mdb konfiguratzea MS Access instalatuta duen tarteko ostalari batean egiten da.
Sortu dezagun sistemaren ODBC konexio bat SQL zerbitzariarekin (konexioaren bitsak MS Access bitsarekin bat etorri behar du - 64 edo 32). Erabiliz sor daiteke:
- Powershell cmdlet-a:
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
— edo eskuz, konexio morroia erabiliz:
- Ireki Administrazio-tresnak. ODBC datu-iturriak hautatzen ditugu instalatutako MS Access-en bertsioaren arabera. Joan Sistema DSN fitxara eta sortu sistemaren konexio bat (Gehitu).
- SQL zerbitzariarekin konektatuko garela adierazten dugu. Sakatu Amaitu.
- Zehaztu konektatu nahi duzun izena eta zerbitzaria. Ondoren, parametro berdinak dituen konexio bat sortu beharko da DSC zerbitzarian.
- Adierazi dugu SQL zerbitzariarekin konektatzeko, aurrez sortutako login bat erabiltzen dugula DSC izenarekin.
- Datu-basea DSC konexio-ezarpenetan zehazten dugu.
- Sakatu Amaitu.
- Konfigurazioa amaitu aurretik, konexioa funtzionatzen ari dela egiaztatuko dugu (Test Data Source).
- Done.
MS Access-en devices.mdb datu-base bat sortzea. Abiarazi MS Access eta sortu devices.mdb izeneko datu-base huts bat.
- Joan Kanpoko Datuak fitxara eta egin klik ODBC Datu-basean. Agertzen den leihoan, hautatu Sortu estekatutako taula bat datu-iturburura konektatzeko.
- Leiho berrian, hautatu Machine Data Source fitxa eta egin klik Ados. Leiho berrian, sartu SQL zerbitzariarekin konektatzeko kredentzialak.
- Hautatu lotu behar diren taulak. Markatu Gorde pasahitza laukia eta egin klik Ados. Gorde pasahitza hiru tauletarako aldi bakoitzean.
- Aurkibideetan honako hau hautatu behar duzu:
— TargetName dbo_Devices taularako;
— NodeName edo IPAddress dbo_RegistrationData-rako;
— NodeName edo IPAddress dbo_StatusReport-erako. - Berrienda ditzagun MS Access-en taulei, hots: kendu dbo_ aurrizkia, DSCk erabil ditzan.
- Done.
- Gorde fitxategia eta itxi MS Access. Orain, ondoriozko devices.mdb kopiatuko dugu DSC zerbitzarian (lehenespenez C: Program FilesWindowsPowershellDSCService) eta lehendik dagoena ordezkatuko dugu (baldin badago).
DSC zerbitzaria SQL erabiltzeko konfiguratzea
- DSC zerbitzarira itzuliko gara. SQL zerbitzariari gure proxy fitxategiarekin konektatzeko, sor dezagun ODBC konexio berri bat DSC zerbitzarian. Izenak, bit-sakonera eta konexio-ezarpenak MDB fitxategia sortzerakoan berdinak izan behar dira. Dagoeneko konfiguratuta dauden devices.mdb hutsak kopiatu ditzakezu hemendik.
- devices.mdb erabiltzeko, DSC pull zerbitzariaren web.config-en aldaketak egin behar dituzu (lehenetsia C:inetpubPSDSCPullServerweb.config da):
- Windows Server 2012rako
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
- Windows Server 2016rako
<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">
Honek DSC zerbitzariaren konfigurazioa osatzen du.
DSC zerbitzariaren funtzionaltasuna egiaztatzea
- Egiaztatu dezagun DSC zerbitzaria web-arakatzaile baten bidez eskuragarri dagoela.
- Orain egiazta dezagun DSC pull zerbitzariak behar bezala funtzionatzen duen. Horretarako, xPSDesiredStateConfiguration moduluak pullserversetuptests.ps1 script-a barne hartzen du. Script hau exekutatu aurretik, Pester izeneko Powershell modulua instalatu behar duzu. Instalatu Instalatu-Modulua -Izena Pester.
- Ireki C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<moduluaren bertsioa>DSCPullServerSetupPullServerDeploymentVerificationTest (adibideko 8.0.0.0.0 bertsioan).
- Ireki PullServerSetupTests.ps1 eta egiaztatu DSC zerbitzariaren web.config-erako bidea. Scripta egiaztatuko duen web.config-erako bidea gorriz nabarmenduta dago. Beharrezkoa bada, bide hau aldatzen dugu.
- Exekutatu pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - SQL Management Studio-n ikusten dugu administratutako ostalariek txostenak bidaltzen dituztela DSC txostenen zerbitzarira eta datuak SQL zerbitzariko DSC datu-basean amaitzen direla.
Hori da dena. Hurrengo artikuluetan lortutako datuei buruzko txostenak nola eraiki esan nahi dizuet, eta akatsen tolerantziari eta eskalagarritasunari buruzko gaiak ukituko ditut.
Iturria: www.habr.com