Top Banner
PowerShell DSC Simplifiez et accélérez vos configurations système Thierry BOLLET
21

PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

Sep 06, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 2: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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.

lcroise
Tampon
Page 3: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 4: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 5: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 6: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 7: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 8: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

7Table des matières

3.2 Paramètres [-CimSession <CimSession[]>]. . . . . . . . . . . . . . . . . . . . 2743.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2743.2.2 Atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

3.3 Paramètres [-Confirm] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.4 Paramètres [-ThrottleLimit <Int32>] . . . . . . . . . . . . . . . . . . . . . . . . 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

Page 9: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 10: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 11: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 12: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 13: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 14: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 15: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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

Page 16: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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.

lcroise
Tampon
Page 17: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

© 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/.

Page 18: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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'

Page 19: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

© 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.

Page 20: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

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.

Page 21: PowerShell DSC PowerShell - static.fnac-static.com · PowerShell DSC Simplifiez et accélérez vos configurations système PowerShell DSC Simplifiez et accélérez vos configurations

© 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.