Partager via


Écrire, compiler et appliquer une configuration

S’applique à : Windows PowerShell 4.0, Windows PowerShell 5.0

Cet exercice vous guide dans la création et l’application d’une configuration DSC (Configuration d’état souhaité) du début à la fin. Dans l’exemple suivant, vous allez apprendre à écrire et à appliquer une configuration très simple. La configuration vérifiera qu’il existe un fichier « HelloWorld.txt » sur votre ordinateur local. Si vous supprimez le fichier, DSC le recréera lors de sa prochaine fois mise à jour.

Pour obtenir une vue d’ensemble de DSC et de son fonctionnement, consultez Présentation de Desired State Configuration pour les développeurs.

Spécifications

Pour exécuter cet exemple, vous avez besoin d’un ordinateur exécutant PowerShell 4.0 ou version ultérieure.

Écrire la configuration

Une configuration DSC est une fonction PowerShell spéciale qui définit la façon dont vous souhaitez configurer un ou plusieurs ordinateurs cibles (nœuds).

Dans PowerShell ISE ou un autre éditeur PowerShell, tapez la commande suivante :

Configuration HelloWorld {

    # Import the module that contains the File resource.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets to compile MOF files for, when
    # this configuration is executed.
    Node 'localhost' {

        # The File resource can ensure the state of files, or copy them from a
        # source to a destination with persistent updates.
        File HelloWorld {
            DestinationPath = "C:\Temp\HelloWorld.txt"
            Ensure = "Present"
            Contents   = "Hello World from DSC!"
        }
    }
}

Important

Dans les scénarios plus avancés où plusieurs modules doivent être importés afin que vous puissiez utiliser de nombreuses ressources DSC dans la même configuration, veillez à placer chaque module sur une ligne distincte à l’aide de Import-DscResource. Cela est plus facile à gérer dans le contrôle de code source et requis lors de l’utilisation de DSC dans Azure State Configuration.

 Configuration HelloWorld {

  # Import the module that contains the File resource.
  Import-DscResource -ModuleName PsDesiredStateConfiguration
  Import-DscResource -ModuleName xWebAdministration

Enregistrez le fichier en tant que « HelloWorld.ps1 ».

La définition d’une configuration s’apparente à celle d’une fonction. Le bloc Nœud spécifie le nœud cible à configurer, dans ce cas localhost.

La configuration appelle une ressource, la ressource File. Les ressources s’assurent que le nœud cible est dans l’état défini par la configuration.

Compiler la configuration

Pour qu’une configuration DSC soit appliquée à un nœud, elle doit tout d’abord être compilée dans un fichier MOF. L’exécution de la configuration, comme une fonction, compilera un fichier .mof pour chaque nœud défini par le bloc Node. Pour exécuter la configuration, vous devez dot sourcer votre script HelloWorld.ps1 dans la portée actuelle. Pour plus d’informations, consultez about_Scripts.

Dot sourcez votre script HelloWorld.ps1 en tapant le chemin où vous l’avez stocké, après le . (point, espace). Vous pouvez ensuite exécuter votre configuration en l’appelant comme une fonction. Vous pouvez également appeler la fonction de configuration au bas du script afin de ne pas avoir à dot sourcer.

. C:\Scripts\HelloWorld.ps1
HelloWorld

Cela génère la sortie suivante :

Directory: C:\Scripts\HelloWorld


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

Appliquer la configuration

Maintenant que vous disposez du fichier MOF compilé, vous pouvez appliquer la configuration au nœud cible (dans ce cas, l’ordinateur local) en appelant l’applet de commande Start-DscConfiguration.

L’applet de commande Start-DscConfiguration indique au Gestionnaire de configuration local, le moteur de DSC, qu’il doit appliquer la configuration. Le LCM est chargé d’appeler les ressources DSC pour appliquer la configuration.

Utilisez le code ci-dessous pour exécuter l’applet de commande Start-DSCConfiguration. Spécifiez le chemin du répertoire où est stocké votre fichier localhost.mof au paramètre Path. L’applet de commande Start-DSCConfiguration recherche tous les fichiers <computername>.mof dans le répertoire spécifié. L’applet de commande Start-DSCConfiguration tente d’appliquer chaque fichier .mof trouvé au computername spécifié par le nom de fichier (« localhost », « server01 », « dc-02 », etc.).

Notes

Si le paramètre -Wait n’est pas spécifié, Start-DSCConfiguration crée une tâche en arrière-plan pour exécuter l’opération. Le fait de spécifier le paramètre -Verbose vous permet de regarder la sortie détaillée de l’opération. -Wait et -Verbose sont tous deux des paramètres facultatifs.

Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait

Tester la configuration

Une fois l’applet de commande Start-DSCConfiguration terminée, vous devez voir un fichier HelloWorld.txt à l’emplacement spécifié. Vous pouvez vérifier le contenu avec l’applet de commande Get-Content.

Vous pouvez également tester l’état actuel à l’aide de Test-DSCConfiguration.

La sortie doit être True si le nœud est actuellement conforme à la configuration appliquée.

Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!

Réapplication de la configuration

Pour voir votre configuration réappliquée, vous pouvez supprimer le fichier texte créé par votre configuration. Utilisez l’applet de commande Start-DSCConfiguration avec le paramètre -UseExisting. Le paramètre -UseExisting fait en sorte que Start-DSCConfiguration réapplique le fichier « current.mof », qui représente la dernière configuration correcte appliquée.

Remove-Item -Path C:\Temp\HelloWorld.txt

Étapes suivantes

  • En savoir plus sur les configurations DSC sous Configurations DSC.
  • Consultez les ressources DSC disponibles et découvrez comment créer des ressources DSC personnalisées sous Ressources DSC.
  • Recherchez des configurations et des ressources DSC dans la galerie PowerShell.