PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

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 vədlər daxili dəstək yalnız Windows Server 2019-da və ya Windows server 1803-də qurulmuşdur. OleDB provayderindən də istifadə edərək məlumatları əldə edin işləməyəcəkçünki DSC Server OleDbCommand tərəfindən tam dəstəklənməyən adlandırılmış parametrdən istifadə edir.

Mən bu üsulu tapdım: Windows Server 2012 və 2016-dan istifadə edənlər üçün edə bilərsiniz qurmaq DSC sorğu serveri üçün arxa uç kimi SQL verilənlər bazasından istifadə. Bunun üçün biz müştəri hesabatlarından alınan məlumatları SQL server verilənlər bazasına yönləndirəcək əlaqəli cədvəlləri olan .mdb faylı şəklində “proksi” yaradacağıq.

Qeyd: Windows Server 2016 üçün istifadə etməlisiniz AccessDatabaseEngine2016x86çünki Microsoft.Jet.OLEDB.4.0 artıq dəstəklənmir.

DSC pull serverinin yerləşdirilməsi prosesi haqqında ətraflı məlumat verməyəcəyəm, çox yaxşı təsvir edilmişdir burada. Sadəcə bir neçə məqamı qeyd edəcəm. Əgər biz DSC çəkicini WSUS və ya Kaspersky Security Center ilə eyni veb serverdə yerləşdirsək, onda konfiqurasiya yaratma skriptində aşağıdakı parametrləri dəyişdirməliyik:

  1. 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).

  2. Enable32BitAppOnWin64   = $true

    Bu dəyişikliyi etməsəniz, WSUS ilə IIS-də AppPool DSC serverini işlədə bilməyəcəksiniz.

  3. 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ı

  1. DSC adlı boş SQL verilənlər bazası yaradaq.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  2. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  3. İ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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  4. Done.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

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.

  1. Məlumatları idxal etmək üçün SQL Server İdxal və İxrac Sihirbazını işə salın.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  2. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  3. Diaqramı idxal etdiyimiz faylı seçin.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  4. Hara idxal edəcəyimizi göstəririk - bizim üçün bu SQL verilənlər bazasıdır.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  5. SQL serverini (Server Adı) və məlumatları idxal edəcəyimiz verilənlər bazasını (DataBase) seçin.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  6. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  7. Verilənlər bazası sxemini idxal edəcəyimiz cədvəlləri seçirik.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  8. Dərhal işə salın onay qutusunu yoxlayın və Bitir düyməsini basın.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  9. Done.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  10. Nəticədə, cədvəllər DSC verilənlər bazasında görünməlidir.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

.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:

  1. İ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).

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  2. SQL serverinə qoşulacağımızı bildiririk. Bitir klikləyin.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  3. Qoşulmaq üçün adı və serveri göstərin. Sonra DSC serverində eyni parametrlərlə əlaqə yaratmaq lazımdır.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  4. SQL serverinə qoşulmaq üçün DSC adı ilə əvvəllər yaradılmış girişdən istifadə etdiyimizi bildiririk.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  5. DSC əlaqə parametrlərində verilənlər bazasını təyin edirik.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  6. Bitir klikləyin.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  7. Quraşdırmanı tamamlamazdan əvvəl əlaqənin işlədiyini yoxlayırıq (Test Data Source).

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  8. Done.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

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.

PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  1. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  2. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  3. Ə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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  4. İndekslərdə aşağıdakıları seçməlisiniz:
    — dbo_Devices cədvəli üçün TargetName;

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

    — dbo_RegistrationData üçün NodeName və ya IPAddress;

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

    — dbo_StatusReport üçün NodeName və ya IPAddress.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  5. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  6. Done.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  7. 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ı

  1. 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.
  2. 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ı

  1. DSC serverinə veb-brauzer vasitəsilə daxil olmaq mümkün olduğunu yoxlayaq.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  2. İ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.
  3. C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<modul versiyası>DSCPullServerSetupPullServerDeploymentVerificationTest-i açın (nümunə versiya 8.0.0.0.0).

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  4. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  5. pullserversetuptests.ps1-i işə salın
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

  6. 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.

    PowerShell İstədiyiniz Dövlət Konfiqurasiyası və faylı: hissə 1. SQL verilənlər bazası ilə işləmək üçün DSC Pull Serverin konfiqurasiyası

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

Добавить комментарий