PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

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 promesak integratutako laguntza Windows Server 2019 edo Windows Server 1803 eraikitzeko soilik. Lortu datuak OleDB hornitzailea erabiliz ere ez du funtzionatukoDSC zerbitzariak OleDbCommand-ek guztiz onartzen ez duen parametro izendatu bat erabiltzen baitu.

Metodo hau aurkitu dut: Windows Server 2012 eta 2016 erabiltzen dutenentzat, dezakezu konfiguratu SQL datu-base bat erabiliz DSC kontsulta zerbitzariaren backend gisa. Horretarako, "proxy" bat sortuko dugu .mdb fitxategi baten moduan, erlazionatutako taulak dituena, bezeroen txostenetatik jasotako datuak SQL zerbitzariaren datu-basera birbideratuko dituena.

Oharra: Windows Server 2016rako erabili behar duzu AccessDatabaseEngine2016x86Microsoft.Jet.OLEDB.4.0 jada ez baita onartzen.

Ez naiz DSC pull zerbitzaria zabaltzeko prozesuari buruz xehetasun gehiago sartuko, oso ondo deskribatuta dago Hemen. Puntu pare bat besterik ez ditut ohartuko. DSC tiratzailea WSUS edo Kaspersky Security Center-ekin web zerbitzari berean zabaltzen badugu, konfigurazioa sortzeko scriptean parametro hauek aldatu behar ditugu:

  1. 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).

  2. Enable32BitAppOnWin64   = $true

    Aldaketa hau egiten ez baduzu, ezin izango duzu AppPool DSC zerbitzaria exekutatu IIS-en WSUSrekin.

  3. DSC zerbitzaria WSUSrekin instalatzean, desgaitu DSC gunerako cache estatikoa eta dinamikoa.

Goazen DSC zerbitzaria konfiguratzera SQL datu-basea erabiltzeko.

SQL datu-base bat sortzea

  1. Sortu dezagun DSC izeneko SQL datu-base huts bat.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  2. Sortu dezagun kontu bat datu-base honetara konektatzeko. Lehenik eta behin, egiaztatu SQL zerbitzariak Windows zein SQL kontuen autentifikazioa ahalbidetzen duela.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  3. Joan Erabiltzaileen mapaketa atalera. Hautatu datu-basea, kasu honetan DSC. Datu-basearen jabearen eskubideak ematen ditugu.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  4. Done.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

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.

  1. Datuak inportatzeko, exekutatu SQL Server inportazio eta esportazio morroia.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  2. Datuak nondik aterako ditugun aukeratzen dugu; gure kasuan, Microsoft Access datu-base bat da. Sakatu Hurrengoa.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  3. Hautatu diagrama inportatzen dugun fitxategia.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  4. Non inportatu behar den adierazten dugu - guretzat SQL datu-base bat da.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  5. Hautatu SQL zerbitzaria (Zerbitzariaren izena) eta datuak inportatuko ditugun datu-basea (DataBase).

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  6. Hautatu Kopiatu datuak taula edo ikuspegi batetik edo gehiagotik (taula edo ikuspegietatik datuak kopiatzen).

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  7. Datu-basearen eskema inportatuko dugun taulak hautatzen ditugu.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  8. Markatu Exekutatu berehala kontrol-laukia eta egin klik Amaitu.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  9. Done.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  10. Ondorioz, taulak DSC datu-basean agertu behar dira.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

.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:

  1. Ireki Administrazio-tresnak. ODBC datu-iturriak hautatzen ditugu instalatutako MS Access-en bertsioaren arabera. Joan Sistema DSN fitxara eta sortu sistemaren konexio bat (Gehitu).

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  2. SQL zerbitzariarekin konektatuko garela adierazten dugu. Sakatu Amaitu.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  3. Zehaztu konektatu nahi duzun izena eta zerbitzaria. Ondoren, parametro berdinak dituen konexio bat sortu beharko da DSC zerbitzarian.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  4. Adierazi dugu SQL zerbitzariarekin konektatzeko, aurrez sortutako login bat erabiltzen dugula DSC izenarekin.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  5. Datu-basea DSC konexio-ezarpenetan zehazten dugu.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  6. Sakatu Amaitu.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  7. Konfigurazioa amaitu aurretik, konexioa funtzionatzen ari dela egiaztatuko dugu (Test Data Source).

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  8. Done.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

MS Access-en devices.mdb datu-base bat sortzea. Abiarazi MS Access eta sortu devices.mdb izeneko datu-base huts bat.

PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  1. Joan Kanpoko Datuak fitxara eta egin klik ODBC Datu-basean. Agertzen den leihoan, hautatu Sortu estekatutako taula bat datu-iturburura konektatzeko.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  2. Leiho berrian, hautatu Machine Data Source fitxa eta egin klik Ados. Leiho berrian, sartu SQL zerbitzariarekin konektatzeko kredentzialak.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  3. Hautatu lotu behar diren taulak. Markatu Gorde pasahitza laukia eta egin klik Ados. Gorde pasahitza hiru tauletarako aldi bakoitzean.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  4. Aurkibideetan honako hau hautatu behar duzu:
    — TargetName dbo_Devices taularako;

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

    — NodeName edo IPAddress dbo_RegistrationData-rako;

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

    — NodeName edo IPAddress dbo_StatusReport-erako.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  5. Berrienda ditzagun MS Access-en taulei, hots: kendu dbo_ aurrizkia, DSCk erabil ditzan.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  6. Done.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  7. 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

  1. 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.
  2. 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

  1. Egiaztatu dezagun DSC zerbitzaria web-arakatzaile baten bidez eskuragarri dagoela.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  2. 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.
  3. Ireki C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<moduluaren bertsioa>DSCPullServerSetupPullServerDeploymentVerificationTest (adibideko 8.0.0.0.0 bertsioan).

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  4. 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.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

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

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

  6. SQL Management Studio-n ikusten dugu administratutako ostalariek txostenak bidaltzen dituztela DSC txostenen zerbitzarira eta datuak SQL zerbitzariko DSC datu-basean amaitzen direla.

    PowerShell nahi den egoeraren konfigurazioa eta fitxategia: 1. zatia. DSC Pull Server konfiguratzea SQL datu-base batekin lan egiteko

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

Gehitu iruzkin berria