powershell dsc powershell - static.fnac-static.com · powershell dsc simplifiez et accélérez vos...
Embed Size (px)
TRANSCRIPT
-
Pow
erSh
ell D
SCSi
mpl
ifiez
et a
ccél
érez
vos
con
figur
atio
ns s
ystè
me
PowerShell DSC Simplifiez et accélérez vos configurations système
Thierry BOLLETArchitecte Système, spécialiste en infrastructures sys-tèmes, Thierry BOLLET est certifié MCSA (Microsoft Certified Solutions Associate) Windows Server 2016 et Windows Server 2012 R2. Sa passion du langage Power-Shell, des extensions Desired State Configuration et Just Enough Administration, ainsi que sa solide expé-rience de terrain sur des environnements de produc-tion lui permettent de proposer un livre efficace, riche d’exemples utiles et concrets.
Ce livre sur Microsoft PowerShell DSC (Desired State Configuration), en version 5.1 au moment de l’écriture, s’adresse aux ingénieurs système désireux d’accélérer, de simplifier et d’homogénéiser la configuration de leurs environnements de production. Des connaissances basiques sur les environ-nements Windows Server, PowerShell et Hyper-V sont utiles pour bien appréhender PowerShell DSC.Tout au long du livre, l’auteur accompagne le lecteur dans un mode pas à pas et chaque exemple concret est mis en œuvre dans une série d’exercices pratiques pour apprendre à réaliser les opérations des plus simples aux plus complexes.Dans les premiers chapitres le lecteur crée l’environnement de test et met en place la fonctionnalité DSC sur les machines de cet environnement.Avec les chapitres qui suivent, le lecteur crée ses premières configurations et apprend à les déployer sur les serveurs distants. Ensuite, chaque ressource DSC est étudiée et mise en œuvre et le module de commandes DSC est passé en revue.L’auteur traite ensuite la mise en place de serveurs collecteurs permettant aux machines de venir chercher une configuration dédiée, le renforcement de la sécurité des configurations à l’aide des certificats, l’utilisation de DSC sur des machines Linux, les audits et rapports DSC ainsi que le dépannage des configurations.À la fin de cette lecture, le lecteur disposera de connaissances et de compétences suffisantes pour mettre en œuvre PowerShell DSC. Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Avant-propos • Plateforme de tests Windows • Présentation DSC • Méthode Push • Com-prendre les ressources • Utiliser les fonctions et commandes du module DSC • Déployer et utiliser DSC • Utiliser DSC, méthode avancée • DSC pour Linux • Audits et rapports DSC • Troubleshooting DSC • Pour aller plus loin
Les chapitres du livre
Téléchargementwww.editions-eni.fr.fr
sur www.editions-eni.fr : b Les scripts des exemples du livre.
ISSN : 1960-3444ISBN : 978-2-409-01339-3
54 €
Pour plus d’informations :
PowerShell DSC
Simplifiez et accélérez vos configurations système
Thierry BOLLET
-
1Table des matières
Avant-propos
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Objectif du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3. Approche pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4. Connaissances préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5. L'auteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapitre 1
Plateforme de tests Windows
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Prérequis d'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.1 Prérequis matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2 Prérequis logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3 Sources d'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3. Informations complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4. Atelier d'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1 Installation du rôle Hyper-V sur Windows Server 2016 . . . . . . . . . . . 234.2 Création du commutateur réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Stratégie de mode de session étendu . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.4 Création du modèle de machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . 264.5 Personnalisation des machines virtuelles . . . . . . . . . . . . . . . . . . . . . . . 324.6 Création du domaine et des machines membres . . . . . . . . . . . . . . . . . 37
4.6.1 Création du contrôleur de domaine . . . . . . . . . . . . . . . . . . . . . . 374.6.2 Création des serveurs membres . . . . . . . . . . . . . . . . . . . . . . . . . 384.6.3 Création d'objets de tests dans l'environnement. . . . . . . . . . . . 394.6.4 Création des points de contrôle Hyper-V . . . . . . . . . . . . . . . . . 42
Les éléments à télécharger sont disponibles à l'adresse suivante :http://www.editions-eni.fr
Saisissez la référence de l'ouvrage EPPOWDSC dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
lcroiseTampon
-
2Simplifiez et accélérez vos configurations système
PowerShell DSC
Chapitre 2
Présentation DSC
1. Introduction : qu'est-ce que DSC ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.1 PowerShell sans DSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.2 PowerShell DSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2. Baseline DSC : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.1 Phase d'identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.2 Méthode de préparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3. Moteur DSC (LCM) : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.1 Paramètres de versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2 Liste des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3 Paramètres de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.4 Paramètres de blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.1 Bloc Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.4.2 Bloc ConfigurationRepositoryWeb. . . . . . . . . . . . . . . . . . . . . . . 613.4.3 Bloc ConfigurationRepositoryShare . . . . . . . . . . . . . . . . . . . . . . 623.4.4 Bloc ResourceRepositoryWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.4.5 Bloc ResourceRepositoryShare . . . . . . . . . . . . . . . . . . . . . . . . . . 633.4.6 Bloc ReportServerWeb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.4.7 Bloc PartialConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4. Le format MOF : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5. Comprendre le fichier Mof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.1 Bloc 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2 Bloc 2 à 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Chapitre 3
Méthode Push
1. Installation du serveur de Push : présentation. . . . . . . . . . . . . . . . . . . . . . . . 71
2. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722.1 Modification du répertoire de travail. . . . . . . . . . . . . . . . . . . . . . . . . . . 732.2 Push d'une première configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
-
3Table des matières
Chapitre 4
Comprendre les ressources
1. Les ressources intégrées : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2. Présentation des ressources intégrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3. Ressource File : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.2.1 Création d'un répertoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.2.2 Création différentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4. Ressource Archive : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.2.2 Décompression d'une archive au travers du réseau . . . . . . . . . . 934.2.3 Décompression d'une archive locale . . . . . . . . . . . . . . . . . . . . . . 964.2.4 Vérification de Checksum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5. Ressource Environment : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2.1 Prérequis, consultation des variables existantes . . . . . . . . . . . 1015.2.2 Création d'une variable Env1 . . . . . . . . . . . . . . . . . . . . . . . . . . 1035.2.3 Ajout d'une valeur dans la variable Env1 . . . . . . . . . . . . . . . . . 1055.2.4 Suppression d'une valeur dans la variable Env1. . . . . . . . . . . . 1075.2.5 Suppression de la variable Env1 . . . . . . . . . . . . . . . . . . . . . . . . 108
6. Ressource Group : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.2.1 Création d'un groupe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106.2.2 Imbrication d'un groupe dans le groupe local . . . . . . . . . . . . . 1126.2.3 Inclusion et exclusion dans le même bloc . . . . . . . . . . . . . . . . 114
7. Ressource GroupSet : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.2.1 Création de groupes locaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177.2.2 Imbrication de groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
-
4Simplifiez et accélérez vos configurations système
PowerShell DSC
8. Ressource Log : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.2.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.2.2 Création d'un log de départ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.2.3 Création d'un log de dépendance . . . . . . . . . . . . . . . . . . . . . . . 1278.2.4 Vérification des logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
9. Ressource Package : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.2.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339.2.2 Identification d'un productID et du Name . . . . . . . . . . . . . . . 1379.2.3 Installation du MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409.2.4 Désinstallation du MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10. Ressource ProcessSet : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14610.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
11. Ressource Registry : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14711.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14711.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
11.2.1 Création dans le registre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15011.2.2 Modification de la ValueName . . . . . . . . . . . . . . . . . . . . . . . . . 15211.2.3 Modification de la ValueData . . . . . . . . . . . . . . . . . . . . . . . . . . 155
12. Ressource Script : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15712.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15712.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.2.1 Création d'un répertoire par la ressource . . . . . . . . . . . . . . . . . 15812.2.2 Ajout de paramètres de fonctions . . . . . . . . . . . . . . . . . . . . . . . 163
13. Ressource Service : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16513.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16513.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
13.2.1 Réaliser les prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16813.2.2 Stopper le service Plug and Play et modifier
le mode de démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16913.2.3 Modifier le compte de démarrage et retour
aux valeurs initiales pour le service. . . . . . . . . . . . . . . . . . . . . . 17213.2.4 Retourner aux valeurs d'origine . . . . . . . . . . . . . . . . . . . . . . . . 174
-
5Table des matières
14. Ressource ServiceSet : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17614.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17614.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
14.2.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17914.2.2 Paramétrage de deux services . . . . . . . . . . . . . . . . . . . . . . . . . . 17914.2.3 Retour aux valeurs d'origine . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
15. Ressource User : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18715.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18815.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
15.2.1 Ajout d'un compte utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . 19015.2.2 Modification du compte utilisateur . . . . . . . . . . . . . . . . . . . . . 193
16. Ressource WaitForAll : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19716.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19816.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
16.2.1 Validation de configuration pour l'ensemble des machines . . 20016.2.2 Absence de la machine DSC2 . . . . . . . . . . . . . . . . . . . . . . . . . . 206
17. Ressource WaitForAny : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20817.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20917.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21017.3 Validation de configuration pour une machine . . . . . . . . . . . . . . . . . 211
17.3.1 Simulation d'échec du contrôle de la condition. . . . . . . . . . . . 218
18. Ressource WaitForSome : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22018.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22118.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
18.2.1 Validation de configuration pour deux machines . . . . . . . . . . 22218.2.2 Validation de configuration pour trois machines . . . . . . . . . . 231
19. Ressource WindowsFeature : introduction . . . . . . . . . . . . . . . . . . . . . . . . . 23319.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23319.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
19.2.1 Prérequis identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23519.2.2 Installation d'une fonctionnalité (Feature) . . . . . . . . . . . . . . . 23619.2.3 Désinstallation d'une fonctionnalité . . . . . . . . . . . . . . . . . . . . 23919.2.4 Installation de sous-fonctionnalité et création d'un log . . . . . 240
-
6Simplifiez et accélérez vos configurations système
PowerShell DSC
20. Ressource WindowsFeatureSet : introduction. . . . . . . . . . . . . . . . . . . . . . . 24320.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24320.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
20.2.1 Installation de deux fonctionnalités (Feature). . . . . . . . . . . . . 245
21. Ressource WindowsOptionalFeature : introduction. . . . . . . . . . . . . . . . . . 24921.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
22. Ressource WindowsOptionalFeatureSet : introduction . . . . . . . . . . . . . . . 25022.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
23. Ressource WindowsPackageCab : introduction. . . . . . . . . . . . . . . . . . . . . . 25123.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25223.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
23.2.1 Installation du Cab (méthode générique). . . . . . . . . . . . . . . . . 253
24. Ressource WindowsProcess : introduction . . . . . . . . . . . . . . . . . . . . . . . . . 25424.1 Syntaxe et détail de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25424.2 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
24.2.1 Démarrage du process distant Notepad.exe . . . . . . . . . . . . . . . 25624.2.2 Démarrage du process distant Tracert.exe
avec arguments et fichier de suivi . . . . . . . . . . . . . . . . . . . . . . . 25924.2.3 Arrêt des process précédemment démarrés
(correspondance validée) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26124.2.4 Test d'arrêt des process précédemment démarrés
(correspondance non validée) . . . . . . . . . . . . . . . . . . . . . . . . . . 263
25. Credential ou PsDscRunAsCredential ? Introduction. . . . . . . . . . . . . . . . . 26525.1 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Chapitre 5
Utiliser les fonctions et commandes du module DSC
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
2. Paramètres communs à PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
3. Paramètres communs au module DSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2723.1 Paramètres [-AsJob]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
3.1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2723.1.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
-
7Table des matières
3.2 Paramètres [-CimSession ]. . . . . . . . . . . . . . . . . . . . 2743.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2743.2.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
3.3 Paramètres [-Confirm] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.4 Paramètres [-ThrottleLimit ] . . . . . . . . . . . . . . . . . . . . . . . . 277
4. Fonction Disable-DscDebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2774.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2774.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2774.3 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.3.1 Vérification de l'état du debug . . . . . . . . . . . . . . . . . . . . . . . . . 2784.3.2 Désactivation du debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
5. Fonction Enable-DscDebug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2795.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2795.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2795.3 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
5.3.1 Activation du debug sur une machine distante . . . . . . . . . . . . 2805.3.2 Vérification du debug sur une machine distante. . . . . . . . . . . 280
6. Fonction Get-DscConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2816.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2816.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2816.3 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
6.3.1 Affichage de la configuration du moteur LCM . . . . . . . . . . . . 2826.3.2 Affichage de la configuration du moteur LCM, vue filtrée. . . 283
7. Fonction Get-DscConfigurationStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2837.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2837.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2837.3 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
7.3.1 Affichage de l'ensemble des actions . . . . . . . . . . . . . . . . . . . . . 2847.3.2 Affichage détaillé de la dernière configuration . . . . . . . . . . . . 285
8. Fonction Get-DscLocalConfigurationManager . . . . . . . . . . . . . . . . . . . . . . 2868.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2868.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2868.3 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
8.3.1 Affichage de la configuration locale . . . . . . . . . . . . . . . . . . . . . 2878.3.2 Vue filtrée pour une machine distante. . . . . . . . . . . . . . . . . . . 288
-
8Simplifiez et accélérez vos configurations système
PowerShell DSC
9. Fonction Get-DscResource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2889.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2889.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2899.3 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
9.3.1 Affichage de la syntaxe pour un module . . . . . . . . . . . . . . . . . 2899.3.2 Affichage de la syntaxe pour une ressource . . . . . . . . . . . . . . . 291
10. Fonction New-DscChecksum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29110.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29110.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29210.3 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
10.3.1 Création d'une somme de contrôle . . . . . . . . . . . . . . . . . . . . . . 292
11. Fonction Remove-DscConfigurationDocument . . . . . . . . . . . . . . . . . . . . . 29411.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29411.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29411.3 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
11.3.1 Suppression d'une configuration. . . . . . . . . . . . . . . . . . . . . . . . 295
12. Fonction Restore-DscConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29512.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29512.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29612.3 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.3.1 Visualisation des fichiers de configuration. . . . . . . . . . . . . . . . 29612.3.2 Récupération du fichier Previous.mof. . . . . . . . . . . . . . . . . . . . 297
13. Fonction Stop-DscConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29813.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29813.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29813.3 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
13.3.1 Arrêt d'une configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
14. Fonction Update-DscConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30114.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30114.2 Syntaxe de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30114.3 Atelier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
15. Cmdlet du module PowerShell DSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30315.1 Cmdlet Invoke-DscResource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
15.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30315.1.2 Syntaxe de la Cmdlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
-
9Table des matières
15.2 Cmdlet Publish-DscConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . 30415.2.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30415.2.2 Syntaxe de la Cmdlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
15.3 Cmdlet Set-DscLocalConfigurationManager . . . . . . . . . . . . . . . . . . . 30515.3.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30515.3.2 Syntaxe de la Cmdlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
15.4 Cmdlet Start-DscConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30515.4.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30515.4.2 Syntaxe de la Cmdlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
15.5 Cmdlet Test-DscConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30615.5.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30615.5.2 Syntaxe de la Cmdlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Chapitre 6
Déployer et utiliser DSC
1. Introduction à la méthode de distribution . . . . . . . . . . . . . . . . . . . . . . . . . 309
2. Méthode de distribution des fichiers de configuration . . . . . . . . . . . . . . . . 3092.1 Méthode de Push . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3092.2 Méthode de Pull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
2.2.1 Un serveur collecteur web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3102.2.2 Un serveur collecteur SMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
3. Client du serveur collecteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
4. Installer le serveur de Pull IIS : introduction . . . . . . . . . . . . . . . . . . . . . . . . 312
5. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3135.1 Prérequis d'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3135.2 Installation et paramétrage du site web . . . . . . . . . . . . . . . . . . . . . . . 3145.3 Paramétrage des serveurs clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3185.4 Paramétrage des nœuds distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3215.5 Tests de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
6. Installer le serveur de Pull SMB : introduction . . . . . . . . . . . . . . . . . . . . . . 326
7. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3277.1 Prérequis, création de répertoires et partages . . . . . . . . . . . . . . . . . . . 3277.2 Création des configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3297.3 Paramétrage des nœuds distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3317.4 Vérification de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
-
10Simplifiez et accélérez vos configurations système
PowerShell DSC
8. Publier un module pour les nœuds cibles : introduction. . . . . . . . . . . . . . . 337
9. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3379.1 Suppression de la ressource xEventActive. . . . . . . . . . . . . . . . . . . . . . 3389.2 Préparation du moteur distant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3389.3 Publication de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3409.4 Préparation d'une configuration utilisant la ressource
xEventActive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3409.5 Vérification du fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Chapitre 7
Utiliser DSC, méthode avancée
1. Fichier de préparation des nœuds : introduction. . . . . . . . . . . . . . . . . . . . . 343
2. Fichier de configuration pour un nœud simple ou par duplication de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
3. Fichier de configuration pour nœuds multiples ou séparation des données de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
4. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3474.1 Création et visualisation de la variable . . . . . . . . . . . . . . . . . . . . . . . . 3474.2 Création des blocs de configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . 3494.3 Contrôle de configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
5. Configuration partielle : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
6. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3546.1 Push de configurations partielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
6.1.1 Paramétrage du moteur LCM . . . . . . . . . . . . . . . . . . . . . . . . . . 3556.1.2 Préparation des fragments de configuration . . . . . . . . . . . . . . 3576.1.3 Publication des fragments de configuration
et application de la configuration . . . . . . . . . . . . . . . . . . . . . . . 3596.2 Configuration à sources mixtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
6.2.1 Paramétrage du moteur LCM . . . . . . . . . . . . . . . . . . . . . . . . . . 3636.2.2 Application de la configuration. . . . . . . . . . . . . . . . . . . . . . . . . 367
-
11Table des matières
Chapitre 8
DSC pour Linux
1. Plateforme de test Linux : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
2. Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3712.1 Installation CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3712.2 Installation prérequis DSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
3. Installer et utiliser DSC pour Linux : introduction. . . . . . . . . . . . . . . . . . . 383
4. Le provider Nuget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
5. Les repository. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
6. Le module PowershellGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
7. Le module nx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
8. Atelier : installer et utiliser le module nx. . . . . . . . . . . . . . . . . . . . . . . . . . . 3868.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3868.2 Installer le provider Nuget pour activer PowerShellGet . . . . . . . . . . 3878.3 Installer le module nx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3908.4 Découvrir le module nx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3928.5 Utiliser le mode nx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Chapitre 9
Audits et rapports DSC
1. Auditer une configuration : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 401
2. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
3. Différents types d'audits : présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4033.1 Audit préconfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4033.2 Audit post-configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
4. Différents types de rapports d'audits : présentation . . . . . . . . . . . . . . . . . . 4034.1 Rapport PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4034.2 Rapport poussé par le nœud à son serveur collecteur de rapport . . . 4044.3 Rapport HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4044.4 Rapport outils décisionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
5. Différents types d'audits : utilisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4045.1 Audit préconfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
5.1.1 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
-
12Simplifiez et accélérez vos configurations système
PowerShell DSC
5.2 Audit post-configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4085.2.1 Atelier d'audit post-configuration,
état des dernières configurations . . . . . . . . . . . . . . . . . . . . . . . 409
6. Différents types de rapports d'audits : présentation . . . . . . . . . . . . . . . . . . 4106.1 Rapport préconfiguration PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . 410
6.1.1 Commande ou scripts de rapport . . . . . . . . . . . . . . . . . . . . . . . 4106.2 Rapport préconfiguration HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4116.3 Rapport préconfiguration Csv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4146.4 Rapport post-configuration PowerShell . . . . . . . . . . . . . . . . . . . . . . . 415
Chapitre 10
Troubleshooting DSC
1. Dépanner DSC : introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4191.1 Catégories d'évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4201.2 Cible du journal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
2. Atelier console et journaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4212.1 Prérequis, activation des évènements . . . . . . . . . . . . . . . . . . . . . . . . . 4212.2 Erreurs de syntaxe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4222.3 Erreurs de paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4232.4 Erreur d'application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
3. Atelier PowerShell et journaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4263.1 Filtre de vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4273.2 Filtre de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
4. DSC, mode Debug : introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
5. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4305.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4305.2 Debug de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
-
13Table des matières
Chapitre 11
Pour aller plus loin
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
2. DSC et les certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4382.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4382.2 Choisir son certificat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
3. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4403.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
3.1.1 Création des certificats sur les machines cibles . . . . . . . . . . . . 4403.1.2 Import des certificats sur la machine DSC1 . . . . . . . . . . . . . . 4413.1.3 Préparation de configurations. . . . . . . . . . . . . . . . . . . . . . . . . . 4423.1.4 Application des configurations . . . . . . . . . . . . . . . . . . . . . . . . . 446
4. Ajouter une ressource libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
5. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4505.1 Rechercher une ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4515.2 Afficher l'aide d'un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
5.2.1 Aide d'un module après installation . . . . . . . . . . . . . . . . . . . . . 4525.2.2 Aide sans installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
6. Créer ses ressources personnalisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
7. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4567.1 Création d'un arbre de décision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4577.2 Création de l'arborescence de fichier . . . . . . . . . . . . . . . . . . . . . . . . . . 4577.3 Création du fichier Mof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
7.3.1 Fichier Mof, syntaxe de base. . . . . . . . . . . . . . . . . . . . . . . . . . . 4587.3.2 Fichier Mof, création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
7.4 Création des fonctions pour le fichier PSM1 . . . . . . . . . . . . . . . . . . . 4627.4.1 Fonction Get-TargetResource. . . . . . . . . . . . . . . . . . . . . . . . . . 4627.4.2 Fonction Test-TargetResource . . . . . . . . . . . . . . . . . . . . . . . . . 4647.4.3 Fonction Set-TargetResource . . . . . . . . . . . . . . . . . . . . . . . . . . 466
7.5 Création du module Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4687.6 Utilisation de la ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
7.6.1 Information de ressource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4707.6.2 Utilisation de la ressource xEventActive . . . . . . . . . . . . . . . . . 470
8. Créer une ressource composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
-
14Simplifiez et accélérez vos configurations système
PowerShell DSC
9. Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4739.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4749.2 Création de la ressource composite . . . . . . . . . . . . . . . . . . . . . . . . . . . 4759.3 Utilisation de la ressource xComposite . . . . . . . . . . . . . . . . . . . . . . . . 4779.4 Utilisation de la ressource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
10. Invocation de ressources DSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48010.1 Syntaxe de la commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48110.2 Utiliser Invoke-DscResource : atelier. . . . . . . . . . . . . . . . . . . . . . . . . . 481
10.2.1 Lecture d'une clé, méthode Get . . . . . . . . . . . . . . . . . . . . . . . . . 48210.2.2 Test d'une clé, méthode Test . . . . . . . . . . . . . . . . . . . . . . . . . . 48310.2.3 Action, méthode Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
-
Chapitre 6
Déployer et utiliser DSC
Déployer et utiliser DSC
1. Introduction à la méthode de distribution
Le fonctionnement de DSC s'appuie sur la distribution d'un fichier de configuration.Ce fichier par son application garantit la conformité d'une machine. Le fichier estunique pour une machine, son attachement se fait à l’aide du nom de configurationou d'un ID de configuration.Le serveur responsable de la distribution est généralement appelé serveur de référence(ou serveur de configuration). C'est un serveur centralisé qui stocke et distribue lesconfigurations compilées (fichier Mof) pour les clients.Ce serveur est nécessaire, quelle que soit la méthode de mise à jour choisie.
2. Méthode de distribution des fichiers de configuration
Il existe deux méthodes de distribution et de mise à disposition des configurations.
2.1 Méthode de Push
Remarque
Cette méthode est utilisée depuis le début de l'ouvrage. Elle permet d'appréhender lasolution DSC et de démarrer l'envoi des premières configurations.
Le serveur DSC (serveur de référence) pousse les fichiers de configuration. C'est uneaction manuelle, elle est nécessaire lors de chaque modification de paramètres dans lefichier.
lcroiseTampon
-
© E
dit
ions
EN
I -
All r
ights
rese
rved
310Simplifiez et accélérez vos configurations système
PowerShell DSC
Cette solution est la plus simple à mettre en place. Le nœud distant n'a pas à connaîtreson serveur de configuration. Il n'a pas trace de cette information, son paramétrage detype Push ne le nécessite pas. Il reçoit le fichier qui lui est destiné (Nom ou ID). Il ap-plique ce fichier, puis le réapplique à intervalle défini.
Remarque
L'absence de paramétrage n'empêche pas le bon fonctionnement du client cible dela configuration. Il est possible de régler quelques paramètres même pour un clientcible Push, consultez le document Moteur DSC (LCM) de cet ouvrage pour informationcomplémentaire.
L'opération de Push est à répéter régulièrement, elle est obligatoire en cas de mise àjour d'un fichier de configuration. Si elle n'est pas réalisée, la nouvelle version de laconfiguration n'est pas connue du serveur client qui continuera à appliquer sa confi-guration actuelle.
2.2 Méthode de Pull
Un serveur collecteur (serveur de référence) est identifié sur chaque nœud. On parlede client du serveur collecteur. Les nœuds cibles des configurations sont paramétréspour mettre à jour les fichiers de configuration de manière régulière et répétée. Ils seconnectent sur leur serveur de référence et récupèrent une mise à jour de configura-tion si nécessaire.Cette action est automatique, elle se déroule à intervalle régulier. Si le nœud cibletrouve une nouvelle configuration qui lui est destinée, il remplace son fichier actuelpar cette nouvelle version.Cette méthode est un modèle DSC par extraction.Le service peut être assuré de deux manières.
2.2.1 Un serveur collecteur web
Les fichiers sont mis à disposition au travers d'un serveur web IIS. Ce serveur présenteles données partagées au travers d'OData (Open Data Protocol).
Remarque
L'objectif d'Open Data Protocol est de proposer un moyen standardisé d’effectuer desrequêtes sur les données. Une page OData contient des collections de données liées.Une page OData n'est pas une page d'affichage, elle propose simplement au clientdes données structurées au travers d'une page web. Ce protocole, ses avantages etson utilisation sont détaillés sur le site http://www.odata.org/.
-
311Déployer et utiliser DSCChapitre 6
Les prérequis machines nécessaires sont les suivants :– rôle serveur IIS,– fonctionnalité DSC (Feature Windows PowerShell Desired State Configuration),– WMF (Windows Management Framework) /PowerShell 5.0 ou version supérieure (5.1
pour bénéficier des dernières options et nouveautés).
2.2.2 Un serveur collecteur SMB
Les fichiers sont mis à disposition au travers d'un partage SMB (Server Message Block,anciennement CIFS - Common Internet File System). SMB fonctionne sur le modeclient/serveur, c'est un protocole robuste et rapide. Le client envoie des requêtes et leserveur va y répondre.Les prérequis sont les suivants :– un partage de fichiers SMB sur un serveur PowerShell 4.0 ou supérieur
(5.1 conseillé),– des serveurs clients PowerShell 4.0 ou supérieur (5.1 conseillé).
3. Client du serveur collecteur
L'utilisation d'un serveur collecteur (méthode Pull) demande de renseigner pourchaque client une configuration locale, qu'il s'agisse d'un collecteur web ou d'un col-lecteur SMB. Le paramétrage du LCM (moteur de configuration locale) permet au mo-teur d'identifier son serveur collecteur.Le paramétrage du moteur demande une modification de son paramètre Refresh-Mode (il passe de Push à Pull).Lors de la préparation de la configuration du moteur, un contrôle de cohérence esteffectué pendant la compilation. Dans l'exemple suivant, le moteur va être paramétréen mode Push, avec un serveur collecteur. Cette demande est illogique et ne respectepas le modèle (il n'est pas nécessaire pour l'instant de comprendre la syntaxe de cetexemple. La section Moteur DSC (LCM) : introduction, du chapitre PrésentationDSC, expliquera de façon détaillée la méthode de paramétrage du moteur LCM).
[DSCLocalConfigurationManager()]configuration TestPUSH{
Node DSC2 {
Settings {
RefreshMode = 'Push'
-
© E
dit
ions
EN
I -
All r
ights
rese
rved
312Simplifiez et accélérez vos configurations système
PowerShell DSC
} ConfigurationRepositoryWeb MonserveurCollecteurWeb {
ServerURL = 'https://MonURL' RegistrationKey = 'xxx'
} }
}TestPUSH
Préparation d'un fichier de configuration du moteur LCM
Si la demande de paramétrage n'est pas cohérente comme c'est le cas ici, la compila-tion du fichier remonte un avertissement.
AVERTISSEMENT : une Configuration Repository est spécifiée sans définir le mode d'actua-lisation sur PULL.
Les sections suivantes présentent la préparation des différents types de serveurs DSC.
4. Installer le serveur de Pull IIS : introduction
Le serveur IIS est un serveur de Pull, c'est-à-dire un serveur qui est défini comme ser-veur de référence pour les machines des nœuds clients. IIS est l'une des deux méthodesutilisées pour le Pull.La seconde méthode, un serveur SMB, est présentée dans la suite de ce chapitre.Contrairement au serveur de Push qui demande peu de préparation et qui n'imposepas de paramètres aux serveurs clients, un serveur de Pull doit être installé, puis doitmettre à disposition les informations de configuration sur les nœuds clients.
-
313Déployer et utiliser DSCChapitre 6
La mise en place du serveur de Pull IIS est celle qui demande le plus d'opérations. Lesprérequis sont les suivants :– Rôle serveur IIS– Fonctionnalité DSC (Feature Windows PowerShell Desired State Configuration)– WMF/PowerShell 5.0 ou version supérieure (5.1 pour bénéficier des dernières op-
tions et nouveautés).– Dans cet exemple, pour simplifier la mise en place, un certificat IIS autosigné doit
être créé. Cette création est réalisée directement par le script. Sur un environne-ment de production, il faut s'appuyer sur la PKI d'entreprise (Public Key Infrastruc-ture).
L'installation d'un serveur IIS demande une connaissance approfondie de la fonction-nalité Internet Information Services, de son paramétrage et de son utilisation.Pour cette raison, ce chapitre utilisera la ressource libre xPSDesiredStateConfi-guration qui prend en charge une grande partie de l'installation.
Remarque
La mise en place d'une solution à base de serveur de Pull IIS doit être étudiée en en-treprise avec l'accompagnement des équipes web. Ce chapitre présente la mise enplace d'une maquette de test, cette mise en place n'est pas suffisamment sécuriséepour être portée en l'état en production.
5. Atelier
Dans cet atelier, les prérequis d'installation d'un serveur collecteur IIS sont réalisés parla première partie du script.L'exercice suivant va permettre de paramétrer le moteur LCM de la machine DSC2avec la seconde partie du script.Une fois l'installation terminée, un fichier de configuration est créé pour ajouter unrépertoire sur le serveur cible. Cette configuration sera publiée.L'atelier se termine par la vérification du bon fonctionnement du serveur collecteurIIS.
5.1 Prérequis d'installation
Sur la machine DSC1
Le module xPSDesiredStateConfiguration nécessaire à l'installation doit êtremis à jour dans sa dernière version.
-
© E
dit
ions
EN
I -
All r
ights
rese
rved
314Simplifiez et accélérez vos configurations système
PowerShell DSC
Remarque
Cette mise à jour nécessite l'accès au dépôt https://www.powershellgallery.com/ pré-senté dans le chapitre DSC pour Linux de cet ouvrage.
dDans l'éditeur PowerShell ISE, lancez la commande Install-Module xPSDe-siredStateConfiguration -Force. Le paramètre -Force va installer la der-nière version, même si une version précédente existe déjà. Elle n'écrase pas laversion existante, mais crée un nouveau répertoire dans le chemin des modulesC:\Program Files\WindowsPowerShell\Modules.
dValidez en choisissant Oui pour tout.
Installation depuis le PSGallery
5.2 Installation et paramétrage du site web
Le script va créer les répertoires pour le site web, installer les bases pour IIS et la fonc-tionnalité DSC-Service. Il va créer un certificat autosigné pour IIS et une clé d'enregis-trement pour identifier les machines cibles.
dLancez PowerShell ISE avec élévation de privilèges et définissez le répertoire de tra-vail par la commande Set-Location D:\DSC\Mesexemples.
dDepuis PowerShell ISE, ouvrez le fichier PS1 C:\Program Files\Windows-PowerShell\Modules\xPSDesiredStateConfiguration\8.0.0.0\Examples\Sample_xDscWebServiceRegistrationWithSecurityBestPractices.ps1.