le clonage de plusieurs machines virtuelles en parallèle avec multithread PowerCLI
J'ai pris sur la tâche de clonage d'une tonne de machines virtuelles sous VMware. Plutôt que de cliquer sur des centaines de fois à travers le clone de l'assistant, je voudrais automatiser autant que possible.
J'ai le modèle de la machine est déjà configuré et "scellé." Une fois que c'est cloné et sous tension, la nouvelle-cloné instance de démarrage, assis là pendant un moment alors qu'il syspreps, etc. Cela prend environ 20 minutes.
J'ai trouvé une très belle script sur MSFT TechNet qui fait tout ce que j'en ai besoin pour le faire. J'ai modifié un petit peu donc je n'ai pas pour modifier une valeur, et re-enregistrer le script pour chaque étape du processus. Au lieu des $compteur de pas tout au long du script, j'ai tout simplement remplacé par de la certains retards de Sommeil. À ce stade, il fonctionne très bien et avec succès clones de toutes les machines qu'il lit à partir d'un fichier CSV. Chaque machine prend environ 35 minutes avant qu'il est prêt à aller (machine est déplacé vers une autre ANNONCE OU).
Le seul problème est qu'il tourne tout en série, en attente pour le processus complet (clone, changement de VLAN, de démarrage de la machine et attendre la jonction de domaine, et de déplacer la finale de l'objet machine à une autre ANNONCE UO) pour terminer avant de commencer un autre clone.
Ce que je voudrais vraiment, en quelque sorte, est optimisé pour faire de l'ensemble de l'opération plus rapide. J'ai trouvé dans le test que le clonage dans vSphere commence à ralentir une fois sur cinq clone d'emplois sont en cours d'exécution, donc j'aimerais modifier ce script à exécuter quatre clones (faisant de l'ensemble du flux de travail) à la fois.
Des idées? Je peux coller le code si nécessaire.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez à max clone 8 vms en parallèle à partir d'un modèle. Si vous exécutez la nouvelle-vm avec -RunAsync. Avec -RunAsync La commande retourne immédiatement et la sortie se compose d'un ou de plusieurs objets Task.
si vous voulez cloner plusieurs machines virtuelles Suivantes devraient vous aider. juste une boucle.
Voici un script que j'ai écrit au cours des derniers jours, qui déploie un VM modèle à environ 650 de nos serveurs. Il se déploie à partir de 3 différentes VM Hôtes dans les différents centres de données à travers le pays. Il se déploie à 5 de l'Irving emplacement, 15 de Plano, et 15 d'Atlanta en même temps. Il s'étend entre 7 heures du soir et 6 heures du matin du Lundi au Vendredi, et toute la journée le samedi et le dimanche. Il quitte si elle s'exécute tout autre moment.
J'ai manqué de temps lorsque l'on tente de comprendre comment passer plus d'un paramètre à une fonction lors de l'appel de cette fonction à l'aide de Start-Travail, j'ai donc créé une fonction distincte pour les trois emplacements.
L'aide de ce script, nous avons été en mesure de déployer un nouveau CDR image à plus de 650 sites sur les nuits et les week-ends dans une semaine environ.
param(
[Paramètre(ValueFromPipelineByPropertyName=$true)]
[string]$InputFile = $null
)