et PowerShell

VMware vSphere et PowerShell
Tout au long du livre, l’auteur propose aux lecteurs un ensemble
de méthodes et d’outils pour créer du code ergonomique et
redistribuable pour administrer la plateforme vSphere.
Toutes les thématiques liées à la gestion de la plateforme sont
traitées : le centre de données, les hôtes ESXi, le stockage,
le réseau, les machines virtuelles, la sécurité, la collecte
d’informations et l’audit. Ces sujets sont traités en gardant à
l’esprit l’intérêt et l’utilisation que peut en avoir l’administrateur
et l’utilisateur de la plateforme. Ainsi, après une présentation
des cmdlets PowerCLI, l’auteur conditionne la plupart de ses
exemples dans une fonction, celle-ci étant l’ingrédient de base
pour réutiliser et distribuer le code. Les fonctions sont rassemblées dans un module qui est empaqueté dans un installeur.
Le lecteur a ainsi les moyens de produire du code ergonomique
pour administrer sa plateforme.
Pour chaque chapitre, l’auteur propose en téléchargement sur
Téléchargement
le
site www.editions-eni.fr,
les sources du code utilisé et des
www.editions-eni.fr
.fr
fichiers de données et/ou de description.
Architecte Infrastructure Senior,
Responsable d’une équipe Ingénierie, Sébastien KAIFFER bénéficie
d’une forte expertise sur les technologies Microsoft. Sa vision du
scripting PowerShell place les processus métiers au cœur de sa réflexion et fournit ainsi aux lecteurs
une approche très pragmatique de
l’automatisation à mettre en place
autour de la plate-forme VMware
vSphere.
Les chapitres du livre
Avant-propos • Introduction • Rappels sur PowerShell • PowerCLI •
Configuration • Exploitation • Sécurisation • Collecte de données et
supervision • Cas concrets • Ressources et outils • Conclusion
Pour plus
d’informations :
Sur www.editions-eni.fr :
b Le code source des exemples traités.
b Des fichiers de représentation des données (csv, xml, txt).
b Les sources de l’installeur du module PowerShell.
39 €
ISBN : 978-2-7460-9442-0
Ce livre sur VMware vSphere et PowerShell s’adresse principalement à deux populations : les administrateurs de la plateforme VMware vSphere (en version 5.5 au moment de l’écriture)
et les gestionnaires de machines virtuelles. L’administrateur
trouvera les éléments pour mieux maîtriser la plateforme et
être plus efficace au quotidien, le gestionnaire mettra en œuvre
des scénarios avancés de manipulation de machines virtuelles.
Une connaissance minimale de PowerShell (à partir de la version 3.0) est un prérequis indispensable pour tirer le meilleur
profit de cette lecture.
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
VMware
vSphere
et
PowerShell
Automatisez et administrez
votre plateforme avec PowerCLI
Sébastien KAIFFER
Table des matières
Les éléments à télécharger sont disponibles à l'adresse suivante :
http://www.editions-eni.fr
Saisissez la référence de l'ouvrage EIVMPOW dans la zone de recherche
et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
Avant-propos
1.
2.
3.
4.
5.
6.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Les objectifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Le public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Les prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Les thèmes abordés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Les sources en téléchargement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapitre 1
Rappels sur PowerShell
1.
2.
3.
4.
5.
6.
Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Invite de commandes et langage de programmation . . . . . . . . . . . . 17
Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Boucles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Fonctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1 Appel d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 Paramètres d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.3 Retour d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7. Informations sur un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8. Formatage des chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9. Fichiers XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.1 Lecture d’un fichier XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.2 Import/export d’objets dans un format XML . . . . . . . . . . . . . . 39
1
2
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
10. Identifiants avec PSCredential. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11. Traces et fichier journal (log). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
12. Aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13. Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
14. Trucs et astuces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
14.1 Paramètres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
14.2 Répertoire courant du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
14.3 Nom du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
15. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Chapitre 2
PowerCLI
1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.1 Microsoft .NET Framework . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.2 PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2 Téléchargement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4. Utilisation de la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5. Première connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6. Configuration personnalisée de la console . . . . . . . . . . . . . . . . . . . . . 75
7. Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8. Aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9. Mise à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Table des matières
Chapitre 3
Configuration
1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2. Composants d’une plateforme virtuelle . . . . . . . . . . . . . . . . . . . . . . . 82
2.1 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.2 Schéma d’infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3. Création d’un centre de données (datacenter) . . . . . . . . . . . . . . . . . . 88
4. Création d’un cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.1 Haute disponibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2 Répartition de charge avec vSphere DRS
(Distributed Resource Scheduler) . . . . . . . . . . . . . . . . . . . . . . . . 94
4.3 Paramétrage complémentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3.1 Compatibilité améliorée vMotion (EVC) . . . . . . . . . . . . . 95
4.3.2 Fichier de swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5. Ajout d’hôtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.1 Gestion des profils d’hôte (host profile) . . . . . . . . . . . . . . . . . . 100
5.1.1 Création d’un profil d’hôte . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2 Application d’un profil d’hôte . . . . . . . . . . . . . . . . . . . . . 101
5.2 Intégration dans un domaine . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6. Stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.1 Montage d’une cible iSCSI (iSCSI Target) . . . . . . . . . . . . . . . . 107
6.2 Recherche de LUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.3 Création d’une banque de données (datastore) . . . . . . . . . . . . 109
6.4 Importation à partir d’un fichier CSV. . . . . . . . . . . . . . . . . . . . 113
6.5 Cluster de banques de données . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.5.1 Création d’un cluster de banques de données . . . . . . . . 116
6.5.2 Configuration du cluster . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.5.3 Ajout de banques de données . . . . . . . . . . . . . . . . . . . . . 118
7. Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.1 Création d’un switch virtuel . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2 Création d’un groupe de ports . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.3 Configuration d’un groupe de ports . . . . . . . . . . . . . . . . . . . . . 125
3
4
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
7.4 Configuration avancée avec le SDK . . . . . . . . . . . . . . . . . . . . . 126
7.5 Création d’un switch virtuel distribué (VDSwitch) . . . . . . . . 128
7.5.1 Création complète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.5.2 Création à partir d’un modèle . . . . . . . . . . . . . . . . . . . . . 130
7.5.3 Importation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.6 Création d’un groupe de ports distribués . . . . . . . . . . . . . . . . . 132
7.6.1 Création complète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.6.2 Création à partir d’un modèle . . . . . . . . . . . . . . . . . . . . . 133
7.6.3 Importation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.7 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.8 Ajout d’hôtes au switch virtuel distribué . . . . . . . . . . . . . . . . 136
7.9 VDSwitch tout-en-un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8. Création du datacenter à partir d’un fichier XML . . . . . . . . . . . . . 143
8.1 Description du module plateforme.psm1 . . . . . . . . . . . . . . . . . 147
8.2 Extension du module plateforme.psm1 . . . . . . . . . . . . . . . . . . 149
9. Suppression d’éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
10. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Chapitre 4
Exploitation
1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
2. Gestion des dossiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.1 Création d’un dossier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2 Création d’une arborescence . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2.3 Obtention d'un dossier à partir de son chemin . . . . . . . . . . . . 162
2.4 Renommage et suppression d'un dossier . . . . . . . . . . . . . . . . . 163
3. Gestion des pools de ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.1 Création d’un pool de ressources . . . . . . . . . . . . . . . . . . . . . . . 165
3.2 Modification d’un pool de ressources . . . . . . . . . . . . . . . . . . . . 166
4. Gestion des machines virtuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4.1 Création de machines virtuelles . . . . . . . . . . . . . . . . . . . . . . . . 167
4.2 Modification des paramètres d’une machine virtuelle. . . . . . . 177
Table des matières
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Clonage d'une machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . . 179
Ajout d'une machine virtuelle à l'inventaire . . . . . . . . . . . . . . 180
Création à partir d’un fichier CSV . . . . . . . . . . . . . . . . . . . . . . 181
Création à partir d’un fichier XML . . . . . . . . . . . . . . . . . . . . . . 184
Démarrage et arrêt d'une machine virtuelle . . . . . . . . . . . . . . . 188
Suppression d'une machine virtuelle . . . . . . . . . . . . . . . . . . . . . 196
Gestion des snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.9.1 Création de snaphots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
4.9.2 Rétablissement d'un snapshot . . . . . . . . . . . . . . . . . . . . . 198
4.9.3 Suppression d'un snapshot. . . . . . . . . . . . . . . . . . . . . . . . 199
4.9.4 État des lieux des snapshots . . . . . . . . . . . . . . . . . . . . . . 199
4.10 Déplacement d'une machine virtuelle . . . . . . . . . . . . . . . . . . . . 201
4.10.1Changement de dossier . . . . . . . . . . . . . . . . . . . . . . . . . . 202
4.10.2Migration avec vMotion . . . . . . . . . . . . . . . . . . . . . . . . . 203
4.11 Manipulation avancée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
4.11.1Copie et connexion d'une image ISO . . . . . . . . . . . . . . . 204
4.11.2Exécution d'un script dans une machine virtuelle . . . . . 206
5. Gestion des modèles et spécifications de personnalisation . . . . . . . 211
5.1 Création d’un modèle (template) . . . . . . . . . . . . . . . . . . . . . . . 212
5.2 Création d’une spécification de personnalisation. . . . . . . . . . . 213
5.3 Déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
5.4 Personnalisation réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
6. Gestion des vApps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
6.1 Importation d’une appliance virtuelle. . . . . . . . . . . . . . . . . . . . 226
6.2 Création de conteneurs vApp . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.3 Export d’un vApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.4 Import d’un vApp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
6.5 Manipulation d’un vApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
6.6 Modification de l’ordre de démarrage . . . . . . . . . . . . . . . . . . . . 232
7. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5
6
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
Chapitre 5
Sécurisation
1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
2. Rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
2.1 Privilèges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
2.2 Créer un rôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
2.3 Modifier un rôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
2.4 Exporter un rôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
2.5 Importer un rôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
3. Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
3.1 Appliquer une permission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
3.2 Exporter des permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
3.3 Importer des permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
4. Paramétrage avancé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
4.1 Conformité d’un paramètre avancé . . . . . . . . . . . . . . . . . . . . . 259
4.2 Mise à jour d’un paramètre avancé . . . . . . . . . . . . . . . . . . . . . . 262
5. Gestion des mises à jour. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
5.1 PowerCLI Update Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
5.1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
5.1.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
5.2 Télécharger les mises à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
5.3 Créer une ligne de base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
5.4 Lier une ligne de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
5.5 Appliquer des mises à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
5.6 Importer/exporter des lignes de base . . . . . . . . . . . . . . . . . . . . 282
5.6.1 Exporter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
5.6.2 Importer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
6. Export de l’inventaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
6.1 Sauvegarder un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
6.2 Export de l’arborescence de dossiers . . . . . . . . . . . . . . . . . . . . . 290
6.3 Export de la configuration des machines virtuelles . . . . . . . . . 291
7. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Table des matières
Chapitre 6
Collecte de données et supervision
1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
2. Gestion de l’information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
2.1 Requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
2.1.1 Get-View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
2.1.2 Modification d’un type d’objet avec New-VIProperty . 302
2.2 Mise en forme de rapports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
2.2.1 Format-Table (ft) / Format-List (fl) . . . . . . . . . . . . . . . . 304
2.2.2 Out-GridView (ogv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
2.2.3 Export-csv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
2.2.4 ConvertTo-Html . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
2.3 Compteurs et statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
3. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
3.1 Évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
3.1.1 Types d’évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
3.1.2 Auditer un évènement . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
3.2 Balises (tags) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
4. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Chapitre 7
Cas concrets
1.
2.
3.
4.
5.
6.
7.
8.
Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Machines virtuelles sans les outils VMware . . . . . . . . . . . . . . . . . . . 327
Trouver sur quelle VM est montée une image ISO . . . . . . . . . . . . . 328
Mode de verrouillage des hôtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Trouver le chemin d’un répertoire . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Fonction de production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Paramètres de fonction avec valeurs dynamiques . . . . . . . . . . . . . . 342
RunAsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
7
8
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
9. Ajouter l’espace de noms shell à ESXCLI . . . . . . . . . . . . . . . . . . . . . 346
10. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Chapitre 8
Ressources et outils
1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
2. Éditeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
3. Gestion de versions avec TortoiseSVN . . . . . . . . . . . . . . . . . . . . . . . 351
3.1 Vérification du journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
3.2 Retour arrière . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.3 Vérification des différences entre révisions . . . . . . . . . . . . . . . 363
3.4 Création automatisée d’un projet sous TortoiseSVN . . . . . . . 364
4. Packaging et distribution de code . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
5. Génération de code avec Onyx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
6. En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Conclusion
1. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Annexes
1. Liste des racines de l’inventaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
2. Fonctionnalités et licences vSphere. . . . . . . . . . . . . . . . . . . . . . . . . . 381
3. Identifiants de systèmes d’exploitation . . . . . . . . . . . . . . . . . . . . . . 382
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
237
Chapitre 5
Sécurisation
1. Objectifs
Sécurisation
Ce chapitre, qui traite de la sécurité de la plateforme, aborde les thèmes
suivants :
– La création d'un modèle de délégation avec les rôles et permissions. Celui-ci
sécurise la plateforme avec la gestion d'accès aux différents composants :
dossiers, hôtes, switchs, datastores.
– L'utilisation des paramètres avancés pour sécuriser et affiner la configuration de la plateforme.
– La gestion des mises à jour avec vSphere Update Manager et la librairie
PowerCLI Update Manager.
– L'export de la configuration de divers composants, apportant un complément aux outils de sauvegarde classiques de machines virtuelles.
238
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
2. Rôles
Les deux premiers titres de ce chapitre traitent des rôles et des permissions qui
apportent une solution souple et puissante pour créer un modèle de délégation.
Le modèle de délégation définit les actions qu’a le droit de réaliser un acteur.
Il va donc donner accès ou restreindre l’accès aux composants de la plateforme. Visuellement, la console vSphere ne présentera que les éléments auxquels l’utilisateur a accès. La console vSphere privilégiée aujourd’hui est la
console web. La facilité de distribution d’un portail web couplée à la sécurité
basée sur les rôles permet de donner aux utilisateurs accès à la plateforme sans
risquer de compromettre son intégrité. Par exemple, il est facile de restreindre
l’accès à un groupe de machines virtuelles et de ne donner que les permissions
de les démarrer, de les arrêter, ou de restaurer des snapshots.
vSphere s’appuie sur trois éléments pour réaliser le modèle de délégation : les
rôles, les permissions et les groupes ou utilisateurs.
Le rôle est un ensemble de privilèges ou droits sur un élément de la plateforme
virtuelle : hôte, réseau, banque de données ou machine virtuelle. Allouer de
l’espace sur une banque de données, modifier la configuration d’une machine
virtuelle et créer un dossier sont des exemples de privilèges. Il y a plus de 300
privilèges sur une plateforme vSphere 5.5 ; il est donc possible de créer des
rôles de manière très granulaire.
© Editions ENI - All rights reserved
Une permission est l’assemblage d’un composant de l’inventaire, d’un rôle et
d’un groupe ou utilisateur. Elle assigne un rôle à un utilisateur sur un
composant : l’utilisateur disposera donc des droits définis pour le rôle qui lui
est assigné.
Sécurisation
Chapitre 5
Remarque
Un rôle n’est pas lié à un groupe ou un utilisateur, il ne lui est associé que sur un
composant de l’inventaire pour former une permission.
Les utilisateurs et groupes sont soit locaux, soit plus généralement issus d’un
annuaire Active Directory, ce qui permet de centraliser la gestion des
utilisateurs. Dans ce cas, il faut que le serveur vCenter soit intégré à un
domaine Active Directory.
L’exemple suivant montre le groupe Formateurs Java qui a le rôle Administrateur sur le dossier Formation Java. Les utilisateurs de ce groupe
administrent les machines des élèves. Ils peuvent créer de nouvelles machines
en fonction du nombre de participants, et gérer les snapshots pour revenir à
un état initial. Ils peuvent aussi préparer plusieurs snapshots et les activer en
fonction des ateliers à réaliser. Un snapshot peut contenir l’environnement de
développement Java, tandis qu’un atelier sur les connexions aux bases de données se fera en activant un snapshot contenant un moteur de base de données.
Pas de temps perdu à installer le moteur de base de données, ce qui n’est pas
l’objectif du cours.
Sur le dossier Formation Infrastructure, le groupe Formateurs
Java a le rôle Adminlight. Les formateurs ne sont autorisés qu’à démarrer
les serveurs d’infrastructure au cas où ceux-ci ne fonctionneraient pas.
239
240
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
Le rôle est attaché à un utilisateur par le biais d’une permission. Un utilisateur
peut avoir une multitude de rôles en fonction du composant de l’inventaire. Il
est nécessaire de bien comprendre la manière de gérer le modèle de délégation
en environnement vSphere : la difficulté n’étant, une fois de plus, pas technique mais fonctionnelle. L’objectif est d’obtenir un modèle permettant de
suffisamment cloisonner sans être trop complexe et devenir inutilisable dans
la pratique.
Les sections suivantes montrent comment manipuler des privilèges, rôles et
permissions avec un vCenter intégré à un domaine Active Directory : Automotive.local dans le cadre des exercices de ce livre. Les groupes utilisés
pour assigner les permissions sont des groupes de domaine globaux.
Le premier élément à maîtriser est le privilège. L’ensemble des privilèges ou
droits que l’on peut configurer constitue un rôle.
Il y en a 306 sur une plateforme vCenter 5.5, comme le montre la commande
suivante, et ce sur quasiment une trentaine de thèmes différents.
PowerCLI C:\> Get-VIPrivilege | Measure-Object
Count
Average
: 306
:
© Editions ENI - All rights reserved
2.1 Privilèges
Sécurisation
Chapitre 5
Les privilèges sont manipulés avec la commande Get-VIPrivilege. Elle
liste les privilèges, leur nom, leur description et leur Id, ce qui permet de les
utiliser.
Get-VIPrivilege | ft Id, Description, Name
Les privilèges sont organisés par groupe ; le paramètre -PrivilegeGroup
les liste.
Get-VIPrivilege -PrivilegeGroup | ft Name, Description, Id
Les groupes de privilèges peuvent être imbriqués. Le groupe Machine
virtuelle contient plusique groupes, Configuration, Configuration de
service...
Ci-après, une capture de la console montrant cette organisation.
241
242
VMware vSphere et PowerShell
Automatisez et administrez votre plateforme avec PowerCLI
Pour retrouver les privilèges liés à une machine virtuelle, il faut lister les Id qui
contiennent VirtualMachine.
Get-VIPrivilege -PrivilegeItem | `
? Id -match 'VirtualMachine' | `
ft Name, Description, Id
Sélectionner les privilèges de cette manière reste un travail fastidieux. La fonction Get-VIPrivilegeAsHash retourne une arborescence d’objets de type
dictionnaire. Elle contient l’ensemble des privilèges organisés de la même manière que dans la console ; un groupe de privilège correspond à un dictionnaire,
un privilège correspond à une clé d’un dictionnaire.
function Get-VIPrivilegeAsHash
{
param(
[String] $Prefix='_'
)
$h = @{}
Get-VIPrivilege | % {
$privilege = $_
$t = $h
$m = $privilege.Id.Split('.')
$dernier = $m[-1]
$t = $t["$Prefix$_"]
Add-Member -InputObject $t `
-MemberType ScriptProperty `
-Name All `
-Value {
$this.Values | ? { $_.GetType().Name -ne 'Hashtable'}
$this.Values | ? { $_.GetType().Name -eq 'Hashtable'} | `
% {$_.All}
}
}
}else{
$t = $t["$Prefix$_"]
}
}
© Editions ENI - All rights reserved
$m |% {
if (-not $t.ContainsKey("$Prefix$_")){
if ($_ -eq $dernier){
$t["$Prefix$_"] = Get-VIPrivilege -Id $privilege.Id
}else{
$t["$Prefix$_"] = @{}