PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

PowerShell қалаған күй конфигурациясы (DSC) жүздеген серверлер болған кезде амалдық жүйені, сервер рөлдерін және қолданбаларды орналастыру және теңшеу жұмысын айтарлықтай жеңілдетеді.

Бірақ DSC жергілікті пайдалану кезінде, яғни. MS Azure-де емес, бірнеше нюанстар бар. Олар әсіресе ұйым үлкен болса (300-ден астам жұмыс станциялары мен серверлері) және контейнерлер әлемін әлі ашпаған жағдайда байқалады:

  • Жүйелердің күйі туралы толық есептер жоқ. Қажетті конфигурация кейбір серверлерде қолданылмаған болса, онда бұл есептерсіз біз бұл туралы білмейміз. Кірістірілген есеп беру серверінен ақпаратты алу өте қиын, ал көптеген хосттар үшін бұл ұзақ уақыт алуы мүмкін.
  • Масштабтау және ақауларға төзімділік жоқ. Жалғыз қатеге төзімді дерекқоры және конфигурациялар, модульдер және тіркеу кілттері үшін mof файлдарының жалпы сақтау орны болатын DSC тарту веб-серверлерінің фермасын құру мүмкін емес.

Бүгін мен сізге бірінші мәселені қалай шешуге және есеп беру үшін деректерді алуға болатынын айтамын. Егер SQL дерекқор ретінде пайдаланылса, бәрі оңайырақ болар еді. ХАНЫМ уәделер Кірістірілген қолдау тек Windows Server 2019 жүйесінде немесе Windows сервері 1803 құрастыруда. Сондай-ақ OleDB провайдерін пайдаланып деректерді алу болмайдысебебі DSC сервері OleDbCommand толық қолдау көрсетпейтін аталған параметрді пайдаланады.

Мен бұл әдісті таптым: Windows Server 2012 және 2016 пайдаланатындар үшін сіз жасай аласыз орнату SQL дерекқорын DSC сұрау сервері үшін сервер ретінде пайдалану. Ол үшін клиент есептерінен алынған деректерді SQL серверінің дерекқорына қайта бағыттайтын байланысты кестелері бар .mdb файлы түрінде «прокси» жасаймыз.

Ескертпе: Windows Server 2016 үшін пайдалану керек AccessDatabaseEngine2016x86себебі Microsoft.Jet.OLEDB.4.0 енді қолдау көрсетпейді.

Мен DSC тарту серверін қолдану процесі туралы егжей-тегжейлі айтпаймын, ол өте жақсы сипатталған осында. Мен бір-екі тармақты ғана атап өтейін. Егер біз DSC тартқышын WSUS немесе Kaspersky қауіпсіздік орталығымен бір веб-серверде орналастырсақ, конфигурацияны жасау сценарийінде келесі параметрлерді өзгерту керек:

  1. UseSecurityBestPractices     = $false

    Әйтпесе, TLS 1.0 өшіріледі және SQL дерекқорына қосыла алмайсыз. Kaspersky Security Center да жұмыс істемейді (мәселе Kaspersky Security Center v11 жүйесінде шешілуі керек).

  2. Enable32BitAppOnWin64   = $true

    Бұл өзгерісті жасамасаңыз, AppPool DSC серверін IIS жүйесінде WSUS көмегімен іске қоса алмайсыз.

  3. DSC серверін WSUS көмегімен орнатқан кезде, DSC сайты үшін статикалық және динамикалық кэштеуді өшіріңіз.

SQL дерекқорын пайдалану үшін DSC серверін орнатуға көшейік.

SQL деректер базасын құру

  1. DSC деп аталатын бос SQL дерекқорын жасайық.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  2. Осы дерекқорға қосылу үшін тіркелгі жасайық. Алдымен, SQL сервері Windows және SQL тіркелгілерінің түпнұсқалығын растауға мүмкіндік беретінін тексеріңіз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  3. Пайдаланушыны салыстыру бөліміне өтіңіз. Дерекқорды таңдаңыз, бұл жағдайда DSC. Біз дерекқор иесінің құқықтарын береміз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  4. Аяқталды.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

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
  • SQL деректерді импорттау шебері арқылы PSDesiredStateConfiguration PS модулінің бөлігі ретінде бос devices.mdb деректерін импорттау.

    Біз жұмыс істейтін Devices.mdb файлы C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer ішінде орналасқан.

  1. Деректерді импорттау үшін SQL серверінің импорттау және экспорттау шеберін іске қосыңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  2. Біз деректерді қайдан алатынымызды таңдаймыз - біздің жағдайда бұл Microsoft Access дерекқоры. Келесі түймесін басыңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  3. Диаграмма импортталатын файлды таңдаңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  4. Біз қайда импорттау керектігін көрсетеміз - біз үшін бұл SQL дерекқоры.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  5. SQL серверін (Сервер атауы) және деректерді импорттайтын дерекқорды (DataBase) таңдаңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  6. Бір немесе бірнеше кестелерден немесе көріністерден деректерді көшіру (кестелерден немесе көріністерден деректерді көшіру) опциясын таңдаңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  7. Біз дерекқор схемасын импорттайтын кестелерді таңдаймыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  8. Бірден іске қосу құсбелгісін қойып, «Аяқтау» түймесін басыңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  9. Аяқталды.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  10. Нәтижесінде, кестелер DSC дерекқорында пайда болуы керек.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

