Zasoby DSC

Dotyczy Windows PowerShell 4.0 i nowszych.

Omówienie

Desired State Configuration (DSC) Zasoby zapewniają bloki konstrukcyjne konfiguracji DSC. Zasób uwidacznia właściwości, które można skonfigurować (schemat) i zawiera funkcje skryptu programu PowerShell, które lokalne Configuration Manager (LCM) wywołuje w taki sposób.

Zasób może modelować coś tak ogólnego jak plik lub jako określone jako ustawienie serwera USŁUG IIS. Grupy takich zasobów są połączone z modułem DSC, który organizuje wszystkie wymagane pliki w strukturze przenośnej i zawiera metadane w celu zidentyfikowania sposobu, w jaki zasoby mają być używane.

Każdy zasób ma *schemat, który określa składnię wymaganą do użycia zasobu w konfiguracji. Schemat zasobu można zdefiniować w następujący sposób:

  • Schema.Mofplik: większość zasobów definiuje schemat w pliku przy użyciu formatu zarządzanegoschema.mof obiektu.
  • <Resource Name>.schema.psm1 plik: Zasoby złożone definiują schemat w <ResourceName>.schema.psm1 pliku przy użyciu bloku parametrów.
  • <Resource Name>.psm1 file: Zasoby DSC oparte na klasach definiują swój schemat w definicji klasy. Elementy składni są oznaczone jako właściwości klasy. Aby uzyskać więcej informacji, zobacz about_Classes.

Aby pobrać składnię zasobu DSC, użyj polecenia cmdlet Get-DSCResource z parametrem Składnia . To użycie jest podobne do użycia polecenia Get-Command z parametrem Składnia w celu pobrania składni polecenia cmdlet. Wyświetlone dane wyjściowe zawierają szablon używany dla bloku zasobów dla określonego zasobu.

Get-DscResource -Syntax Service

Wyświetlone dane wyjściowe powinny być podobne do poniższych danych wyjściowych, ale składnia tego zasobu może ulec zmianie w przyszłości. Podobnie jak składnia polecenia cmdlet, klucze widoczne w nawiasach kwadratowych są opcjonalne. Typy określają typ danych, których oczekuje każdy klucz.

Uwaga

Upewnij się, że klucz jest opcjonalny, ponieważ domyślnie ma wartość "Present".

Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Running | Stopped }]
}

Uwaga

W programie PowerShell w wersjach poniżej 7.0 Get-DscResource nie można znaleźć zasobów DSC opartych na klasie.

W ramach konfiguracji blok zasobów usługi może wyglądać następująco, aby upewnić się , że usługa buforowania jest uruchomiona.

Uwaga

Przed użyciem zasobu w konfiguracji należy zaimportować go przy użyciu polecenia Import-DSCResource.

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the
    # resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as l
        # ong as it is of type [String] as indicated by the schema.
        Service "Spooler - Running"
        {
            Name = "Spooler"
            State = "Running"
        }
    }
}

Konfiguracje mogą zawierać wiele wystąpień tego samego typu zasobu. Każde wystąpienie musi mieć unikatową nazwę. W poniższym przykładzie dodawany jest drugi blok zasobów usługi w celu skonfigurowania usługi "DHCP".

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the
    # resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as
        # long as it is of type [String] as indicated by the schema.
        Service "Spooler - Running"
        {
            Name = "Spooler"
            State = "Running"
        }

        # To configure a second service resource block, add another Service
        # resource block and use a unique name.
        Service "DHCP - Running"
        {
            Name = "DHCP"
            State = "Running"
        }
    }
}

Uwaga

Począwszy od programu PowerShell 5.0, funkcja IntelliSense została dodana dla rozszerzenia DSC. Ta nowa funkcja umożliwia używanie klawiszy TAB i Ctr+Space do automatycznego uzupełniania nazw kluczy.

Funkcja IntelliSense zasobów przy użyciu uzupełniania karty

Typy zasobów

System Windows zawiera wbudowane zasoby, a system Linux ma zasoby specyficzne dla systemu operacyjnego. Istnieją zasoby dotyczące zależności między węzłami, zasobów zarządzania pakietami, a także zasobów należących do społeczności i obsługiwanych zasobów. Powyższe kroki umożliwiają określenie składni tych zasobów i sposobu ich używania. Strony obsługujące te zasoby zostały zarchiwizowane w obszarze Dokumentacja.

Wbudowane zasoby systemu Windows

Zasoby zależności między węzłami

Zasoby zarządzania pakietami

Zasoby systemu Linux