Menentukan dependensi simpul silang

Berlaku Untuk: Windows PowerShell 5.0

DSC menyediakan sumber daya khusus, WaitForAll, WaitForAny, dan WaitForSome yang dapat digunakan dalam konfigurasi untuk menentukan dependensi pada konfigurasi pada node lain. Perilaku sumber daya ini adalah sebagai berikut:

  • WaitForAll: Berhasil jika sumber daya yang ditentukan berada dalam status yang diinginkan pada semua simpul target yang ditentukan dalam properti NodeName .
  • WaitForAny: Berhasil jika sumber daya yang ditentukan berada dalam status yang diinginkan pada setidaknya salah satu simpul target yang ditentukan dalam properti NodeName .
  • WaitForSome: Menentukan properti NodeCount selain properti NodeName . Sumber daya berhasil jika sumber daya berada dalam status yang diinginkan pada jumlah minimum simpul (ditentukan oleh NodeCount) yang ditentukan oleh properti NodeName .

Sintaks

Sumber daya WaitForAll dan WaitForAny memiliki sintaks yang sama. Ganti <ResourceType> dalam contoh di bawah ini dengan WaitForAny atau WaitForAll. Seperti kata kunci DependsOn , Anda harus memformat nama sebagai [ResourceType]ResourceName. Jika sumber daya milik Konfigurasi terpisah, sertakan ConfigurationName dalam string [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]yang diformat . NodeName adalah komputer, atau Node, tempat sumber daya saat ini harus menunggu.

<ResourceType> [string] #ResourceName
{
    ResourceName = [string]
    NodeName = [string]
    [ DependsOn = [string[]] ]
    [ PsDscRunAsCredential = [PSCredential]]
    [ RetryCount = [Uint32] ]
    [ RetryIntervalSec = [Uint64] ]
    [ ThrottleLimit = [Uint32]]
}

Sumber daya WaitForSome memiliki sintaks yang mirip dengan contoh di atas, tetapi menambahkan kunci NodeCount . NodeCount menunjukkan berapa banyak Node yang harus ditunggu sumber daya saat ini.

WaitForSome [String] #ResourceName
{
    NodeCount = [UInt32]
    NodeName = [string[]]
    ResourceName = [string]
    [DependsOn = [string[]]]
    [PsDscRunAsCredential = [PSCredential]]
    [RetryCount = [UInt32]]
    [RetryIntervalSec = [UInt64]]
    [ThrottleLimit = [UInt32]]
}

Semua WaitForXXXX berbagi kunci sintaks berikut.

Properti Deskripsi
Coba lagiIntervalSec Jumlah detik sebelum mencoba kembali. Minimum adalah 1.
RetryCount Jumlah maksimum kali untuk mencoba kembali.
ThrottleLimit Jumlah komputer yang akan disambungkan secara bersamaan. Defaultnya adalah New-CimSession default.
DependsOn Menunjukkan bahwa konfigurasi sumber daya lain harus berjalan sebelum sumber daya ini dikonfigurasi. Untuk informasi selengkapnya, lihat DependsOn
PsDscRunAsCredential Lihat Menggunakan DSC dengan Kredensial Pengguna

Menggunakan sumber daya WaitForXXXX

Setiap sumber daya WaitForXXXX menunggu sumber daya yang ditentukan selesai pada Node yang ditentukan. Sumber daya lain dalam Konfigurasi yang sama kemudian dapat bergantung pada sumber daya WaitForXXXX menggunakan kunci DependsOn .

Misalnya, dalam konfigurasi berikut, simpul target menunggu sumber daya xADDomain selesai pada simpul MyDC dengan jumlah maksimum 30 percobaan ulang, pada interval 15 detik, sebelum simpul target dapat bergabung dengan domain.

Secara default, sumber daya WaitForXXX coba satu kali lalu gagal. Meskipun tidak diperlukan, Anda biasanya ingin menentukan RetryCount dan RetryIntervalSec.

Configuration JoinDomain
{
    Import-DSCResource -ModuleName xComputerManagement, xActiveDirectory

    Node myDC
    {
        WindowsFeature InstallAD
        {
            Ensure = 'Present'
            Name = 'AD-Domain-Services'
        }

        xADDomain NewDomain
        {
            DomainName = 'Contoso.com'
            DomainAdministratorCredential = (Get-Credential)
            SafemodeAdministratorPassword = (Get-Credential)
            DatabasePath = "C:\Windows\NTDS"
            LogPath = "C:\Windows\NTDS"
            SysvolPath = "C:\Windows\Sysvol"
        }
    }

    Node myDomainJoinedServer
    {
        WaitForAll DC
        {
            ResourceName      = '[xADDomain]NewDomain'
            NodeName          = 'MyDC'
            RetryIntervalSec  = 15
            RetryCount        = 30
        }

        xComputer JoinDomain
        {
            Name             = 'myPC'
            DomainName       = 'Contoso.com'
            Credential       = (Get-Credential)
            DependsOn        ='[WaitForAll]DC'
        }
    }
}

Saat Anda mengkompilasi Konfigurasi, dua file ".mof" dihasilkan. Terapkan kedua file ".mof" ke Simpul target menggunakan cmdlet Start-DSCConfiguration

Catatan

Sumber daya WaitForXXX menggunakan Manajemen Jarak Jauh Windows untuk memeriksa status Simpul lain. Untuk informasi selengkapnya tentang persyaratan port dan keamanan untuk WinRM, lihat Pertimbangan Keamanan Jarak Jauh PowerShell.

Lihat juga