Di sisi mana Anda berada: Tekan dan Tarik dalam Konfigurasi Status yang Diinginkan

Kami telah menjelaskan cara mendeskripsikan konfigurasi dalam Desired State Configuration (DSC) dan membongkar agen Pengelola Konfigurasi Lokal (LCM) bawaan untuk menerapkan konfigurasi di server. Di bagian pertama artikel, kami berjalan selangkah demi selangkah pada fitur utama alat bersama dengan Evgeny Parfenov dari DataLine .

Di sini kita menyelami pengaturan dan fitur dalam mode Push and Pull.



Apa yang akan kami sampaikan:


  1. Perbedaan antara mode Push dan Pull
  2. Mode push secara detail
  3. Mode tarik secara detail

Perbedaan antara mode Push dan Pull


Dalam mode Push, kami secara manual atau dengan skrip memulai proses penerapan perubahan ke server (lokal atau jarak jauh). Local Configuration Manager (LCM) menerapkan konfigurasi secara interaktif.

Dalam mode Tarik, agen LCM yang dijadwalkan pada server membandingkan konfigurasinya dengan konfigurasi yang diterbitkan dalam repositori konfigurasi bersama. Jika ada perubahan, konfigurasi disalin secara lokal dan diterapkan.

Pro dan kontra dari kedua mode operasi cukup jelas.
DorongTarik
+
  1. Biaya. Itu tidak memerlukan instalasi server tambahan.
  2. Arsitektur sederhana. Semua konfigurasi disimpan secara lokal dalam bentuk yang nyaman bagi administrator.
  3. Cocok untuk pengujian. Dsc
  4. DevOps Way. Saat menggunakan server, sangat mudah untuk mengotomatisasi dan sesuai dengan filosofi Infrastruktur sebagai Kode.
  5. run-once .
  1. . .
  2. . DSC .
  3. Azure Automation State Configuration, Windows Server 2012R2+
  1. On-Premise c . , .
  1. , .
  2. On-Premise GPO, .
  3. — , .
Mengatur sumber daya juga sedikit berbeda untuk mode yang berbeda. Seperti yang kita ingat, untuk menggunakan sumber daya, Anda harus menginstalnya secara lokal dan di server.

Dalam hal menggunakan mode Push, administrator harus menginstal semua sumber daya yang diperlukan terlebih dahulu pada server yang dikelola dan pada PC, dari mana konfigurasi akan diserahkan.

Dalam mode Tarik, agen DSC pada server yang dikelola dapat secara independen menginstal semua sumber daya yang diperlukan dari server Tarik, tugas administrator adalah menempatkannya di server Tarik. Namun, kami ingat bahwa tidak mungkin untuk memprediksi aplikasi konfigurasi dalam mode Tarik, karena GPO bukan jaminan pengiriman pengaturan.

Mode push secara detail






Proses tingkat atas penulisan dan penerapan konfigurasi DSC dapat direpresentasikan sebagai berikut: Pada tahap pertama ( Penulisan ) kami menggambarkan konfigurasi menggunakan IDE yang sesuai untuk kami (Notepad, PowerShell ISE, Visual Studio Code dan lain-lain). Setelah selesai, kami mengkompilasi file konfigurasi mof (proses kompilasi dijelaskan dalam artikel kami sebelumnya ).

Pada tahap kedua ( Staging / Kompilasi ), kita mulai menerapkan konfigurasi dari file mof yang dikompilasi menggunakan cmdlet Mulai-DSCC konfigurasi . Dalam prosesnya, server manajemen mentransmisikan file .mof server LCM, yang menerapkan konfigurasi.
Dalam hal ini, lebih baik menggunakan saklar -Verbose. Untuk kontrol penuh dari proses konfigurasi:

PS C:\windows\system32> Start-DscConfiguration -Path C:\EnvironmentVariable_Path\ -Wait -Verbose

# C 
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' =
SendConfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer COMPUTER with user sid
S-1-5-21-SID.

#  
VERBOSE: [COMPUTER]: LCM:  [ Start  Set      ]
VERBOSE: [COMPUTER]: LCM:  [ Start  Resource ]  [[Environment]CreatePathEnvironmentVariable]

#       (test)
VERBOSE: [COMPUTER]: LCM:  [ Start  Test     ]  [[Environment]CreatePathEnvironmentVariable]
VERBOSE: [COMPUTER]:                            [[Environment]CreatePathEnvironmentVariable] Environment variable
'TestPathEnvironmentVariable' does not exist.
VERBOSE: [COMPUTER]: LCM:  [ End    Test     ]  [[Environment]CreatePathEnvironmentVariable]  in 0.1320 seconds.
#      “Environment variable 'TestPathEnvironmentVariable' does not exist”

