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
Men ushbu usulni topdim: Windows Server 2012 va 2016-dan foydalanadiganlar uchun siz buni qila olasiz
Eslatma: Windows Server 2016 uchun siz foydalanishingiz kerak
Men DSC pull serverini joylashtirish jarayoni haqida batafsil ma'lumot bermayman, u juda yaxshi tasvirlangan
-
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).
-
Enable32BitAppOnWin64 = $true
Agar siz ushbu o'zgartirishni kiritmasangiz, AppPool DSC serverini WSUS bilan IIS da ishga tushira olmaysiz.
- 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
- Keling, DSC nomli bo'sh SQL ma'lumotlar bazasini yarataylik.
- Keling, ushbu ma'lumotlar bazasiga ulanish uchun hisob yarataylik. Birinchidan, SQL serveri Windows va SQL hisoblarining autentifikatsiyasiga ruxsat berishini tekshiring.
- Foydalanuvchini xaritalash bo'limiga o'ting. Ma'lumotlar bazasini tanlang, bu holda DSC. Biz ma'lumotlar bazasi egasining huquqlarini beramiz.
- Bajarildi.
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.
- Ma'lumotlarni import qilish uchun SQL Server Import va Export ustasini ishga tushiring.
- Biz ma'lumotlarni qayerdan olishni tanlaymiz - bizning holatlarimizda bu Microsoft Access ma'lumotlar bazasi. Keyingiga bosing.
- Diagrammani import qiladigan faylni tanlang.
- Biz qaerga import qilishni ko'rsatamiz - biz uchun bu SQL ma'lumotlar bazasi.
- SQL serverini (Server nomi) va biz ma'lumotlarni import qiladigan ma'lumotlar bazasini (DataBase) tanlang.
- Bir yoki bir nechta jadval yoki ko'rinishdan ma'lumotlarni nusxalash (jadvallar yoki ko'rinishlardan ma'lumotlarni nusxalash) opsiyasini tanlang.
- Biz ma'lumotlar bazasi sxemasini import qiladigan jadvallarni tanlaymiz.
- Darhol ishga tushirish katagiga belgi qo'ying va Finish tugmasini bosing.
- Bajarildi.
- Natijada, jadvallar DSC ma'lumotlar bazasida paydo bo'lishi kerak.
.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:
- 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).
- Biz SQL serveriga ulanishimizni bildiramiz. Finish tugmasini bosing.
- Ulanish uchun nom va serverni belgilang. Keyin DSC serverida bir xil parametrlarga ega ulanishni yaratish kerak bo'ladi.
- Biz SQL serveriga ulanish uchun DSC nomi bilan avval yaratilgan logindan foydalanamiz.
- DSC ulanish sozlamalarida ma'lumotlar bazasini belgilaymiz.
- Finish tugmasini bosing.
- O'rnatishni yakunlashdan oldin biz ulanish ishlayotganligini tekshiramiz (Sinov ma'lumotlar manbasi).
- Bajarildi.
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.
- 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.
- Yangi oynada Mashina ma'lumotlar manbai yorlig'ini tanlang va OK tugmasini bosing. Yangi oynada SQL serveriga ulanish uchun hisob ma'lumotlarini kiriting.
- Bog'lanishi kerak bo'lgan jadvallarni tanlang. Parolni saqlash oynasini belgilang va OK tugmasini bosing. Har uch jadval uchun parolni saqlang.
- Indekslarda siz quyidagilarni tanlashingiz kerak:
— dbo_Devices jadvali uchun TargetName;
— dbo_RegistrationData uchun NodeName yoki IPAaddress;
— dbo_StatusReport uchun NodeName yoki IPAaddress. - MS Access-da jadvallarning nomini o'zgartiramiz, ya'ni: DSC ulardan foydalanishi uchun dbo_ prefiksini olib tashlang.
- Bajarildi.
- 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
- 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.
- 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
- Keling, DSC serveriga veb-brauzer orqali kirish mumkinligini tekshirib ko'ramiz.
- 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.
- C: Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modul versiyasi>DSCPullServerSetupPullServerDeploymentVerificationTest-ni oching (misol 8.0.0.0.0 versiyasida).
- 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.
- pullserversetuptests.ps1 ni ishga tushiring
Invoke-Pester.PullServerSetupTests.ps1
Vse rabotaet. - SQL Management Studio'da biz boshqariladigan xostlar hisobotlarni DSC hisobot serveriga yuborishini va ma'lumotlar SQL serveridagi DSC ma'lumotlar bazasiga tushishini ko'ramiz.
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