PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

PowerShell Desired State Configuration (DSC) մեծապես հեշտացնում է օպերացիոն համակարգի, սերվերի դերերի և հավելվածների տեղակայման և կազմաձևման աշխատանքը, երբ դուք ունեք հարյուրավոր սերվերներ:

Բայց երբ օգտագործում եք DSC-ի ներսում, այսինքն. MS Azure-ում չէ, մի երկու նրբերանգ կա. Դրանք հատկապես նկատելի են, եթե կազմակերպությունը մեծ է (300 աշխատանքային կայաններից և սերվերներից) և դեռ չի հայտնաբերել բեռնարկղերի աշխարհը.

  • Համակարգերի կարգավիճակի վերաբերյալ ամբողջական հաշվետվություններ չկան: Եթե ​​որոշ սերվերների վրա անհրաժեշտ կոնֆիգուրացիան չի կիրառվել, ապա առանց այդ հաշվետվությունների մենք չենք իմանա այդ մասին: Ներկառուցված հաշվետվական սերվերից տեղեկատվություն ստանալը բավականին դժվար է, իսկ մեծ թվով հոսթների համար դա նույնպես կարող է երկար ժամանակ պահանջել։
  • Բացակայում է մասշտաբայնությունը և սխալների հանդուրժողականությունը: Անհնար է կառուցել DSC pull վեբ սերվերների ֆերմա, որը կունենա մեկ անսարքության հանդուրժող տվյալների բազա և ընդհանուր պահոց mof ֆայլերի կոնֆիգուրացիաների, մոդուլների և գրանցման բանալիների համար:

Այսօր ես ձեզ կասեմ, թե ինչպես կարող եք լուծել առաջին խնդիրը և ստանալ տվյալներ հաշվետվության համար: Ամեն ինչ ավելի պարզ կլիներ, եթե SQL-ն օգտագործվեր որպես տվյալների բազա։ MS խոստումներ ներկառուցված աջակցություն միայն Windows Server 2019-ում կամ build Windows սերվերի 1803-ում: Վերցրեք տվյալները նաև OleDB մատակարարի միջոցով չի աշխատիքանի որ DSC սերվերն օգտագործում է անվանված պարամետր, որն ամբողջությամբ չի աջակցվում OleDbCommand-ի կողմից:

Ես գտա այս մեթոդը. նրանց համար, ովքեր օգտագործում են Windows Server 2012 և 2016, դուք կարող եք մեղեդի օգտագործելով SQL տվյալների բազան որպես DSC հարցումների սերվերի հետին պլան: Դա անելու համար մենք կստեղծենք «proxy» .mdb ֆայլի տեսքով՝ կապված աղյուսակներով, որը հաճախորդների հաշվետվություններից ստացված տվյալները կվերահղորդի դեպի SQL սերվերի տվյալների բազա։

Նշում. Windows Server 2016-ի համար դուք պետք է օգտագործեք AccessDatabaseEngine2016x86քանի որ Microsoft.Jet.OLEDB.4.0-ն այլևս չի աջակցվում:

Ես չեմ մանրամասնի DSC ձգողական սերվերի տեղակայման գործընթացի մասին, այն շատ լավ նկարագրված է այստեղ. Ընդամենը նշեմ մի քանի կետ. Եթե ​​մենք տեղադրենք DSC puller-ը նույն վեբ սերվերի վրա WSUS կամ Kaspersky Security Center-ի հետ, ապա կազմաձևման ստեղծման սցենարում մենք պետք է փոխենք հետևյալ պարամետրերը.

  1. UseSecurityBestPractices     = $false

    Հակառակ դեպքում, TLS 1.0-ը կանջատվի, և դուք չեք կարողանա միանալ SQL տվյալների բազային: Kaspersky Security Center-ը նույնպես չի աշխատի (խնդիրը պետք է լուծվի Kaspersky Security Center v11-ում):

  2. Enable32BitAppOnWin64   = $true

    Եթե ​​այս փոփոխությունը չկատարեք, դուք չեք կարողանա գործարկել AppPool DSC սերվերը IIS-ում WSUS-ով:

  3. WSUS-ով DSC սերվերը տեղադրելիս անջատեք ստատիկ և դինամիկ քեշավորումը DSC կայքի համար:

Եկեք անցնենք DSC սերվերի տեղադրմանը SQL տվյալների բազան օգտագործելու համար:

SQL տվյալների բազայի ստեղծում

  1. Եկեք ստեղծենք դատարկ SQL տվյալների բազա DSC անունով:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  2. Եկեք ստեղծենք հաշիվ այս տվյալների բազային միանալու համար: Նախ ստուգեք, որ SQL սերվերը թույլ է տալիս նույնականացնել ինչպես Windows, այնպես էլ SQL հաշիվները:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  3. Գնացեք Օգտագործողի քարտեզագրման բաժին: Ընտրեք տվյալների բազան, այս դեպքում՝ DSC: Մենք տալիս ենք տվյալների բազայի սեփականատիրոջ իրավունքները:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  4. Կատարված:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

DSC տվյալների բազայի համար սխեմայի ստեղծում

DSC տվյալների բազայի համար սխեմա ստեղծելու երկու եղանակ կա.

  • ինքնուրույն, 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
  • ներմուծել տվյալները դատարկ սարքերից.mdb-ից որպես PS մոդուլի PSDesiredStateConfiguration-ի մաս SQL Data Import Wizard-ի միջոցով:

    Devices.mdb-ը, որի հետ մենք աշխատելու ենք, գտնվում է C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer-ում:

  1. Տվյալներ ներմուծելու համար գործարկեք SQL Server Import and Export Wizard-ը:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  2. Մենք ընտրում ենք, թե որտեղից կստանանք տվյալները. մեր դեպքում դա Microsoft Access տվյալների բազա է: Սեղմեք Հաջորդը:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  3. Ընտրեք այն ֆայլը, որից ներմուծում ենք դիագրամը:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  4. Մենք նշում ենք, թե որտեղ պետք է ներմուծել. մեզ համար դա SQL տվյալների բազա է:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  5. Ընտրեք SQL սերվերը (Server Name) և տվյալների բազան, որտեղ մենք ներմուծելու ենք տվյալները (DataBase):

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  6. Ընտրեք տարբերակը Պատճենել տվյալները մեկ կամ մի քանի աղյուսակներից կամ դիտումներից (տվյալների պատճենում աղյուսակներից կամ դիտումներից):

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  7. Մենք ընտրում ենք աղյուսակները, որոնցից ներմուծելու ենք տվյալների բազայի սխեման։

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  8. Ստուգեք «Անմիջապես գործարկել» վանդակը և սեղմեք «Ավարտել»:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  9. Կատարված:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  10. Արդյունքում աղյուսակները պետք է հայտնվեն DSC տվյալների բազայում:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

.mdb «proxy» ֆայլի կարգավորում

SQL սերվերի հետ ODBC կապի ստեղծում: Ենթադրվում է, որ MS Access-ը տեղադրված չէ DSC-ով աշխատող սերվերի վրա, ուստի databases.mdb-ի կարգավորումը կատարվում է միջանկյալ հոսթի վրա՝ տեղադրված MS Access:

Եկեք ստեղծենք համակարգի ODBC միացում SQL սերվերին (միացման բիտությունը պետք է համապատասխանի MS Access բիթին՝ 64 կամ 32): Այն կարող է ստեղծվել՝ օգտագործելով.
- 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

— կամ ձեռքով, օգտագործելով կապի հրաշագործը.

  1. Բացեք վարչական գործիքները: Մենք ընտրում ենք ODBC տվյալների աղբյուրներ՝ կախված տեղադրված MS Access-ի տարբերակից: Գնացեք System DSN ներդիր և ստեղծեք համակարգային կապ (Ավելացնել):

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  2. Մենք նշում ենք, որ մենք միանալու ենք SQL սերվերին: Սեղմեք Ավարտել:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  3. Նշեք անունը և սերվերը, որոնց միանալու համար: Այնուհետև նույն պարամետրերով կապը պետք է ստեղծվի DSC սերվերի վրա:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  4. Մենք նշում ենք, որ SQL սերվերին միանալու համար մենք օգտագործում ենք նախկինում ստեղծված մուտք՝ DSC անունով։

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  5. Մենք նշում ենք տվյալների բազան DSC կապի կարգավորումներում:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  6. Սեղմեք Ավարտել:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  7. Նախքան կարգավորումն ավարտելը, մենք ստուգում ենք, որ կապն աշխատում է (Test Data Source):

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  8. Կատարված:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

MS Access-ում devices.mdb տվյալների բազայի ստեղծում: Գործարկեք MS Access-ը և ստեղծեք դատարկ տվյալների բազա, որը կոչվում է devices.mdb:

PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  1. Գնացեք արտաքին տվյալների ներդիր և սեղմեք ODBC տվյալների բազա: Բացվող պատուհանում ընտրեք Ստեղծել կապակցված աղյուսակ՝ տվյալների աղբյուրին միանալու համար:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  2. Նոր պատուհանում ընտրեք «Մեքենայի տվյալների աղբյուր» ներդիրը և սեղմեք «OK»: Նոր պատուհանում մուտքագրեք հավատարմագրերը SQL սերվերին միանալու համար:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  3. Ընտրեք այն աղյուսակները, որոնք պետք է կապված լինեն: Ստուգեք «Պահպանել գաղտնաբառը» վանդակը և սեղմեք «OK»: Պահպանեք գաղտնաբառը ամեն անգամ բոլոր երեք աղյուսակների համար:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  4. Ինդեքսներում դուք պետք է ընտրեք հետևյալը.
    — TargetName dbo_Devices աղյուսակի համար;

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

    — NodeName կամ IPA հասցե dbo_RegistrationData-ի համար;

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

    — NodeName կամ IPA հասցե dbo_StatusReport-ի համար:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  5. Եկեք վերանվանենք MS Access-ի աղյուսակները, այն է՝ հեռացնել dbo_ նախածանցը, որպեսզի DSC-ն կարողանա օգտագործել դրանք:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  6. Կատարված:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  7. Պահպանեք ֆայլը և փակեք MS Access-ը: Այժմ մենք պատճենում ենք ստացված սարքերը.mdb-ը DSC սերվերում (լռելյայն C-ում: Program FilesWindowsPowershellDSCService) և փոխարինում գոյություն ունեցողը դրանով (եթե այն կա):

DSC սերվերի կարգավորում SQL-ն օգտագործելու համար

  1. Մենք վերադառնում ենք DSC սերվեր: SQL սերվերին մեր պրոքսի ֆայլով միանալու համար եկեք ստեղծենք նոր ODBC կապ DSC սերվերի վրա: Անունը, բիթերի խորությունը և կապի կարգավորումները պետք է լինեն նույնը, ինչ MDB ֆայլը ստեղծելիս: Այստեղից կարող եք պատճենել արդեն կազմաձևված դատարկ սարքերը.mdb:
  2. Devices.mdb-ն օգտագործելու համար դուք պետք է փոփոխություններ կատարեք DSC pull server-ի web.config-ում (կանխադրվածը C:inetpubPSDSCPullServerweb.config է):

- 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;">

- 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;">

Սա ավարտում է DSC սերվերի կարգավորումը:

DSC սերվերի ֆունկցիոնալության ստուգում

  1. Եկեք ստուգենք, որ DSC սերվերը հասանելի է վեբ բրաուզերի միջոցով:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  2. Հիմա եկեք ստուգենք, արդյոք DSC pull server-ը ճիշտ է աշխատում: Դա անելու համար xPSDesiredStateConfiguration մոդուլը ներառում է pullserversetuptests.ps1 սկրիպտը: Նախքան այս սցենարը գործարկելը, դուք պետք է տեղադրեք Powershell մոդուլ, որը կոչվում է Pester: Տեղադրեք այն Install-Module -Name Pester.
  3. Բացեք C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (օրինակ՝ 8.0.0.0.0 տարբերակում):

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  4. Բացեք PullServerSetupTests.ps1-ը և ստուգեք DSC սերվերի web.config տանող ուղին: Դեպի web.config ուղին, որը կստուգի սկրիպտը, ընդգծված է կարմիրով: Անհրաժեշտության դեպքում մենք փոխում ենք այս ճանապարհը։

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  5. Գործարկեք pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Ամեն ինչ աշխատում է:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

  6. SQL Management Studio-ում մենք տեսնում ենք, որ կառավարվող հոսթները հաշվետվություններ են ուղարկում DSC հաշվետվությունների սերվերին, և տվյալները հայտնվում են SQL սերվերի DSC տվյալների բազայում:

    PowerShell-ի ցանկալի վիճակի կարգավորում և ֆայլ. մաս 1. DSC Pull Server-ի կարգավորում SQL տվյալների բազայի հետ աշխատելու համար

Այսքանը: Հետևյալ հոդվածներում ես նախատեսում եմ պատմել ձեզ, թե ինչպես կարելի է հաշվետվություններ կազմել ստացված տվյալների վրա, և ես կանդրադառնամ սխալների հանդուրժողականության և մասշտաբայնության հարցերին:

Source: www.habr.com

Добавить комментарий