#       
VERBOSE: [COMPUTER]: LCM:  [ Start  Set      ]  [[Environment]CreatePathEnvironmentVariable]
VERBOSE: [COMPUTER]:                            [[Environment]CreatePathEnvironmentVariable] Environment variable
'TestPathEnvironmentVariable' created with value 'TestValue'.
VERBOSE: [COMPUTER]: LCM:  [ End    Set      ]  [[Environment]CreatePathEnvironmentVariable]  in 0.0690 seconds.
VERBOSE: [COMPUTER]: LCM:  [ End    Resource ]  [[Environment]CreatePathEnvironmentVariable]
VERBOSE: [COMPUTER]: LCM:  [ End    Set      ]
VERBOSE: [COMPUTER]: LCM:  [ End    Set      ]    in  2.1900 seconds.
#  

#  
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 2.749 seconds

Dapat dilihat bahwa mesin memeriksa keberadaan variabel, tidak menemukannya dan membuat yang baru, sesuai dengan konfigurasi yang ditentukan:



Pada tahap ketiga ( Eksekusi ), agen DSC LCM memasuki permainan. Ia menerima file mof, memeriksanya, menempatkannya di folder $env:systemRoot/system32/configurationdan meluncurkan alur kerja penerapan file konfigurasi:

  1. LCM menerima, menerapkan file konfigurasi. File diubah namanya menjadi pending.mof dan ditempatkan di$env:systemRoot/system32/configuration
    • Jika aplikasi file konfigurasi gagal, file pending.mof tetap ada, dan LCM akan mencoba menerapkannya dalam siklus berikutnya.
  2. Jika file current.mof sudah ada di folder, maka namanya diganti menjadi before.mof
  3. Jika aplikasi file konfigurasi selesai dengan sukses, maka LCM menamainya menjadi current.mof
  4. File current.mof disalin ke file backup.mof

Secara grafis, alur kerja dapat direpresentasikan sebagai berikut:



Untuk mengelola file konfigurasi yang berbeda, ada cmdlet Hapus-DSCConfigurationDocument yang memungkinkan Anda untuk menghapus dokumen tertentu jika ini diperlukan untuk beberapa alasan. Namun, tidak ada yang mencegah kami menghapusnya secara manual.

Mode tarik secara detail


Mode tarikan lebih sulit untuk digunakan dan dikonfigurasikan, tetapi sangat menyederhanakan proses pengelolaan server yang terhubung dengannya.

Skema umum akan terlihat seperti ini:



Mode tarik memerlukan penyebaran server Tarik. Bahkan, ini adalah server web biasa, yang dapat memberikan klien saya file dan sumber daya yang mungkin diperlukan saat menerapkan konfigurasi dari file mof. Yang terakhir sangat menyederhanakan proses mengelola dan mengkonfigurasi server, karena tugas memberikan sumber daya yang diperlukan terletak pada klien. Server Tarik pada saat yang sama bertindak sebagai repositori \ resource repository.

Pull-server dapat menyediakan akses ke sumber daya dan file konfigurasi melalui dua protokol:

  1. SMB. . DFS-R. , , . SMB , Kerberos.
  2. Http\https. . IIS.

Instalasi server tarik dapat dilakukan melalui sumber daya reguler yang ditawarkan tim pengembangan DSC. Rincian lebih lanjut dapat ditemukan di sini . Atau gunakan solusi berbasis komunitas: di sini atau di sini .

Alur kerja untuk pekerjaan lebih lanjut dengan server tarik adalah sebagai berikut:

  1. Kami mengkonfigurasi klien (LCM) untuk bekerja dengan server tarik.
  2. Kami mengunggah file sumber daya ke server tarik.
  3. Kami menyiapkan file konfigurasi klien (penulisan dan kompilasi) dan file dengan checksum.
  4. Selamat menikmati hasilnya.

Mengkonfigurasi klien (LCM) untuk bekerja dengan server penarik

Untuk melakukan ini, gunakan pengaturan LocalConfigurationManager (v5) berikut :

Blok pengaturan:

  • CertificateID - menunjukkan sidik jari sertifikat untuk melindungi login / kata sandi yang dikirimkan dalam konfigurasi.
  • ConfigurationID - berisi GUID klien. Hanya konfigurasi yang berisi GUID dalam nama file konfigurasi yang akan diterapkan ke klien. Pengaturan dibiarkan untuk kompatibilitas dengan versi server tarik yang lebih lama. Lebih baik menggunakan pengaturan RegistrationKey.
  • RefreshMode - untuk bekerja dengan server Tarik, tentukan Tarik dalam pengaturan ini.