.mdb «прокси» файлын орнату

SQL серверіне ODBC қосылымын жасау. DSC жұмыс істейтін серверде MS Access орнатылмаған деп болжанады, сондықтан databases.mdb орнату MS Access орнатылған аралық хостта орындалады.

SQL серверіне жүйелік ODBC қосылымын құрайық (қосылу биті MS Access битіне сәйкес болуы керек - 64 немесе 32). Оны пайдалану арқылы жасауға болады:
- Powershell командлеті:

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. Әкімшілік құралдарды ашыңыз. Орнатылған MS Access нұсқасына байланысты ODBC деректер көздерін таңдаймыз. Жүйенің DSN қойындысына өтіп, жүйе қосылымын жасаңыз (Қосу).

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  2. Біз SQL серверіне қосылатынымызды көрсетеміз. Аяқтау түймесін басыңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  3. Қосылатын атау мен серверді көрсетіңіз. Содан кейін DSC серверінде бірдей параметрлері бар қосылым жасау қажет болады.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  4. Біз SQL серверіне қосылу үшін DSC атымен бұрын жасалған логинді қолданатынымызды көрсетеміз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  5. Біз DSC қосылым параметрлерінде дерекқорды көрсетеміз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  6. Аяқтау түймесін басыңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  7. Орнатуды аяқтамас бұрын, қосылымның жұмыс істеп тұрғанын тексереміз (Дерек көзін тексеру).

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  8. Аяқталды.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

MS Access-те devices.mdb деректер қорын құру. MS Access бағдарламасын іске қосып, devices.mdb деп аталатын бос дерекқорды жасаңыз.

PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  1. Сыртқы деректер қойындысына өтіп, ODBC дерекқорын басыңыз. Пайда болған терезеде деректер көзіне қосылу үшін Байланыстырылған кестені жасау пәрменін таңдаңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  2. Жаңа терезеде Машина деректерінің көзі қойындысын таңдап, OK түймесін басыңыз. Жаңа терезеде SQL серверіне қосылу үшін тіркелгі деректерін енгізіңіз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  3. Байланыстыру қажет кестелерді таңдаңыз. Құпия сөзді сақтау жолағын белгілеп, OK түймесін басыңыз. Барлық үш кесте үшін құпия сөзді әр уақытта сақтаңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  4. Индекстерде келесілерді таңдау керек:
    — dbo_Devices кестесіне арналған TargetName;

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

    — dbo_RegistrationData үшін NodeName немесе IPAaddress;

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

    — dbo_StatusReport үшін NodeName немесе IPAaddress.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  5. MS Access-те кестелердің атын өзгертейік, атап айтқанда: DSC оларды пайдалана алатындай етіп dbo_ префиксін алып тастаңыз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  6. Аяқталды.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  7. Файлды сақтаңыз және MS Access бағдарламасын жабыңыз. Енді біз алынған devices.mdb файлын DSC серверіне көшіреміз (әдепкі бойынша C: Program FilesWindowsPowershellDSCService) және барын онымен ауыстырамыз (егер ол бар болса).

DSC серверін SQL пайдалану үшін теңшеу

  1. Біз DSC серверіне ораламыз. SQL серверіне прокси файлымызбен қосылу үшін DSC серверінде жаңа ODBC қосылымын жасайық. Аты, бит тереңдігі және қосылым параметрлері MDB файлын жасау кезіндегідей болуы керек. Конфигурацияланған бос devices.mdb файлын осы жерден көшіруге болады.
  2. devices.mdb пайдалану үшін DSC тарту серверінің 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 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  2. Енді DSC тарту серверінің дұрыс жұмыс істеп тұрғанын тексерейік. Бұл әрекетті орындау үшін, xPSDesiredStateConfiguration модулі pullserversetuptests.ps1 сценарийін қамтиды. Бұл сценарийді іске қоспас бұрын, Pester деп аталатын Powershell модулін орнату керек. Оны орнатыңыз Install-Module -Name Pester.
  3. C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<модуль нұсқасы>DSCPullServerSetupPullServerDeploymentVerificationTest ашыңыз (мысалда 8.0.0.0.0 нұсқасында).

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  4. PullServerSetupTests.ps1 ашыңыз және DSC серверінің web.config жолын тексеріңіз. Скриптті тексеретін web.config жолы қызыл түспен белгіленген. Қажет болса, бұл жолды өзгертеміз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  5. pullserversetuptests.ps1 іске қосыңыз
    Invoke-Pester.PullServerSetupTests.ps1
    Барлық жұмыс істейді.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

  6. SQL Management Studio бағдарламасында біз басқарылатын хосттар есептерді DSC есеп беру серверіне жіберетінін және деректер SQL серверіндегі DSC дерекқорында аяқталатынын көреміз.

    PowerShell қалаған күй конфигурациясы және файлы: 1 бөлім. SQL дерекқорымен жұмыс істеу үшін DSC Pull серверін конфигурациялау

Бар болғаны. Келесі мақалаларда мен сізге алынған деректер бойынша есептерді қалай құру керектігін айтуды жоспарлап отырмын және ақауларға төзімділік пен масштабтауға қатысты мәселелерді қозғаймын.

Ақпарат көзі: www.habr.com

пікір қалдыру