PowerShell Desired State Configuration (DSC) մեծապես հեշտացնում է օպերացիոն համակարգի, սերվերի դերերի և հավելվածների տեղակայման և կազմաձևման աշխատանքը, երբ դուք ունեք հարյուրավոր սերվերներ:
Բայց երբ օգտագործում եք DSC-ի ներսում, այսինքն. MS Azure-ում չէ, մի երկու նրբերանգ կա. Դրանք հատկապես նկատելի են, եթե կազմակերպությունը մեծ է (300 աշխատանքային կայաններից և սերվերներից) և դեռ չի հայտնաբերել բեռնարկղերի աշխարհը.
- Համակարգերի կարգավիճակի վերաբերյալ ամբողջական հաշվետվություններ չկան: Եթե որոշ սերվերների վրա անհրաժեշտ կոնֆիգուրացիան չի կիրառվել, ապա առանց այդ հաշվետվությունների մենք չենք իմանա այդ մասին: Ներկառուցված հաշվետվական սերվերից տեղեկատվություն ստանալը բավականին դժվար է, իսկ մեծ թվով հոսթների համար դա նույնպես կարող է երկար ժամանակ պահանջել։
- Բացակայում է մասշտաբայնությունը և սխալների հանդուրժողականությունը: Անհնար է կառուցել DSC pull վեբ սերվերների ֆերմա, որը կունենա մեկ անսարքության հանդուրժող տվյալների բազա և ընդհանուր պահոց mof ֆայլերի կոնֆիգուրացիաների, մոդուլների և գրանցման բանալիների համար:
Այսօր ես ձեզ կասեմ, թե ինչպես կարող եք լուծել առաջին խնդիրը և ստանալ տվյալներ հաշվետվության համար: Ամեն ինչ ավելի պարզ կլիներ, եթե SQL-ն օգտագործվեր որպես տվյալների բազա։ MS
Ես գտա այս մեթոդը. նրանց համար, ովքեր օգտագործում են Windows Server 2012 և 2016, դուք կարող եք
Նշում. Windows Server 2016-ի համար դուք պետք է օգտագործեք
Ես չեմ մանրամասնի DSC ձգողական սերվերի տեղակայման գործընթացի մասին, այն շատ լավ նկարագրված է
-
UseSecurityBestPractices = $false
Հակառակ դեպքում, TLS 1.0-ը կանջատվի, և դուք չեք կարողանա միանալ SQL տվյալների բազային: Kaspersky Security Center-ը նույնպես չի աշխատի (խնդիրը պետք է լուծվի Kaspersky Security Center v11-ում):
-
Enable32BitAppOnWin64 = $true
Եթե այս փոփոխությունը չկատարեք, դուք չեք կարողանա գործարկել AppPool DSC սերվերը IIS-ում WSUS-ով:
- WSUS-ով DSC սերվերը տեղադրելիս անջատեք ստատիկ և դինամիկ քեշավորումը DSC կայքի համար:
Եկեք անցնենք DSC սերվերի տեղադրմանը SQL տվյալների բազան օգտագործելու համար:
SQL տվյալների բազայի ստեղծում
- Եկեք ստեղծենք դատարկ SQL տվյալների բազա DSC անունով:
- Եկեք ստեղծենք հաշիվ այս տվյալների բազային միանալու համար: Նախ ստուգեք, որ SQL սերվերը թույլ է տալիս նույնականացնել ինչպես Windows, այնպես էլ SQL հաշիվները:
- Գնացեք Օգտագործողի քարտեզագրման բաժին: Ընտրեք տվյալների բազան, այս դեպքում՝ DSC: Մենք տալիս ենք տվյալների բազայի սեփականատիրոջ իրավունքները:
- Կատարված:
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-ում:
- Տվյալներ ներմուծելու համար գործարկեք SQL Server Import and Export Wizard-ը:
- Մենք ընտրում ենք, թե որտեղից կստանանք տվյալները. մեր դեպքում դա Microsoft Access տվյալների բազա է: Սեղմեք Հաջորդը:
- Ընտրեք այն ֆայլը, որից ներմուծում ենք դիագրամը:
- Մենք նշում ենք, թե որտեղ պետք է ներմուծել. մեզ համար դա SQL տվյալների բազա է:
- Ընտրեք SQL սերվերը (Server Name) և տվյալների բազան, որտեղ մենք ներմուծելու ենք տվյալները (DataBase):
- Ընտրեք տարբերակը Պատճենել տվյալները մեկ կամ մի քանի աղյուսակներից կամ դիտումներից (տվյալների պատճենում աղյուսակներից կամ դիտումներից):
- Մենք ընտրում ենք աղյուսակները, որոնցից ներմուծելու ենք տվյալների բազայի սխեման։
- Ստուգեք «Անմիջապես գործարկել» վանդակը և սեղմեք «Ավարտել»:
- Կատարված:
- Արդյունքում աղյուսակները պետք է հայտնվեն DSC տվյալների բազայում:
.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
— կամ ձեռքով, օգտագործելով կապի հրաշագործը.
- Բացեք վարչական գործիքները: Մենք ընտրում ենք ODBC տվյալների աղբյուրներ՝ կախված տեղադրված MS Access-ի տարբերակից: Գնացեք System DSN ներդիր և ստեղծեք համակարգային կապ (Ավելացնել):
- Մենք նշում ենք, որ մենք միանալու ենք SQL սերվերին: Սեղմեք Ավարտել:
- Նշեք անունը և սերվերը, որոնց միանալու համար: Այնուհետև նույն պարամետրերով կապը պետք է ստեղծվի DSC սերվերի վրա:
- Մենք նշում ենք, որ SQL սերվերին միանալու համար մենք օգտագործում ենք նախկինում ստեղծված մուտք՝ DSC անունով։
- Մենք նշում ենք տվյալների բազան DSC կապի կարգավորումներում:
- Սեղմեք Ավարտել:
- Նախքան կարգավորումն ավարտելը, մենք ստուգում ենք, որ կապն աշխատում է (Test Data Source):
- Կատարված:
MS Access-ում devices.mdb տվյալների բազայի ստեղծում: Գործարկեք MS Access-ը և ստեղծեք դատարկ տվյալների բազա, որը կոչվում է devices.mdb:
- Գնացեք արտաքին տվյալների ներդիր և սեղմեք ODBC տվյալների բազա: Բացվող պատուհանում ընտրեք Ստեղծել կապակցված աղյուսակ՝ տվյալների աղբյուրին միանալու համար:
- Նոր պատուհանում ընտրեք «Մեքենայի տվյալների աղբյուր» ներդիրը և սեղմեք «OK»: Նոր պատուհանում մուտքագրեք հավատարմագրերը SQL սերվերին միանալու համար:
- Ընտրեք այն աղյուսակները, որոնք պետք է կապված լինեն: Ստուգեք «Պահպանել գաղտնաբառը» վանդակը և սեղմեք «OK»: Պահպանեք գաղտնաբառը ամեն անգամ բոլոր երեք աղյուսակների համար:
- Ինդեքսներում դուք պետք է ընտրեք հետևյալը.
— TargetName dbo_Devices աղյուսակի համար;
— NodeName կամ IPA հասցե dbo_RegistrationData-ի համար;
— NodeName կամ IPA հասցե dbo_StatusReport-ի համար: - Եկեք վերանվանենք MS Access-ի աղյուսակները, այն է՝ հեռացնել dbo_ նախածանցը, որպեսզի DSC-ն կարողանա օգտագործել դրանք:
- Կատարված:
- Պահպանեք ֆայլը և փակեք MS Access-ը: Այժմ մենք պատճենում ենք ստացված սարքերը.mdb-ը DSC սերվերում (լռելյայն C-ում: Program FilesWindowsPowershellDSCService) և փոխարինում գոյություն ունեցողը դրանով (եթե այն կա):
DSC սերվերի կարգավորում SQL-ն օգտագործելու համար
- Մենք վերադառնում ենք DSC սերվեր: SQL սերվերին մեր պրոքսի ֆայլով միանալու համար եկեք ստեղծենք նոր ODBC կապ DSC սերվերի վրա: Անունը, բիթերի խորությունը և կապի կարգավորումները պետք է լինեն նույնը, ինչ MDB ֆայլը ստեղծելիս: Այստեղից կարող եք պատճենել արդեն կազմաձևված դատարկ սարքերը.mdb:
- 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 սերվերի ֆունկցիոնալության ստուգում
- Եկեք ստուգենք, որ DSC սերվերը հասանելի է վեբ բրաուզերի միջոցով:
- Հիմա եկեք ստուգենք, արդյոք DSC pull server-ը ճիշտ է աշխատում: Դա անելու համար xPSDesiredStateConfiguration մոդուլը ներառում է pullserversetuptests.ps1 սկրիպտը: Նախքան այս սցենարը գործարկելը, դուք պետք է տեղադրեք Powershell մոդուլ, որը կոչվում է Pester: Տեղադրեք այն Install-Module -Name Pester.
- Բացեք C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (օրինակ՝ 8.0.0.0.0 տարբերակում):
- Բացեք PullServerSetupTests.ps1-ը և ստուգեք DSC սերվերի web.config տանող ուղին: Դեպի web.config ուղին, որը կստուգի սկրիպտը, ընդգծված է կարմիրով: Անհրաժեշտության դեպքում մենք փոխում ենք այս ճանապարհը։
- Գործարկեք pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Ամեն ինչ աշխատում է: - SQL Management Studio-ում մենք տեսնում ենք, որ կառավարվող հոսթները հաշվետվություններ են ուղարկում DSC հաշվետվությունների սերվերին, և տվյալները հայտնվում են SQL սերվերի DSC տվյալների բազայում:
Այսքանը: Հետևյալ հոդվածներում ես նախատեսում եմ պատմել ձեզ, թե ինչպես կարելի է հաշվետվություններ կազմել ստացված տվյալների վրա, և ես կանդրադառնամ սխալների հանդուրժողականության և մասշտաբայնության հարցերին:
Source: www.habr.com