PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

PowerShell Desired State Configuration (DSC) sangat memudahkan tugas mengatur dan mengkonfigurasi sistem pengendalian, peranan pelayan dan aplikasi apabila anda mempunyai ratusan pelayan.

Tetapi apabila menggunakan DSC di premis, i.e. bukan dalam MS Azure, terdapat beberapa nuansa. Mereka amat ketara jika organisasinya besar (daripada 300 stesen kerja dan pelayan) dan belum lagi menemui dunia kontena:

  • Tiada laporan penuh tentang status sistem. Jika konfigurasi yang diperlukan tidak digunakan pada beberapa pelayan, maka tanpa laporan ini kami tidak akan mengetahuinya. Agak sukar untuk mendapatkan maklumat daripada pelayan pelaporan terbina dalam, dan untuk sebilangan besar hos ia juga boleh mengambil masa yang lama.
  • Kurang kebolehskalaan dan toleransi kesalahan. Adalah mustahil untuk membina ladang pelayan web tarik DSC yang akan mempunyai pangkalan data toleran kesalahan tunggal dan storan biasa fail mof untuk konfigurasi, modul dan kunci pendaftaran.

Hari ini saya akan memberitahu anda bagaimana anda boleh menyelesaikan masalah pertama dan mendapatkan data untuk pelaporan. Segala-galanya akan menjadi lebih mudah jika SQL boleh digunakan sebagai pangkalan data. CIK janji sokongan terbina dalam hanya dalam Windows Server 2019 atau dalam build Windows server 1803. Ambil data menggunakan pembekal OleDB juga tidak akan berjayakerana Pelayan DSC menggunakan parameter bernama yang tidak disokong sepenuhnya oleh OleDbCommand.

Saya dapati kaedah ini: bagi mereka yang menggunakan Windows Server 2012 dan 2016, anda boleh sediakan menggunakan pangkalan data SQL sebagai hujung belakang untuk pelayan pertanyaan DSC. Untuk melakukan ini, kami akan mencipta "proksi" dalam bentuk fail .mdb dengan jadual yang berkaitan, yang akan mengubah hala data yang diterima daripada laporan klien ke pangkalan data pelayan SQL.

Nota: Untuk Windows Server 2016 anda mesti gunakan AccessDatabaseEngine2016x86kerana Microsoft.Jet.OLEDB.4.0 tidak lagi disokong.

Saya tidak akan menerangkan secara terperinci tentang proses menggunakan pelayan tarik DSC, ia diterangkan dengan sangat baik di sini. Saya hanya akan mencatat beberapa perkara. Jika kami menggunakan penarik DSC pada pelayan web yang sama dengan WSUS atau Pusat Keselamatan Kaspersky, maka dalam skrip penciptaan konfigurasi kami perlu menukar parameter berikut:

  1. UseSecurityBestPractices     = $false

    Jika tidak, TLS 1.0 akan dilumpuhkan dan anda tidak akan dapat menyambung ke pangkalan data SQL. Pusat Keselamatan Kaspersky juga tidak akan berfungsi (masalah harus diselesaikan dalam Pusat Keselamatan Kaspersky v11).

  2. Enable32BitAppOnWin64   = $true

    Jika anda tidak membuat perubahan ini, anda tidak akan dapat menjalankan pelayan AppPool DSC pada IIS dengan WSUS.

  3. Apabila memasang Pelayan DSC dengan WSUS, lumpuhkan caching statik dan dinamik untuk tapak DSC.

Mari kita teruskan untuk menyediakan pelayan DSC untuk menggunakan pangkalan data SQL.

Mencipta Pangkalan Data SQL

  1. Mari buat pangkalan data SQL kosong bernama DSC.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  2. Mari buat akaun untuk menyambung ke pangkalan data ini. Mula-mula, semak bahawa pelayan SQL membenarkan pengesahan kedua-dua akaun Windows dan SQL.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  3. Pergi ke bahagian Pemetaan Pengguna. Pilih pangkalan data, dalam kes ini DSC. Kami memberikan hak pemilik pangkalan data.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  4. Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

Mencipta Skema untuk Pangkalan Data DSC

Terdapat dua cara untuk mencipta skema untuk pangkalan data DSC:

  • secara bebas, melalui skrip 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
  • import data daripada devices.mdb kosong sebagai sebahagian daripada PS modul PSDesiredStateConfiguration melalui Wizard Import Data SQL.

    Devices.mdb yang kami akan bekerjasama terletak dalam C:WindowsSysWOW64WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationPullServer.

  1. Untuk mengimport data, jalankan Wizard Import dan Eksport SQL Server.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  2. Kami memilih dari mana kami akan mendapatkan data - dalam kes kami ia adalah pangkalan data Microsoft Access. Klik Seterusnya.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  3. Pilih fail dari mana kami mengimport gambar rajah.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  4. Kami menunjukkan tempat untuk mengimport - bagi kami ia adalah pangkalan data SQL.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  5. Pilih pelayan SQL (Nama Pelayan) dan pangkalan data di mana kami akan mengimport data (DataBase).

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  6. Pilih pilihan Salin data daripada satu atau lebih jadual atau paparan (menyalin data daripada jadual atau paparan).

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  7. Kami memilih jadual dari mana kami akan mengimport skema pangkalan data.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  8. Semak kotak semak Jalankan Segera dan klik Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  9. Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  10. Akibatnya, jadual harus muncul dalam pangkalan data DSC.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

