Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Le serveur Pull Server (Windows Feature DSC-Service) est un composant pris en charge de Windows Server, mais il n’est pas prévu d’offrir de nouvelles fonctionnalités ou capacités. nous aimerions que vous sachiez qu’une version plus récente de DSC est désormais généralement disponible, gérée par une fonctionnalité d’Azure Policy nommée configuration invité. Le service de configuration invité combine les fonctionnalités de l’extension DSC, de la configuration d’état d’Azure Automation et des fonctionnalités les plus fréquemment demandées à partir des commentaires des clients. La configuration invité inclut également la prise en charge des machines hybrides via des serveurs compatibles Arc.
Le gestionnaire de configuration local (LCM) peut être géré de manière centralisée par une solution de service d’extraction. Lorsque vous utilisez cette approche, le nœud géré est enregistré auprès d’un service et une configuration est affectée dans les paramètres LCM. La configuration et toutes les ressources DSC nécessaires en tant que dépendances pour la configuration sont téléchargées sur la machine et utilisées par LCM pour gérer la configuration. Les informations sur l’état de la machine gérée sont téléchargées dans le service pour la création de rapports. Ce concept est appelé « service pull ».
Les options actuelles pour le service pull comprennent :
- Service de configuration de l’état souhaité d’Azure Automation
- Un service d’extraction s’exécutant sur Windows Server
- Solutions open source gérées par la communauté
- Une action PME
L’échelle recommandée pour chaque solution est la suivante :
| Solution | Nœuds clients |
|---|---|
| Windows Pull Server à l’aide de la base de données MDB/ESENT | Jusqu’à 500 nœuds |
| Windows Pull Server à l’aide d’une base de données SQL | Jusqu’à 3500 nœuds |
| Azure Automation DSC | Petits et grands environnements |
La solution recommandée et l’option offrant le plus de fonctionnalités disponibles est Azure Automation DSC. Aucune limite supérieure pour le nombre de nœuds par compte Automation n’a été identifiée.
Le service Azure peut gérer des nœuds locaux dans des centres de données privés ou dans des clouds publics tels qu’Azure et AWS. Pour les environnements privés où les serveurs ne peuvent pas se connecter directement à Internet, envisagez de limiter le trafic sortant à la plage d’adresses IP Azure publiée (consultez Plages d’adresses IP Azure et étiquettes de service).
Les fonctionnalités du service en ligne qui ne sont actuellement pas disponibles dans le service d’extraction sur Windows Server sont les suivantes :
- Toutes les données sont cryptées en transit et au repos
- Les certificats clients sont créés et gérés automatiquement
- Magasin de secrets pour la gestion centralisée des mots de passe/informations d’identification, ou des variables telles que les noms de serveur ou les chaînes de connexion
- Gestion centralisée de la configuration LCM des nœuds
- Attribuez de manière centralisée des configurations aux nœuds clients
- Publiez les modifications de configuration vers les « groupes Canary » pour les tests avant d’atteindre la production
- Rapports graphiques
- Détail de l’état au niveau de granularité de la ressource DSC
- Messages d’erreur détaillés des machines clientes pour le dépannage
- Intégration avec Azure Log Analytics pour les alertes, les tâches automatisées, l’application Android/iOS pour la création de rapports et d’alertes
Service d’extraction DSC dans Windows Server
Il est possible de configurer un service d’extraction pour qu’il s’exécute sur Windows Server. Notez que la solution de service d’extraction incluse dans Windows Server inclut uniquement des fonctionnalités de stockage des configurations et des modules pour le téléchargement et la capture des données de rapport dans une base de données. Il n’inclut pas la plupart des fonctionnalités offertes par le service dans Azure et n’est donc pas un bon outil pour évaluer la façon dont le service serait utilisé.
Le service d’extraction proposé dans Windows Server est un service Web dans IIS qui utilise une interface OData pour mettre les fichiers de configuration DSC à la disposition des nœuds cibles lorsque ceux-ci les demandent.
Conditions requises pour l’utilisation d’un serveur collecteur :
- Un serveur exécutant :
- WMF/PowerShell 4.0 ou version ultérieure
- Rôle serveur IIS
- DSC Service
- Idéalement, il s’agit d’un moyen de générer un certificat, pour sécuriser les informations d’identification transmises au gestionnaire de configuration local (LCM) sur les nœuds cibles
La meilleure façon de configurer Windows Server pour héberger le service d’extraction consiste à utiliser une configuration DSC. Un exemple de script est fourni ci-dessous.
Systèmes de base de données pris en charge
À compter de la version 17090 de Windows Server, WMF 5.1 inclut la prise en charge de l’option SQL Server pour le service d’extraction (Windows Feature DSC-Service). Il s’agit d’une nouvelle option pour la mise à l’échelle d’environnements DSC volumineux qui n’ont pas migré vers Azure Automation DSC.
Pour configurer le serveur collecteur afin qu’il utilise SQL Server, définissez SqlProvider sur $true et SqlConnectionString sur une chaîne de connexion SQL Server valide. Pour plus d’informations, consultez Chaînes de connexion SqlClient. Pour obtenir un exemple de configuration SQL Server avec xDscWebService, consultez d’abord Utilisation de la ressource xDscWebService , puis consultez2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 sur GitHub.
Utilisation de la ressource xDscWebService
La façon la plus simple de configurer un serveur web pull est d’utiliser la ressource xDscWebService , incluse dans le module xPSDesiredStateConfiguration . Les étapes suivantes expliquent comment utiliser la ressource dans un Configuration qui configure le service Web.
Appelez l’applet de commande Install-Module pour installer le module xPSDesiredStateConfiguration .
Obtenez un certificat SSL pour le serveur DSC Pull auprès d’une autorité de certification de confiance, au sein de votre organisation ou d’une autorité publique. Le certificat reçu de l’autorité est généralement au format PFX.
Installez le certificat sur le nœud qui deviendra le serveur d’extraction DSC à l’emplacement par défaut, qui doit être
CERT:\LocalMachine\My. Notez l’empreinte du certificat.Sélectionnez un GUID à utiliser comme clé d’enregistrement. Pour en générer un à l’aide de PowerShell, entrez ce qui suit à l’invite PS et appuyez sur Entrée :
[guid]::newGuid()ouNew-Guid. Cette clé sera utilisée par les nœuds clients comme clé partagée pour s’authentifier lors de l’enregistrement. Pour plus d’informations, consultez la section Clé d’inscription ci-dessous.Dans l’ISE PowerShell, démarrez (F5) le script de configuration suivant (inclus dans le dossier du module xPSDesiredStateConfiguration sous la forme
Sample_xDscWebServiceRegistration.ps1.Ce script configure le serveur collecteur.
configuration Sample_xDscWebServiceRegistration { param ( [string[]]$NodeName = 'localhost', [ValidateNotNullOrEmpty()] [string] $certificateThumbPrint, [Parameter(HelpMessage='This should be a string with enough entropy (randomness)' + ' to protect the registration of clients to the pull server. We will use new' + ' GUID by default.' )] [ValidateNotNullOrEmpty()] [string] $RegistrationKey # A guid that clients use to initiate conversation with pull server ) Import-DSCResource -ModuleName PSDesiredStateConfiguration Import-DSCResource -ModuleName xPSDesiredStateConfiguration Node $NodeName { WindowsFeature DSCServiceFeature { Ensure = "Present" Name = "DSC-Service" } xDscWebService PSDSCPullServer { Ensure = "Present" EndpointName = "PSDSCPullServer" Port = 8080 PhysicalPath = "$env:SystemDrive\inetpub\PSDSCPullServer" CertificateThumbPrint = $certificateThumbPrint ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules" ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration" State = "Started" DependsOn = "[WindowsFeature]DSCServiceFeature" RegistrationKeyPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService" AcceptSelfSignedCertificates = $true UseSecurityBestPractices = $true Enable32BitAppOnWin64 = $false } File RegistrationKeyFile { Ensure = 'Present' Type = 'File' DestinationPath = "$env:ProgramFiles\WindowsPowerShell\DscService\RegistrationKeys.txt" Contents = $RegistrationKey } } }Exécutez la configuration en transmettant l’empreinte numérique du certificat SSL en tant que paramètre certificateThumbPrint et une clé d’enregistrement GUID en tant que paramètre RegistrationKey :
# To find the Thumbprint for an installed SSL certificate for use with the pull server list all # certificates in your local store and then copy the thumbprint for the appropriate certificate # by reviewing the certificate subjects dir Cert:\LocalMachine\my # Then include this thumbprint when running the configuration $sample_xDscWebServiceRegistrationSplat = @{ certificateThumbprint = 'A7000024B753FA6FFF88E966FD6E19301FAE9CCC' RegistrationKey = '140a952b-b9d6-406b-b416-e0f759c9c0e4' OutputPath = 'C:\Configs\PullServer' } Sample_xDscWebServiceRegistration @sample_xDscWebServiceRegistrationSplat # Run the compiled configuration to make the target node a DSC Pull Server Start-DscConfiguration -Path c:\Configs\PullServer -Wait -Verbose
Clé d’inscription
Pour permettre aux noeuds clients de s’enregistrer auprès du serveur afin qu’ils puissent utiliser des noms de configuration au lieu d’un ID de configuration, une clé d’enregistrement créée par la configuration ci-dessus est enregistrée dans un fichier nommé RegistrationKeys.txt dans C:\Program Files\WindowsPowerShell\DscService. La clé d’enregistrement fonctionne comme un secret partagé utilisé lors de l’enregistrement initial par le client auprès du serveur collecteur. Le client génère un certificat auto-signé qui est utilisé pour s’authentifier de manière unique auprès du serveur collecteur une fois l’inscription terminée. L’empreinte numérique de ce certificat est stockée localement et associée à l’URL du serveur collecteur.
Remarque
Les clés d’inscription ne sont pas prises en charge dans PowerShell 4.0.
Pour configurer un nœud afin de s’authentifier auprès du serveur collecteur, la clé d’inscription doit se trouver dans la métaconfiguration de tout nœud cible qui s’inscrira auprès de ce serveur collecteur. Notez que la clé d’enregistrement dans la métaconfiguration ci-dessous est supprimée une fois que l’ordinateur cible s’est correctement enregistré, et que la valeur doit correspondre à la valeur stockée dans le RegistrationKeys.txt fichier sur le serveur collecteur ('140a952b-b9d6-406b-b416-e0f759c9c0e4' pour cet exemple). Traitez toujours la valeur de la clé d’enregistrement de manière sécurisée, car sa connaissance permet à n’importe quelle machine cible de s’inscrire auprès du serveur collecteur.
[DSCLocalConfigurationManager()]
configuration Sample_MetaConfigurationToRegisterWithLessSecurePullServer
{
param
(
[ValidateNotNullOrEmpty()]
[string] $NodeName = 'localhost',
# the key used to set up pull server in previous configuration
[ValidateNotNullOrEmpty()]
[string] $RegistrationKey,
# The name of the pull server, same as $NodeName used in previous configuration
[ValidateNotNullOrEmpty()]
[string] $ServerName = 'localhost'
)
Node $NodeName
{
Settings
{
RefreshMode = 'Pull'
}
ConfigurationRepositoryWeb CONTOSO-PullSrv
{
ServerURL = "https://$ServerName`:8080/PSDSCPullServer.svc"
RegistrationKey = $RegistrationKey
ConfigurationNames = @('ClientConfig')
}
ReportServerWeb CONTOSO-PullSrv
{
ServerURL = "https://$ServerName`:8080/PSDSCPullServer.svc"
RegistrationKey = $RegistrationKey
}
}
}
$MetaConfigurationSplat = @{
RegistrationKey = $RegistrationKey
OutputPath = 'c:\Configs\TargetNodes'
}
Sample_MetaConfigurationToRegisterWithLessSecurePullServer @MetaConfigurationSplat
Remarque
La section ReportServerWeb permet d’envoyer les données de rapport au serveur collecteur.
L’absence de la propriété ConfigurationID dans le fichier de métaconfiguration signifie implicitement que le serveur collecteur prend en charge la version V2 du protocole de serveur collecteur, de sorte qu’un enregistrement initial est requis. À l’inverse, la présence d’un ConfigurationID signifie que la version V1 du protocole de serveur collecteur est utilisée et qu’il n’y a pas de traitement d’enregistrement.
Remarque
Dans un scénario PUSH, il existe un bogue dans la version actuelle qui rend nécessaire la définition d’une propriété ConfigurationID dans le fichier de métaconfiguration pour les nœuds qui ne se sont jamais inscrits auprès d’un serveur collecteur. Cela forcera le protocole V1 Pull Server et évitera les messages d’échec d’enregistrement.
Placement des configurations et des ressources
Une fois la configuration du serveur collecteur terminée, les dossiers définis par les propriétés ConfigurationPath et ModulePath dans la configuration du serveur collecteur sont l’endroit où vous placerez les modules et les configurations qui seront disponibles pour les nœuds cibles à extraire. Ces fichiers doivent être dans un format spécifique pour que le serveur pull puisse les traiter correctement.
Format du package du module de ressources DSC
Chaque module de ressource doit être compressé et nommé selon le modèle <Module Name>_<Module Version>.zipsuivant.
Par exemple, un module nommé xWebAdminstration avec une version de module 3.1.2.0 serait nommé xWebAdministration_3.1.2.0.zip. Chaque version d’un module doit être contenue dans un seul fichier zip.
Étant donné qu’il n’y a qu’une seule version d’une ressource dans chaque fichier zip, le format de module ajouté dans WMF 5.0 avec prise en charge de plusieurs versions de module dans un seul répertoire n’est pas pris en charge. Cela signifie qu’avant d’empaqueter les modules de ressources DSC à utiliser avec le serveur collecteur, vous devez apporter une petite modification à la structure des répertoires. Le format par défaut des modules contenant une ressource DSC dans WMF 5.0 est <Module Folder>\<Module Version>\DscResources\<DSC Resource Folder>\. Avant d’empaqueter pour le serveur collecteur, supprimez le <Module version> dossier afin que le chemin d’accès devienne <Module Folder>\DscResources\<DSC Resource Folder>\. Avec cette modification, compressez le dossier comme décrit ci-dessus et placez ces fichiers zip dans le dossier ModulePath .
Permet New-DscChecksum <module zip file> de créer un fichier de somme de contrôle pour le module nouvellement ajouté.
Configuration du format MOF
Un fichier MOF de configuration doit être associé à un fichier de somme de contrôle afin qu’un LCM sur un nœud cible puisse valider la configuration. Pour créer une somme de contrôle, appelez l’applet de commande New-DscChecksum . L’applet de commande prend un paramètre Path qui spécifie le dossier dans lequel se trouve le MOF de configuration. L’applet de commande crée un fichier de somme de contrôle nommé ConfigurationMOFName.mof.checksum, où ConfigurationMOFName est le nom du fichier mof de configuration. S’il y a plusieurs fichiers MOF de configuration dans le dossier spécifié, une somme de contrôle est créée pour chaque configuration du dossier. Placez les fichiers MOF et leurs fichiers de somme de contrôle associés dans le dossier ConfigurationPath .
Remarque
Si vous modifiez le fichier MOF de configuration d’une manière ou d’une autre, vous devez également recréer le fichier de somme de contrôle.
Outillage
Pour configurer, valider et gérer le serveur collecteur, utilisez les outils suivants inclus à titre d’exemples dans la dernière version du module xPSDesiredStateConfiguration :
Un module qui vous aidera à empaqueter les modules de ressources DSC et les fichiers de configuration à utiliser sur le serveur collecteur. PublishModulesAndMofsToPullServer.psm1. Exemples ci-dessous :
# Example 1 - Package all versions of given modules installed locally and # MOF files are in c:\LocalDepot $moduleList = @('xWebAdministration', 'xPhp') Publish-DSCModuleAndMof -Source C:\LocalDepot -ModuleNameList $moduleList # Example 2 - Package modules and mof documents from c:\LocalDepot Publish-DSCModuleAndMof -Source C:\LocalDepot -ForceUn script qui valide le serveur collecteur est correctement configuré. PullServerSetupTests.ps1.
Solutions communautaires pour le service Pull
La communauté DSC a créé plusieurs solutions pour implémenter le protocole de service d’extraction. Pour les environnements sur site, ceux-ci offrent des fonctionnalités de service d’extraction et la possibilité de contribuer à la communauté avec des améliorations incrémentielles.
Configuration du client d’extraction
Les rubriques suivantes décrivent en détail la configuration des clients pull :
- Configurer un client d’extraction DSC à l’aide d’un ID de configuration
- Configurer un client d’extraction DSC à l’aide de noms de configuration
- Configurations partielles
Voir aussi
- Vue d’ensemble de la configuration de l’état souhaité de Windows PowerShell
- Édiction de configurations
- Utilisation d’un serveur de rapports DSC
- [MS-DSCPM] : protocole de modèle d’extraction de configuration de l’état souhaité
- [MS-DSCPM] : errata du protocole de modèle d’extraction de la configuration de l’état souhaité