Blokir ConfigurationRepositoryWeb:

  • AllowUnsecureConnection - allow \ tidak mengizinkan koneksi tanpa otentikasi.
  • CertificateID - menunjukkan sidik jari sertifikat pada klien, yang akan digunakan dalam proses otentikasi bersama dengan server.
  • ConfigurationNames - array nama konfigurasi yang akan diterapkan ke klien.
  • RegistrationKey - rahasia yang dihasilkan di server, yang digunakan oleh klien untuk mendaftar di server.
  • ServerURL - URL server Tarik dengan konfigurasi.

Blok ResourceRepositoryWeb:

  • AllowUnsecureConnection - allow \ tidak mengizinkan koneksi tanpa otentikasi.
  • CertificateID - menunjukkan sidik jari sertifikat pada klien, yang akan digunakan dalam proses otentikasi bersama dengan server.
  • RegistrationKey - rahasia yang dihasilkan di server, yang digunakan oleh klien untuk mendaftar di server.
  • ServerURL - URL server Tarik dengan sumber daya.

Blok ReportServerWeb:

  • AllowUnsecureConnection - allow \ tidak mengizinkan koneksi tanpa otentikasi.
  • CertificateID - menunjukkan sidik jari sertifikat pada klien, yang akan digunakan dalam proses otentikasi bersama dengan server.
  • RegistrationKey - rahasia yang dihasilkan di server, yang digunakan oleh klien untuk mendaftar di server.
  • ServerURL - URL server Tarik dengan laporan.

Mengunggah file sumber daya ke server Tarik

Setelah menerapkan pengaturan baru pada LCM, yang akan mengajarinya cara menggunakan server Tarik, Anda dapat mengunggah file sumber ke server . Sumber daya diunggah ke server dalam bentuk file zip (folder dengan sumber daya tersebut dikemas dalam zip). Aturan untuk memberi nama file seperti itu:

{ModuleName}_{Version}.zip

Lokasi file default $env:PROGRAMFILES\WindowsPowerShell\DscService\Modules. Saat memasang server Tarik, folder ini dapat didefinisikan ulang. Selain file dengan folder sumber daya yang dikemas dalam zip, Anda juga harus menempatkan file dengan checksum dari sumber daya yang dikemas ini di tempat yang sama. Misalnya, seperti ini:

New-DscChecksum -Path .\xPSDesiredStateConfiguration_8.4.4.0.zip

Menempatkan file konfigurasi klien di server Tarik

Penting untuk dicatat di sini bahwa kita dapat menggunakan dua mode operasi klien dalam kasus ini (sebenarnya dua setengah): klien dari server akan menerima konfigurasi menggunakan ConfigurationID , atau klien akan menggunakan nama konfigurasi - ConfigurationName . Jika perlu menerapkan beberapa konfigurasi, maka semuanya dapat ditentukan dalam ConfigurationName, tetapi Anda harus mengkonfigurasi LCM untuk bekerja dengan konfigurasi parsial.

Saat menggunakan ConfigurationID, harus ditekankan bahwa file konfigurasi mof yang akan diterapkan ke klien akan berisi GUID (itu terkandung dalam ConfigurationID). Dalam hal menggunakan ConfigurationName, file mof akan berisi nama konfigurasi, yang akan kita tentukan di ConfigurationName. Dalam kedua kasus, selain file mof, file checksum konfigurasi juga akan ditempatkan di sana:

New-DscChecksum -Path '.\' -Force

Kesimpulannya


Kami melihat dua cara untuk menerapkan perubahan ke server dalam mode Dorong dan Tarik. Kami membahas fitur penggunaan dan mencoba menjelaskan semua nuansa yang mungkin muncul ketika bekerja dengan mode ini di DSC. Jika Anda masih memiliki pertanyaan - mari kita bahas di komentar. Dan jika Anda tidak memiliki visibilitas yang cukup, datanglah ke pertemuan online kami pada tanggal 28 Mei: kami akan menganalisis sistem komunikasi terpadu dan fasilitas komunikasi (menyiapkan mengunggah log Exchange dalam Elastis, Microsoft Endpoint Manager untuk mengelola iOS, Android dan Windows 10) dan berbicara lebih detail tentang batas penerapan Konfigurasi Status Yang Diinginkan PowerShell. Anda hanya perlu mendaftar .

All Articles