Afin d’accélérer les déploiements et d’éviter les erreurs, j’ai conçu un script Powershell (basé sur un script VMware) dont le but est d’ajouter un rôle dans vCenter pour l’utilisateur vCenter avec Instant-Clones (compte défini dans Horizon).

Ce script est spécifique à vCenter 8.0 mais il peut facilement être adapté à une version antérieure.
Il va créer un rôle nommé “Horizon” avec uniquement les privilèges nécessaires.

Préquis

  • vCenter 8.0+
  • Machine Windows avec VMware PowerCLI
  • Autorisation de lancer des scripts Powershell (Set-ExecutionPolicy)
  • Compte administrateur du vCenter

Utilisation

  • Télécharger le script lien
  • Modifier la variable $viserver avec le fqdn de votre vCenter
  • Exécuter le script

Import-Module VMware.VimAutomation.Core
$Role = "Horizon"

$viserver = "vcenter.domaine.local"

Connect-VIServer -server $viServer
$RoleIds = @()

# Opérations cryptographiques
"Cryptographer.Access", "Cryptographer.Clone", "Cryptographer.Decrypt", 
"Cryptographer.Encrypt", "Cryptographer.ManageKeyServers", "Cryptographer.Migrate", "Cryptographer.RegisterHost", 

# Banque de données
"Datastore.AllocateSpace", "Datastore.Browse", 

# Dossier
"Folder.Create", "Folder.Delete", 

# Global
"Global.DisableMethods", "Global.EnableMethods", "Global.ManageCustomFields", 
"Global.SetCustomField", "Global.VCServer", 

# Hote	
"Host.Config.AdvancedConfig", "Host.Inventory.EditCluster", 

# Reseau
"Network.Assign", 

# Ressource
"Resource.AssignVMToPool", "Resource.HotMigrate", 

# strategies de stockage de machine virtuelle
"StorageProfile.Apply", "StorageProfile.EditPermissions", "StorageProfile.Update", 
"StorageProfile.View", "StorageProfile.ViewPermissions", "System.Anonymous", 

# Systeme
"System.Read", "System.View", 

# Machine virtuelle / Configuration
"VirtualMachine.Config.AddExistingDisk", "VirtualMachine.Config.AddNewDisk", "VirtualMachine.Config.AddRemoveDevice", 
"VirtualMachine.Config.AdvancedConfig", "VirtualMachine.Config.Annotation", "VirtualMachine.Config.CPUCount", 
"VirtualMachine.Config.ChangeTracking", "VirtualMachine.Config.DiskExtend", "VirtualMachine.Config.DiskLease", 
"VirtualMachine.Config.EditDevice", "VirtualMachine.Config.HostUSBDevice", "VirtualMachine.Config.ManagedBy", 
"VirtualMachine.Config.Memory", "VirtualMachine.Config.MksControl", "VirtualMachine.Config.QueryFTCompatibility", 
"VirtualMachine.Config.QueryUnownedFiles", "VirtualMachine.Config.RawDevice", "VirtualMachine.Config.ReloadFromPath", 
"VirtualMachine.Config.RemoveDisk", "VirtualMachine.Config.Rename", "VirtualMachine.Config.ResetGuestInfo", 
"VirtualMachine.Config.Resource", "VirtualMachine.Config.Settings", "VirtualMachine.Config.SwapPlacement", 
"VirtualMachine.Config.ToggleForkParent", "VirtualMachine.Config.UpgradeVirtualHardware", "VirtualMachine.Interact.DeviceConnection", 

# Machine virtuelle / Interaction
"VirtualMachine.Interact.PowerOff", "VirtualMachine.Interact.PowerOn", "VirtualMachine.Interact.Reset", 
"VirtualMachine.Interact.SESparseMaintenance", "VirtualMachine.Interact.Suspend", "VirtualMachine.Inventory.Create", 

# Machine virtuelle / Inventaire
"VirtualMachine.Inventory.CreateFromExisting", "VirtualMachine.Inventory.Delete", "VirtualMachine.Inventory.Move", 
"VirtualMachine.Inventory.Register", "VirtualMachine.Inventory.Unregister", 

# Machine virtuelle / Provisionnement
"VirtualMachine.Provisioning.Clone", "VirtualMachine.Provisioning.CloneTemplate", "VirtualMachine.Provisioning.Customize", "VirtualMachine.Provisioning.DiskRandomAccess", 
"VirtualMachine.Provisioning.ReadCustSpecs", "VirtualMachine.Provisioning.DeployTemplate", 

# Machine virtuelle / Gestion des snapshots
"VirtualMachine.State.CreateSnapshot", "VirtualMachine.State.RemoveSnapshot", 
"VirtualMachine.State.RenameSnapshot", "VirtualMachine.State.RevertToSnapshot" |

 Foreach-Object{
    $RoleIds += $_
}
New-VIRole -name $Role -Privilege (Get-VIPrivilege -Server $viserver -id $RoleIds) -Server $viserver

Set-VIRole -Role $Role -AddPrivilege (Get-VIPrivilege -Server $viserver -id $RoleIds) -Server $viserver
  • Ajouter une nouvelle autorisation à la racine du vCenter pour l’utilisateur vCenter avec le rôle Horizon

ℹ️ Il faut parfois se délogger de vSphere Web Client pour voir apparaître le nouveau rôle.

Ludovic

Consultant Technique

Partagez cet article