Menyediakan fail "proksi" .mdb

Mencipta sambungan ODBC ke pelayan SQL. Diandaikan bahawa MS Access tidak dipasang pada pelayan yang menjalankan DSC, jadi menyediakan pangkalan data.mdb dilakukan pada hos perantaraan dengan MS Access dipasang.

Mari buat sambungan sistem ODBC ke pelayan SQL (bitness sambungan mesti sepadan dengan bitness MS Access - 64 atau 32). Ia boleh dibuat menggunakan:
- cmdlet 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

— atau secara manual, menggunakan wizard sambungan:

  1. Buka alat Pentadbiran. Kami memilih sumber data ODBC bergantung pada versi MS Access yang dipasang. Pergi ke tab Sistem DSN dan buat sambungan sistem (Tambah).

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  2. Kami menunjukkan bahawa kami akan menyambung ke pelayan SQL. Klik Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  3. Tentukan nama dan pelayan untuk disambungkan. Kemudian sambungan dengan parameter yang sama perlu dibuat pada pelayan DSC.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  4. Kami menunjukkan bahawa untuk menyambung ke pelayan SQL, kami menggunakan log masuk yang dibuat sebelum ini dengan nama DSC.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  5. Kami menentukan pangkalan data dalam tetapan sambungan DSC.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  6. Klik Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  7. Sebelum melengkapkan persediaan, kami menyemak sama ada sambungan berfungsi (Sumber Data Ujian).

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  8. Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

Mencipta pangkalan data devices.mdb dalam MS Access. Lancarkan MS Access dan cipta pangkalan data kosong yang dipanggil devices.mdb.

PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  1. Pergi ke tab Data Luaran dan klik pada Pangkalan Data ODBC. Dalam tetingkap yang muncul, pilih Cipta jadual terpaut untuk menyambung ke sumber data.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  2. Dalam tetingkap baharu, pilih tab Sumber Data Mesin dan klik OK. Dalam tetingkap baharu, masukkan kelayakan untuk menyambung ke pelayan SQL.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  3. Pilih jadual yang perlu dipautkan. Tandai kotak Simpan kata laluan dan klik OK. Simpan kata laluan setiap kali untuk ketiga-tiga jadual.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  4. Dalam indeks anda perlu memilih yang berikut:
    — TargetName untuk jadual dbo_Devices;

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

    — NodeName atau IPAddress untuk dbo_RegistrationData;

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

    — NodeName atau IPAddress untuk dbo_StatusReport.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  5. Mari namakan semula jadual dalam MS Access, iaitu: buang awalan dbo_ supaya DSC boleh menggunakannya.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  6. Selesai.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  7. Simpan fail dan tutup MS Access. Sekarang kami menyalin devices.mdb yang terhasil ke pelayan DSC (secara lalai dalam C: Program FilesWindowsPowershellDSCService) dan menggantikan yang sedia ada dengannya (jika wujud).

Mengkonfigurasi Pelayan DSC untuk Menggunakan SQL

  1. Kami kembali ke pelayan DSC. Untuk menyambung ke pelayan SQL dengan fail proksi kami, mari buat sambungan ODBC baharu pada pelayan DSC. Tetapan nama, kedalaman bit dan sambungan mestilah sama seperti semasa membuat fail MDB. Anda boleh menyalin peranti kosong yang telah dikonfigurasikan.mdb dari sini.
  2. Untuk menggunakan devices.mdb, anda perlu membuat perubahan pada web.config pelayan tarik DSC (lalai ialah C:inetpubPSDSCPullServerweb.config):

- untuk 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;">

- untuk 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;">

Ini melengkapkan persediaan pelayan DSC.

Menyemak kefungsian pelayan DSC

  1. Mari kita semak bahawa pelayan DSC boleh diakses melalui pelayar web.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  2. Sekarang mari kita semak sama ada pelayan tarik DSC berfungsi dengan betul. Untuk melakukan ini, modul xPSDesiredStateConfiguration termasuk skrip pullserversetuptests.ps1. Sebelum menjalankan skrip ini, anda mesti memasang modul Powershell bernama Pester. Pasangnya Pasang-Modul -Nama Pester.
  3. Buka C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (dalam contoh versi 8.0.0.0.0).

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  4. Buka PullServerSetupTests.ps1 dan semak laluan ke web.config pelayan DSC. Laluan ke web.config, yang akan menyemak skrip, diserlahkan dengan warna merah. Jika perlu, kita ubah jalan ini.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  5. Jalankan pullserversetuptests.ps1
    Invoke-Pester.PullServerSetupTests.ps1
    Все работает.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

  6. Dalam SQL Management Studio kita melihat bahawa hos yang ditadbir menghantar laporan kepada pelayan pelaporan DSC dan data berakhir dalam pangkalan data DSC pada pelayan SQL.

    PowerShell Desired State Konfigurasi dan fail: bahagian 1. Mengkonfigurasi DSC Pull Server untuk berfungsi dengan pangkalan data SQL

Itu sahaja. Dalam artikel berikut, saya bercadang untuk memberitahu anda cara membina laporan mengenai data yang diperoleh, dan saya akan menyentuh isu tentang toleransi kesalahan dan skalabiliti.

Sumber: www.habr.com

Tambah komen