Partager via


about_DesiredStateConfiguration

DESCRIPTION COURTE

Fournit une brève introduction à la fonctionnalité d’Desired State Configuration PowerShell (DSC).

DESCRIPTION DÉTAILLÉE

DSC est une plateforme de gestion dans PowerShell qui permet de déployer et de gérer les données de configuration pour les services logiciels et de gérer l’environnement dans lequel ces services s’exécutent.

DSC fournit un ensemble d’extensions de langage PowerShell, de nouvelles applets de commande et de ressources que vous pouvez utiliser pour spécifier de manière déclarative la façon dont vous souhaitez configurer l’état de votre environnement logiciel. DSC vous permet également de mettre à jour et de gérer des configurations existantes.

DSC est introduit dans PowerShell 4.0.

Pour plus d’informations sur DSC, consultez Vue d’ensemble de PowerShell Desired State Configuration dans la bibliothèque TechNet.

DÉVELOPPEMENT DE RESSOURCES DSC AVEC DES CLASSES

À partir de PowerShell 5.0, vous pouvez développer des ressources DSC à l’aide de classes. Pour plus d’informations, consultez about_Classes et Écriture d’une ressource DSC personnalisée avec des classes PowerShell sur Microsoft TechNet.

UTILISATION DE DSC

Pour utiliser DSC pour configurer votre environnement, définissez d’abord un bloc de script PowerShell à l’aide de l’mot clé de configuration, suivi d’un identificateur, qui est à son tour suivi par la paire d’accolades délimitant le bloc. Dans le bloc de configuration, vous pouvez définir des blocs de nœuds qui spécifient l’état de configuration souhaité pour chaque nœud (ordinateur) de l’environnement. Un bloc de nœud commence par le mot clé Nœud, suivi du nom de l’ordinateur cible, qui peut être une variable. Après le nom de l’ordinateur, viennent les accolades qui délimitent le bloc de nœud. Dans le bloc de nœuds, vous pouvez définir des blocs de ressources pour configurer des ressources spécifiques. Un bloc de ressources commence par le nom de type de la ressource, suivi de l’identificateur que vous souhaitez spécifier pour ce bloc, suivi des accolades qui délimitent le bloc, comme illustré dans l’exemple suivant.

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
        }
    }
}

Pour créer une configuration, appelez le bloc Configuration de la même façon que vous appeliez une fonction PowerShell, en passant tous les paramètres attendus que vous avez peut-être définis (deux dans l’exemple ci-dessus). Par exemple, dans ce cas :

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

Cela génère un fichier MOF par nœud au niveau du chemin que vous spécifiez. Ces fichiers MOF spécifient la configuration souhaitée pour chaque nœud. Ensuite, utilisez l’applet de commande suivante pour analyser les fichiers MOF de configuration, envoyer à chaque nœud sa configuration correspondante et mettre en œuvre ces configurations. Notez que vous n’avez pas besoin de créer un fichier MOF distinct pour les ressources DSC basées sur des classes.

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

UTILISATION DE DSC POUR MAINTENIR L’ÉTAT DE CONFIGURATION

Avec DSC, la configuration est idempotente. Cela signifie que si vous utilisez DSC pour appliquer la même configuration plusieurs fois, l’état de configuration résultant sera toujours le même. Pour cette raison, si vous pensez que des nœuds de votre environnement ont pu dériver de l’état de configuration souhaité, vous pouvez à nouveau appliquer la même configuration DSC pour les ramener à l’état souhaité. Vous n’avez pas besoin de modifier le script de configuration pour traiter uniquement les ressources dont l’état a dérivé de l’état souhaité.

L’exemple suivant montre comment vous pouvez vérifier si l’état réel de la configuration sur un nœud donné a dérivé de la dernière configuration DSC adoptée sur le nœud. Dans cet exemple, nous vérifions la configuration de l’ordinateur local.

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

RESSOURCES DSC INTÉGRÉES

Vous pouvez utiliser les ressources intégrées suivantes dans vos scripts de configuration :

Nom Propriétés
Fichier {DestinationPath, Attributes, Checksum, Content...}
Archivage {Destination, Chemin, Somme de contrôle, Informations d’identification...}
Environnement {Name, DependsOn, Ensure, Path...}
Grouper {GroupName, Credential, DependsOn, Description...}
Journal {Message, DependsOn, PsDscRunAsCredential}
Paquet {Name, Path, ProductId, Arguments...}
Registre {Key, ValueName, DependsOn, Ensure...}
Script {GetScript, SetScript, TestScript, Credential...}
Service {Name, BuiltInAccount, Credential, Dependencies...}
Utilisateur {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 {Arguments, Path, Credential, DependsOn...}

Pour obtenir la liste des ressources DSC disponibles sur votre système, exécutez l’applet de commande Get-DscResource.

L’exemple de cette rubrique montre comment utiliser les ressources File et WindowsFeature. Pour afficher toutes les propriétés que vous pouvez utiliser avec une ressource, insérez le curseur dans le mot clé de ressource (par exemple, Fichier) dans votre script de configuration dans PowerShell ISE, maintenez la touche Ctrl enfoncée, puis appuyez sur ESPACE.

TROUVER D’AUTRES RESSOURCES

Vous pouvez télécharger, installer et découvrir de nombreuses autres ressources DSC disponibles qui ont été créées par la communauté d’utilisateurs PowerShell et DSC, et par Microsoft. Visitez le PowerShell Gallery pour parcourir et découvrir les ressources DSC disponibles.

VOIR AUSSI

Vue d’ensemble des Desired State Configuration PowerShell

Ressources de Desired State Configuration PowerShell intégrées

Créer des ressources de Desired State Configuration PowerShell personnalisées