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
Saya dapati kaedah ini: bagi mereka yang menggunakan Windows Server 2012 dan 2016, anda boleh
Nota: Untuk Windows Server 2016 anda mesti gunakan
Saya tidak akan menerangkan secara terperinci tentang proses menggunakan pelayan tarik DSC, ia diterangkan dengan sangat baik
-
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).
-
Enable32BitAppOnWin64 = $true
Jika anda tidak membuat perubahan ini, anda tidak akan dapat menjalankan pelayan AppPool DSC pada IIS dengan WSUS.
- 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
- Mari buat pangkalan data SQL kosong bernama DSC.
- Mari buat akaun untuk menyambung ke pangkalan data ini. Mula-mula, semak bahawa pelayan SQL membenarkan pengesahan kedua-dua akaun Windows dan SQL.
- Pergi ke bahagian Pemetaan Pengguna. Pilih pangkalan data, dalam kes ini DSC. Kami memberikan hak pemilik pangkalan data.
- Selesai.
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.
- Untuk mengimport data, jalankan Wizard Import dan Eksport SQL Server.
- Kami memilih dari mana kami akan mendapatkan data - dalam kes kami ia adalah pangkalan data Microsoft Access. Klik Seterusnya.
- Pilih fail dari mana kami mengimport gambar rajah.
- Kami menunjukkan tempat untuk mengimport - bagi kami ia adalah pangkalan data SQL.
- Pilih pelayan SQL (Nama Pelayan) dan pangkalan data di mana kami akan mengimport data (DataBase).
- Pilih pilihan Salin data daripada satu atau lebih jadual atau paparan (menyalin data daripada jadual atau paparan).
- Kami memilih jadual dari mana kami akan mengimport skema pangkalan data.
- Semak kotak semak Jalankan Segera dan klik Selesai.
- Selesai.
- Akibatnya, jadual harus muncul dalam pangkalan data DSC.
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:
- 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).
- Kami menunjukkan bahawa kami akan menyambung ke pelayan SQL. Klik Selesai.
- Tentukan nama dan pelayan untuk disambungkan. Kemudian sambungan dengan parameter yang sama perlu dibuat pada pelayan DSC.
- Kami menunjukkan bahawa untuk menyambung ke pelayan SQL, kami menggunakan log masuk yang dibuat sebelum ini dengan nama DSC.
- Kami menentukan pangkalan data dalam tetapan sambungan DSC.
- Klik Selesai.
- Sebelum melengkapkan persediaan, kami menyemak sama ada sambungan berfungsi (Sumber Data Ujian).
- Selesai.
Mencipta pangkalan data devices.mdb dalam MS Access. Lancarkan MS Access dan cipta pangkalan data kosong yang dipanggil devices.mdb.
- Pergi ke tab Data Luaran dan klik pada Pangkalan Data ODBC. Dalam tetingkap yang muncul, pilih Cipta jadual terpaut untuk menyambung ke sumber data.
- Dalam tetingkap baharu, pilih tab Sumber Data Mesin dan klik OK. Dalam tetingkap baharu, masukkan kelayakan untuk menyambung ke pelayan SQL.
- Pilih jadual yang perlu dipautkan. Tandai kotak Simpan kata laluan dan klik OK. Simpan kata laluan setiap kali untuk ketiga-tiga jadual.
- Dalam indeks anda perlu memilih yang berikut:
— TargetName untuk jadual dbo_Devices;
— NodeName atau IPAddress untuk dbo_RegistrationData;
— NodeName atau IPAddress untuk dbo_StatusReport. - Mari namakan semula jadual dalam MS Access, iaitu: buang awalan dbo_ supaya DSC boleh menggunakannya.
- Selesai.
- 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
- 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.
- 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
- Mari kita semak bahawa pelayan DSC boleh diakses melalui pelayar web.
- 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.
- Buka C:Program FilesWindowsPowerShellModulesxPSDesiredStateConfiguration<module version>DSCPullServerSetupPullServerDeploymentVerificationTest (dalam contoh versi 8.0.0.0.0).
- 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.
- Jalankan pullserversetuptests.ps1
Invoke-Pester.PullServerSetupTests.ps1
Все работает. - 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.
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