PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

PowerShell Desired State Configuration (DSC) yuzlab serverlarga ega bo'lganingizda operatsion tizimni, server rollarini va ilovalarni o'rnatish va sozlash ishini sezilarli darajada osonlashtiradi.

Ammo DSC-dan mahalliy foydalanishda, ya'ni. MS Azure-da emas, bir nechta nuanslar mavjud. Ular, ayniqsa, agar tashkilot katta bo'lsa (300 ta ish stantsiyalari va serverlaridan) va konteynerlar dunyosini hali kashf qilmagan bo'lsa, sezilarli bo'ladi:

  • Tizimlarning holati haqida to'liq hisobotlar mavjud emas. Agar ba'zi serverlarda kerakli konfiguratsiya qo'llanilmagan bo'lsa, unda bu hisobotlarsiz biz bu haqda bilmaymiz. O'rnatilgan hisobot serveridan ma'lumot olish juda qiyin va ko'p sonli xostlar uchun bu uzoq vaqt talab qilishi mumkin.
  • Masshtablilik va xatolarga chidamlilik yo'q. Yagona nosozliklarga chidamli ma'lumotlar bazasiga va konfiguratsiyalar, modullar va ro'yxatga olish kalitlari uchun mof fayllarini umumiy saqlashga ega bo'lgan DSC pull veb-serverlari fermasini yaratish mumkin emas.

Bugun men sizga birinchi muammoni qanday hal qilishingiz va hisobot berish uchun ma'lumot olishingiz mumkinligini aytaman. Agar SQL ma'lumotlar bazasi sifatida ishlatilsa, hamma narsa soddaroq bo'lar edi. XONIM va'da qiladi O'rnatilgan qo'llab-quvvatlash faqat Windows Server 2019 yoki Windows server 1803-da. OleDB provayderi yordamida ham ma'lumotlarni oling ishlamaydichunki DSC Server OleDbCommand tomonidan to'liq qo'llab-quvvatlanmaydigan nomlangan parametrdan foydalanadi.

Men ushbu usulni topdim: Windows Server 2012 va 2016-dan foydalanadiganlar uchun siz buni qila olasiz sozlash DSC so'rovlar serveri uchun backend sifatida SQL ma'lumotlar bazasidan foydalanish. Buning uchun biz bog'langan jadvallar bilan .mdb fayli ko'rinishida "proksi" yaratamiz, u mijoz hisobotlaridan olingan ma'lumotlarni SQL server ma'lumotlar bazasiga yo'naltiradi.

Eslatma: Windows Server 2016 uchun siz foydalanishingiz kerak AccessDatabaseEngine2016x86chunki Microsoft.Jet.OLEDB.4.0 endi qo'llab-quvvatlanmaydi.

Men DSC pull serverini joylashtirish jarayoni haqida batafsil ma'lumot bermayman, u juda yaxshi tasvirlangan shu yerda. Men faqat bir nechta fikrlarni ta'kidlayman. Agar biz DSC tortgichini WSUS yoki Kaspersky Security Center bilan bir xil veb-serverga joylashtirsak, konfiguratsiyani yaratish skriptida biz quyidagi parametrlarni o'zgartirishimiz kerak:

  1. UseSecurityBestPractices     = $false

    Aks holda, TLS 1.0 o'chiriladi va siz SQL ma'lumotlar bazasiga ulana olmaysiz. Kaspersky Security Center ham ishlamaydi (muammo Kaspersky Security Center v11 da hal qilinishi kerak).

  2. Enable32BitAppOnWin64   = $true

    Agar siz ushbu o'zgartirishni kiritmasangiz, AppPool DSC serverini WSUS bilan IIS da ishga tushira olmaysiz.

  3. DSC Serverni WSUS bilan o'rnatayotganda, DSC sayti uchun statik va dinamik keshlashni o'chiring.

Keling, SQL ma'lumotlar bazasidan foydalanish uchun DSC serverini sozlashga o'tamiz.

