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$_"] = @{}
© Copyright 2024