about_DesiredStateConfiguration

Deskripsi singkat

Menyediakan pengenalan singkat untuk fitur PowerShell Desired State Configuration (DSC).

Deskripsi panjang

DSC adalah platform manajemen di PowerShell yang memungkinkan penyebaran dan pengelolaan data konfigurasi untuk layanan perangkat lunak, dan mengelola lingkungan tempat layanan ini berjalan.

DSC menyediakan sekumpulan ekstensi bahasa PowerShell, cmdlet baru, dan sumber daya yang dapat Anda gunakan untuk secara deklaratif menentukan bagaimana Anda ingin status lingkungan perangkat lunak Anda dikonfigurasi. Ini juga menyediakan sarana untuk memelihara dan mengelola konfigurasi yang ada.

DSC diperkenalkan di PowerShell 4.0.

Untuk informasi mendetail tentang DSC, lihat Gambaran Umum Konfigurasi Status yang Diinginkan PowerShell.

MENGEMBANGKAN SUMBER DAYA DSC DENGAN KELAS

Mulai dari PowerShell 5.0, Anda dapat mengembangkan sumber daya DSC dengan menggunakan kelas. Untuk informasi selengkapnya, lihat about_Classes, dan Menulis sumber daya DSC kustom dengan kelas PowerShell.

MENGGUNAKAN DSC

Untuk menggunakan DSC untuk mengonfigurasi lingkungan Anda, pertama-tama tentukan blok skrip PowerShell menggunakan kata kunci Konfigurasi, diikuti oleh pengidentifikasi, yang pada gilirannya diikuti oleh pasangan kurung kurawal yang memisahkan blok. Di dalam blok konfigurasi, Anda dapat menentukan blok simpul yang menentukan status konfigurasi yang diinginkan untuk setiap simpul (komputer) di lingkungan. Blok simpul dimulai dengan kata kunci Node, diikuti dengan nama komputer target, yang dapat menjadi variabel. Setelah nama komputer, datang kurung kurawal yang memisahkan blok simpul. Di dalam blok simpul, Anda dapat menentukan blok sumber daya untuk mengonfigurasi sumber daya tertentu. Blok sumber daya dimulai dengan nama jenis sumber daya, diikuti oleh pengidentifikasi yang ingin Anda tentukan untuk blok tersebut, diikuti oleh kurung kurawal yang memisahkan blok, seperti yang ditunjukkan dalam contoh berikut.

Configuration MyWebConfig {
    # Parameters are optional
    param ($MachineName, $WebsiteFilePath)
    # A Configuration block can have one or more Node blocks
    Node $MachineName
    {
        # Next, specify one or more resource blocks
        # WindowsFeature is one of the resources you can use in a Node block
        # This example ensures the Web Server (IIS) role is installed
        WindowsFeature IIS
        {
            # To ensure that the role is not installed, set Ensure to "Absent"
            Ensure = "Present"
            Name = "Web-Server" # Use the Name property from Get-WindowsFeature
        }

        # You can use the File resource to create files and folders
        # "WebDirectory" is the name you want to use to refer to this instance
        File WebDirectory
        {
            Ensure = "Present"  # You can also set Ensure to "Absent"
            Type = "Directory" # Default is "File"
            Recurse = $true
            SourcePath = $WebsiteFilePath
            DestinationPath = "C:\inetpub\wwwroot"

            # Ensure that the IIS block is successfully run first before
            # configuring this resource
            DependsOn = "[WindowsFeature]IIS"  # Use for dependencies
        }
    }
}

Untuk membuat konfigurasi, panggil blok Konfigurasi dengan cara yang sama seperti Anda akan memanggil fungsi PowerShell, meneruskan parameter yang diharapkan yang mungkin telah Anda tentukan (dua dalam contoh di atas). Misalnya, dalam hal ini:

MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
  "\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional

Ini menghasilkan file MOF per simpul di jalur yang Anda tentukan. File MOF ini menentukan konfigurasi yang diinginkan untuk setiap simpul. Selanjutnya, gunakan cmdlet berikut untuk mengurai file MOF konfigurasi, mengirim setiap simpul konfigurasi yang sesuai, dan memberlakukan konfigurasi tersebut. Perhatikan bahwa Anda tidak perlu membuat file MOF terpisah untuk sumber daya DSC berbasis kelas.

Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"

MENGGUNAKAN DSC UNTUK MEMPERTAHANKAN STATUS KONFIGURASI

Dengan DSC, konfigurasinya idempotensi. Ini berarti bahwa jika Anda menggunakan DSC untuk memberlakukan konfigurasi yang sama lebih dari sekali, status konfigurasi yang dihasilkan akan selalu sama. Karena itu, jika Anda menduga bahwa simpul apa pun di lingkungan Anda mungkin telah menyimpang dari status konfigurasi yang diinginkan, Anda dapat memberlakukan konfigurasi DSC yang sama lagi untuk membawanya kembali ke keadaan yang diinginkan. Anda tidak perlu mengubah skrip konfigurasi untuk mengatasi hanya sumber daya yang statusnya telah menyimpang dari status yang diinginkan.

Contoh berikut menunjukkan bagaimana Anda dapat memverifikasi apakah status konfigurasi aktual pada simpul tertentu telah menyimpang dari konfigurasi DSC terakhir yang diberlakukan pada simpul. Dalam contoh ini, kami memeriksa konfigurasi komputer lokal.

$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session

SUMBER DAYA DSC BAWAAN

Anda dapat menggunakan sumber daya bawaan berikut dalam skrip konfigurasi Anda:

Nama Properti
File {DestinationPath, Atribut, Checksum, Konten...}
Arsipkan {Destination, Path, Checksum, Credential...}
Lingkungan {Name, DependsOn, Ensure, Path...}
Grup {GroupName, Credential, DependsOn, Description...}
Log {Message, DependsOn, PsDscRunAsCredential}
Paket {Name, Path, ProductId, Arguments...}
Registri {Key, ValueName, DependsOn, Ensure...}
Skrip {GetScript, SetScript, TestScript, Credential...}
Layanan {Name, BuiltInAccount, Credential, Dependensi...}
Pengguna {UserName, DependsOn, Description, Disabled...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Name, Credential, DependsOn, Ensure...}
WindowsOptionalFeature {Name, DependsOn, Ensure, LogLevel...}
WindowsProcess {Argumen, Jalur, Kredensial, DependsOn...}

Untuk mendapatkan daftar sumber daya DSC yang tersedia di sistem Anda, jalankan Get-DscResource cmdlet .

Catatan

Di PowerShell versi di bawah 7.0, Get-DscResource tidak menemukan sumber daya DSC berbasis Kelas.

Contoh dalam topik ini menunjukkan cara menggunakan sumber daya File dan WindowsFeature. Untuk melihat semua properti yang bisa Anda gunakan dengan sumber daya, sisipkan kursor di kata kunci sumber daya (misalnya, File) dalam skrip konfigurasi Anda di PowerShell ISE, tahan CTRL+SPACEBAR

TEMUKAN SUMBER DAYA LAINNYA

Anda dapat mengunduh, menginstal, dan mempelajari tentang banyak sumber daya DSC lain yang tersedia yang telah dibuat oleh komunitas pengguna PowerShell dan DSC, dan oleh Microsoft. Kunjungi Galeri PowerShell untuk menelusuri dan mempelajari tentang sumber daya DSC yang tersedia.

Lihat juga