Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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 pwomès sipò entegre sèlman nan Windows Server 2019 oswa nan bati Windows sèvè 1803. Chèche done lè l sèvi avèk founisè OleDB tou pa pral travaypaske sèvè DSC sèvi ak yon paramèt ki nonmen ki pa konplètman sipòte pa OleDbCommand.

Mwen te jwenn metòd sa a: pou moun ki sèvi ak Windows Server 2012 ak 2016, ou kapab melodi lè l sèvi avèk yon baz done SQL kòm yon backend pou sèvè rechèch la DSC. Pou fè sa, nou pral kreye yon "proxy" nan fòm yon fichye .mdb ak tab ki asosye, ki pral redireksyon done yo resevwa nan rapò kliyan nan baz done a sèvè SQL.

Remak: Pou Windows Server 2016 ou dwe itilize AccessDatabaseEngine2016x86paske Microsoft.Jet.OLEDB.4.0 pa sipòte ankò.

Mwen pa pral antre nan detay sou pwosesis la nan deplwaye yon sèvè rale DSC, li trè byen dekri isit la. Mwen pral jis note yon koup de pwen. Si nou deplwaye puller DSC la sou menm sèvè entènèt la ak WSUS oswa Kaspersky Security Center, Lè sa a, nan script kreyasyon konfigirasyon an nou bezwen chanje paramèt sa yo:

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

  2. Enable32BitAppOnWin64   = $true

    Si ou pa fè chanjman sa a, ou p ap kapab kouri sèvè AppPool DSC la sou IIS ak WSUS.

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

  1. Ann kreye yon baz done SQL vid ki rele DSC.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  3. Ale nan seksyon kat itilizatè a. Chwazi baz done a, nan ka sa a DSC. Nou bay dwa pwopriyetè baz done a.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  4. Fè.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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.

  1. Pou enpòte done, kouri SQL Server Import and Export Wizard.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  2. Nou chwazi kote nou pral jwenn done yo - nan ka nou an se yon baz done Microsoft Access. Klike sou Next.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  3. Chwazi fichye a soti nan ki nou enpòte dyagram nan.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  4. Nou endike ki kote yo enpòte - pou nou li se yon baz done SQL.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  5. Chwazi sèvè SQL la (Non sèvè) ak baz done a nan kote nou pral enpòte done (DataBase).

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  6. Chwazi opsyon Kopi done ki sòti nan youn oswa plis tab oswa opinyon (kopi done ki soti nan tab oswa opinyon).

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  7. Nou chwazi tab yo kote nou pral enpòte chema baz done a.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  8. Tcheke kare Kouri imedyatman epi klike sou Fini.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  9. Fè.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  10. Kòm yon rezilta, tab yo ta dwe parèt nan baz done DSC la.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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:

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  2. Nou endike ke nou pral konekte ak sèvè SQL la. Klike sou Fini.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  4. Nou endike ke pou konekte avèk sèvè SQL la, nou itilize yon login ki te kreye deja ak non DSC la.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  5. Nou presize baz done a nan anviwònman koneksyon DSC.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  6. Klike sou Fini.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  7. Anvan w fini konfigirasyon an, nou tcheke si koneksyon an ap travay (Tès Done Sous).

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  8. Fè.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

Kreye yon baz done devices.mdb nan MS Access. Lanse MS Access epi kreye yon baz done vid ki rele devices.mdb.

Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  4. Nan endèks yo ou bezwen chwazi bagay sa yo:
    — TargetName pou tab la dbo_Devices;

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

    — NodeName oswa IPAddress pou dbo_RegistrationData;

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

    — NodeName oswa IPAddress pou dbo_StatusReport.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  5. Ann chanje non tab yo nan MS Access, sètadi: retire prefiks dbo_ pou DSC ka itilize yo.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  6. Fè.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

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

  1. Ann tcheke si sèvè DSC la aksesib atravè yon navigatè entènèt.

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

  2. 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.
  3. Louvri C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (nan egzanp vèsyon 8.0.0.0.0).

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done SQL

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

    Konfigirasyon Eta Dezire PowerShell ak fichye: Pati 1. Konfigirasyon DSC Pull Server pou travay avèk yon baz done 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

Add nouvo kòmantè