PowerShell İstədiyiniz Dövlət Konfiqurasiyası (DSC) yüzlərlə serveriniz olduqda əməliyyat sistemi, server rolları və proqramların yerləşdirilməsi və konfiqurasiyası işini xeyli asanlaşdırır.
Lakin DSC-dən yerli istifadə edərkən, yəni. MS Azure-da deyil, bir neçə nüans var. Təşkilat böyükdürsə (300 iş stansiyası və serverdən) və konteynerlər dünyasını hələ kəşf etməyibsə, onlar xüsusilə nəzərə çarpır:
- Sistemlərin vəziyyəti haqqında tam hesabat yoxdur. Əgər bəzi serverlərdə tələb olunan konfiqurasiya tətbiq edilməyibsə, o zaman bu hesabatlar olmadan bu barədə məlumatımız olmayacaq. Daxili hesabat serverindən məlumat əldə etmək olduqca çətindir və çoxlu sayda hostlar üçün bu da uzun müddət çəkə bilər.
- Ölçeklenebilirlik və xətaya dözümlülük yoxdur. Tək xətaya dözümlü verilənlər bazası və konfiqurasiyalar, modullar və qeydiyyat açarları üçün mof fayllarının ümumi yaddaşına malik olan DSC pull veb serverlərindən ibarət ferma qurmaq mümkün deyil.
Bu gün sizə ilk problemi necə həll edə biləcəyinizi və hesabat üçün məlumat əldə edə biləcəyinizi söyləyəcəyəm. SQL verilənlər bazası kimi istifadə olunsaydı, hər şey daha sadə olardı. Xanım
Mən bu üsulu tapdım: Windows Server 2012 və 2016-dan istifadə edənlər üçün edə bilərsiniz
Qeyd: Windows Server 2016 üçün istifadə etməlisiniz
DSC pull serverinin yerləşdirilməsi prosesi haqqında ətraflı məlumat verməyəcəyəm, çox yaxşı təsvir edilmişdir
-
UseSecurityBestPractices = $false
Əks halda TLS 1.0 deaktiv ediləcək və siz SQL verilənlər bazasına qoşula bilməyəcəksiniz. Kaspersky Təhlükəsizlik Mərkəzi də işləməyəcək (problem Kaspersky Security Center v11-də həll edilməlidir).
-
Enable32BitAppOnWin64 = $true
Bu dəyişikliyi etməsəniz, WSUS ilə IIS-də AppPool DSC serverini işlədə bilməyəcəksiniz.
- WSUS ilə DSC Server quraşdırarkən, DSC saytı üçün statik və dinamik keşləməni söndürün.
SQL verilənlər bazasından istifadə etmək üçün DSC serverinin qurulmasına keçək.
SQL verilənlər bazasının yaradılması
- DSC adlı boş SQL verilənlər bazası yaradaq.
- Bu verilənlər bazasına qoşulmaq üçün hesab yaradaq. Əvvəlcə SQL serverinin həm Windows, həm də SQL hesablarının autentifikasiyasına icazə verdiyini yoxlayın.
- İstifadəçi Xəritəçəkmə bölməsinə keçin. Verilənlər bazasını seçin, bu halda DSC. Biz verilənlər bazası sahibinin hüquqlarını veririk.
- Done.
DSC verilənlər bazası üçün sxemin yaradılması
DSC verilənlər bazası üçün sxem yaratmağın iki yolu var:
- müstəqil olaraq TSQL skripti vasitəsilə
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 Data Import Wizard vasitəsilə PSDesiredStateConfiguration PS modulunun bir hissəsi kimi boş devices.mdb-dən məlumatları idxal edin.
Bizim işləyəcəyimiz Devices.mdb C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer-də yerləşir.
- Məlumatları idxal etmək üçün SQL Server İdxal və İxrac Sihirbazını işə salın.
- Biz məlumatları haradan alacağımızı seçirik - bizim vəziyyətimizdə bu, Microsoft Access verilənlər bazasıdır. Next düyməsini basın.
- Diaqramı idxal etdiyimiz faylı seçin.
- Hara idxal edəcəyimizi göstəririk - bizim üçün bu SQL verilənlər bazasıdır.
- SQL serverini (Server Adı) və məlumatları idxal edəcəyimiz verilənlər bazasını (DataBase) seçin.
- Bir və ya bir neçə cədvəldən və ya görünüşdən məlumatları kopyala (məlumatların cədvəllərdən və ya görünüşlərdən kopyalanması) seçimini seçin.
- Verilənlər bazası sxemini idxal edəcəyimiz cədvəlləri seçirik.
- Dərhal işə salın onay qutusunu yoxlayın və Bitir düyməsini basın.
- Done.
- Nəticədə, cədvəllər DSC verilənlər bazasında görünməlidir.
.mdb “proksi” faylının qurulması
SQL serverinə ODBC bağlantısının yaradılması. Güman edilir ki, MS Access DSC ilə işləyən serverdə quraşdırılmayıb, ona görə də databases.mdb-nin qurulması MS Access quraşdırılmış ara hostda aparılır.
SQL serverinə sistem ODBC bağlantısı yaradaq (bağlantı biti MS Access bitliyinə uyğun olmalıdır - 64 və ya 32). Bu istifadə edərək yaradıla bilər:
- Powershell cmdleti:
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
— və ya əl ilə, əlaqə sehrbazından istifadə edərək:
- İnzibati alətləri açın. Quraşdırılmış MS Access versiyasından asılı olaraq ODBC məlumat mənbələrini seçirik. Sistem DSN sekmesine keçin və sistem bağlantısı yaradın (Əlavə et).
- SQL serverinə qoşulacağımızı bildiririk. Bitir klikləyin.
- Qoşulmaq üçün adı və serveri göstərin. Sonra DSC serverində eyni parametrlərlə əlaqə yaratmaq lazımdır.
- SQL serverinə qoşulmaq üçün DSC adı ilə əvvəllər yaradılmış girişdən istifadə etdiyimizi bildiririk.
- DSC əlaqə parametrlərində verilənlər bazasını təyin edirik.
- Bitir klikləyin.
- Quraşdırmanı tamamlamazdan əvvəl əlaqənin işlədiyini yoxlayırıq (Test Data Source).
- Done.
MS Access-də devices.mdb verilənlər bazasının yaradılması. MS Access proqramını işə salın və devices.mdb adlı boş verilənlər bazası yaradın.
- Xarici Məlumatlar sekmesine keçin və ODBC verilənlər bazasına klikləyin. Görünən pəncərədə məlumat mənbəyinə qoşulmaq üçün Əlaqəli cədvəl yaradın seçin.
- Yeni pəncərədə Machine Data Source sekmesini seçin və OK düyməsini basın. Yeni pəncərədə SQL serverinə qoşulmaq üçün etimadnamələri daxil edin.
- Əlaqələndirilməsi lazım olan cədvəlləri seçin. Şifrəni saxla qutusunu yoxlayın və OK düyməsini basın. Hər üç cədvəl üçün parolu hər dəfə yadda saxlayın.
- İndekslərdə aşağıdakıları seçməlisiniz:
— dbo_Devices cədvəli üçün TargetName;
— dbo_RegistrationData üçün NodeName və ya IPAddress;
— dbo_StatusReport üçün NodeName və ya IPAddress. - MS Access-də cədvəllərin adını dəyişdirək, yəni: dbo_ prefiksini çıxarın ki, DSC onlardan istifadə edə bilsin.
- Done.
- Faylı saxla və MS Access-i bağlayın. İndi biz yaranan devices.mdb-ni DSC serverinə kopyalayırıq (standart olaraq C: Program FilesWindowsPowershellDSCService) və mövcud olanı onunla əvəz edirik (əgər varsa).
SQL-dən istifadə etmək üçün DSC Serverinin konfiqurasiyası
- DSC serverinə qayıdırıq. Proksi faylımızla SQL serverinə qoşulmaq üçün DSC serverində yeni ODBC bağlantısı yaradaq. Ad, bit dərinliyi və əlaqə parametrləri MDB faylını yaratarkən olduğu kimi olmalıdır. Artıq konfiqurasiya edilmiş boş devices.mdb faylını buradan kopyalaya bilərsiniz.
- devices.mdb-dən istifadə etmək üçün DSC pull serverinin web.config-də dəyişikliklər etməlisiniz (defolt olaraq C:inetpubPSDSCPullServerweb.config):
- Windows Server 2012 üçün
<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 üçün
<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 serverinin quraşdırılmasını tamamlayır.
DSC serverinin funksionallığının yoxlanılması
- DSC serverinə veb-brauzer vasitəsilə daxil olmaq mümkün olduğunu yoxlayaq.
- İndi DSC pull serverinin düzgün işlədiyini yoxlayaq. Bunun üçün xPSDesiredStateConfiguration moduluna pullserversetuptests.ps1 skripti daxildir. Bu skripti işə salmazdan əvvəl siz Pester adlı Powershell modulunu quraşdırmalısınız. Onu quraşdırın Install-Module -Name Pester.
- C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modul versiyası>DSCPullServerSetupPullServerDeploymentVerificationTest-i açın (nümunə versiya 8.0.0.0.0).
- PullServerSetupTests.ps1 açın və DSC serverinin web.config yolunu yoxlayın. Skripti yoxlayacaq web.config yolu qırmızı rənglə vurğulanır. Lazım gələrsə, bu yolu dəyişdiririk.
- pullserversetuptests.ps1-i işə salın
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - SQL Management Studio-da biz idarə olunan hostların hesabatları DSC hesabat serverinə göndərdiyini görürük və məlumatlar SQL serverindəki DSC verilənlər bazasına daxil olur.
Hamısı budur. Növbəti məqalələrdə mən sizə əldə edilən məlumatlar üzrə hesabatların necə qurulacağını söyləməyi planlaşdırıram və səhvlərə dözümlülük və miqyaslılıq ilə bağlı məsələlərə toxunacağam.
Mənbə: www.habr.com