SQL ma'lumotlar bazasini yaratish

  1. Keling, DSC nomli bo'sh SQL ma'lumotlar bazasini yarataylik.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  2. Keling, ushbu ma'lumotlar bazasiga ulanish uchun hisob yarataylik. Birinchidan, SQL serveri Windows va SQL hisoblarining autentifikatsiyasiga ruxsat berishini tekshiring.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  3. Foydalanuvchini xaritalash bo'limiga o'ting. Ma'lumotlar bazasini tanlang, bu holda DSC. Biz ma'lumotlar bazasi egasining huquqlarini beramiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  4. Bajarildi.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

DSC ma'lumotlar bazasi uchun sxema yaratish

DSC ma'lumotlar bazasi uchun sxemani yaratishning ikki yo'li mavjud:

  • mustaqil ravishda, TSQL skripti orqali
    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 ma'lumotlarini import qilish ustasi orqali PSDesiredStateConfiguration PS modulining bir qismi sifatida bo'sh devices.mdb dan ma'lumotlarni import qiling.

    Biz ishlayotgan Devices.mdb C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServerda joylashgan.

  1. Ma'lumotlarni import qilish uchun SQL Server Import va Export ustasini ishga tushiring.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  2. Biz ma'lumotlarni qayerdan olishni tanlaymiz - bizning holatlarimizda bu Microsoft Access ma'lumotlar bazasi. Keyingiga bosing.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  3. Diagrammani import qiladigan faylni tanlang.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  4. Biz qaerga import qilishni ko'rsatamiz - biz uchun bu SQL ma'lumotlar bazasi.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  5. SQL serverini (Server nomi) va biz ma'lumotlarni import qiladigan ma'lumotlar bazasini (DataBase) tanlang.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  6. Bir yoki bir nechta jadval yoki ko'rinishdan ma'lumotlarni nusxalash (jadvallar yoki ko'rinishlardan ma'lumotlarni nusxalash) opsiyasini tanlang.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  7. Biz ma'lumotlar bazasi sxemasini import qiladigan jadvallarni tanlaymiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  8. Darhol ishga tushirish katagiga belgi qo'ying va Finish tugmasini bosing.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  9. Bajarildi.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  10. Natijada, jadvallar DSC ma'lumotlar bazasida paydo bo'lishi kerak.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

.mdb “proksi” faylini sozlash

SQL serveriga ODBC ulanishini yaratish. DSC bilan ishlaydigan serverda MS Access o'rnatilmagan deb taxmin qilinadi, shuning uchun databases.mdb ni o'rnatish MS Access o'rnatilgan oraliq xostda amalga oshiriladi.

SQL serveriga tizimli ODBC ulanishini yaratamiz (ulanish biti MS Access bitiga mos kelishi kerak - 64 yoki 32). U quyidagilar yordamida yaratilishi mumkin:
- 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

— yoki qo'lda, ulanish ustasi yordamida:

  1. Ma'muriy vositalarni oching. Biz ODBC ma'lumotlar manbalarini o'rnatilgan MS Access versiyasiga qarab tanlaymiz. Tizim DSN yorlig'iga o'ting va tizim ulanishini yarating (Qo'shish).

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  2. Biz SQL serveriga ulanishimizni bildiramiz. Finish tugmasini bosing.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  3. Ulanish uchun nom va serverni belgilang. Keyin DSC serverida bir xil parametrlarga ega ulanishni yaratish kerak bo'ladi.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  4. Biz SQL serveriga ulanish uchun DSC nomi bilan avval yaratilgan logindan foydalanamiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  5. DSC ulanish sozlamalarida ma'lumotlar bazasini belgilaymiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  6. Finish tugmasini bosing.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  7. O'rnatishni yakunlashdan oldin biz ulanish ishlayotganligini tekshiramiz (Sinov ma'lumotlar manbasi).

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  8. Bajarildi.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

MS Access da devices.mdb ma'lumotlar bazasini yaratish. MS Access-ni ishga tushiring va devices.mdb deb nomlangan bo'sh ma'lumotlar bazasini yarating.

PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  1. Tashqi ma'lumotlar yorlig'iga o'ting va ODBC ma'lumotlar bazasini bosing. Ko'rsatilgan oynada ma'lumotlar manbasiga ulanish uchun Bog'langan jadval yaratish-ni tanlang.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  2. Yangi oynada Mashina ma'lumotlar manbai yorlig'ini tanlang va OK tugmasini bosing. Yangi oynada SQL serveriga ulanish uchun hisob ma'lumotlarini kiriting.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  3. Bog'lanishi kerak bo'lgan jadvallarni tanlang. Parolni saqlash oynasini belgilang va OK tugmasini bosing. Har uch jadval uchun parolni saqlang.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  4. Indekslarda siz quyidagilarni tanlashingiz kerak:
    — dbo_Devices jadvali uchun TargetName;

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

    — dbo_RegistrationData uchun NodeName yoki IPAaddress;

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

    — dbo_StatusReport uchun NodeName yoki IPAaddress.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  5. MS Access-da jadvallarning nomini o'zgartiramiz, ya'ni: DSC ulardan foydalanishi uchun dbo_ prefiksini olib tashlang.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  6. Bajarildi.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  7. Faylni saqlang va MS Access-ni yoping. Endi biz hosil bo'lgan devices.mdb faylini DSC serveriga ko'chiramiz (sukut bo'yicha C da: Program FilesWindowsPowershellDSCService) va mavjudini u bilan almashtiramiz (agar mavjud bo'lsa).

DSC serverini SQL dan foydalanish uchun sozlash

  1. Biz DSC serveriga qaytamiz. SQL serveriga proksi-faylimiz bilan ulanish uchun DSC serverida yangi ODBC ulanishini yarataylik. Nom, bit chuqurligi va ulanish sozlamalari MDB faylini yaratishdagi bilan bir xil bo'lishi kerak. Siz allaqachon sozlangan bo'sh devices.mdb faylini shu yerdan nusxalashingiz mumkin.
  2. devices.mdb dan foydalanish uchun DSC pull serverining web.config fayliga o'zgartirishlar kiritishingiz kerak (standart C:inetpubPSDSCPullServerweb.config):

- Windows Server 2012 uchun

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

<add key="dbprovider" value="System.Data.OleDb">
<add key="dbconnectionstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:Program FilesWindowsPowerShellDscServiceDevices.mdb;">

Bu DSC serverini sozlashni yakunlaydi.

DSC serverining funksionalligini tekshirish

  1. Keling, DSC serveriga veb-brauzer orqali kirish mumkinligini tekshirib ko'ramiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  2. Endi DSC pull serveri to'g'ri ishlayotganligini tekshirib ko'ramiz. Buning uchun xPSDesiredStateConfiguration moduli pullserversetuptests.ps1 skriptini o'z ichiga oladi. Ushbu skriptni ishga tushirishdan oldin siz Pester nomli Powershell modulini o'rnatishingiz kerak. Uni o'rnating Install-Module -Name Pester.
  3. C: Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modul versiyasi>DSCPullServerSetupPullServerDeploymentVerificationTest-ni oching (misol 8.0.0.0.0 versiyasida).

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  4. PullServerSetupTests.ps1 ni oching va DSC serverining web.config yo'lini tekshiring. Skriptni tekshiradigan web.config yo'li qizil rang bilan ta'kidlangan. Agar kerak bo'lsa, biz bu yo'lni o'zgartiramiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  5. pullserversetuptests.ps1 ni ishga tushiring
    Invoke-Pester.PullServerSetupTests.ps1
    Vse rabotaet.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

  6. SQL Management Studio'da biz boshqariladigan xostlar hisobotlarni DSC hisobot serveriga yuborishini va ma'lumotlar SQL serveridagi DSC ma'lumotlar bazasiga tushishini ko'ramiz.

    PowerShell Desired State Configuration va fayl: 1-qism. DSC Pull Serverni SQL ma'lumotlar bazasi bilan ishlash uchun sozlash

Ana xolos. Keyingi maqolalarda men sizga olingan ma'lumotlar bo'yicha hisobotlarni qanday tuzishni aytib berishni rejalashtirmoqdaman va xatolarga chidamlilik va miqyoslilik masalalariga to'xtalib o'taman.

Manba: www.habr.com

a Izoh qo'shish