Product Documentation

Exemple : créer et configurer un hôte

Oct 21, 2016

L'exemple suivant explique comment créer et configurer un hôte.

Avant de commencer, suivez les étapes détaillées dans Mise en route avec le SDK de XenDesktop. Ce document explique comment utiliser Studio pour réaliser l'opération que vous voulez scripter (dans ce cas, pour créer un hôte) et collecter le journal des opérations SDK effectuées par Studio pour réaliser la tâche. Ce résultat peut ensuite être personnalisé pour produire un script pour automatiser la création d'un hôte.

Remarque : pour vous assurer que vous obtiendrez toujours les dernières améliorations et correctifs, Citrix vous recommande de suivre la procédure décrite dans ce document, plutôt que de copier et de coller le script exemple. Des numéros de ligne et sauts de ligne ont été ajoutés au script pour améliorer sa lisibilité.

Compréhension du script

La section suivante décrit la fonction de chaque partie du script généré par Studio. Ceci vous aidera à la personnalisation de votre propre script. Des numéros de ligne ont été ajoutés pour améliorer la lisibilité.

1. Get-LogSite -AdminAddress 'mycontroller.example.com:80'

Interroge le service de journalisation de la configuration pour récupérer les informations sur la configuration du site.

2. Start-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -Source 'Studio' -StartTime 14/08/2013 14:30:28 -Text 'Create Connection `'Example XenServer`''

Démarre une opération de journalisation de haut niveau avec l'opération de journalisation de la configuration dans laquelle existe le reste des commandes. Retourne un ID de journal qui est fourni aux opérations suivantes.

3. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80' 

Définit l'emplacement de Host Service qui sera utilisé par les cmdlets de configuration. Host Service exposant un fournisseur PowerShell, tous les cmdlets ne peuvent pas s'approprier une adresse pour le service afin que son cmdlet définisse un emplacement par défaut.

4.New-Item -ConnectionType 'XenServer' -HypervisorAddress @('http://xenhost1.example.com') -LoggingId e355ce51-8cbb-400a-ae81-1fdc567239cb -Path @('XDHyp:\Connections\Example XenServer') -Scope @() -Password ******** -UserName 'root'

Crée une connexion à un XenServer (xenhost1.exemple.com). Ceci est une connexion non permanente qui est uniquement disponible sur ce runspace PowerShell.

5. Stop-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -EndTime 14/08/2013 14:30:29 -HighLevelOperationId 'e355ce51-8cbb-400a-ae81-1fdc567239cb' -IsSuccessful $True

Arrête l'opération de journalisation démarrée précédemment et indique qu'elle a réussie.

6. Get-LogSite -AdminAddress 'mycontroller.example.com:80' 

Interroge le service de journalisation de la configuration pour récupérer les informations sur la configuration du site.

7. Start-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -Source 'Studio' -StartTime 14/08/2013 14:30:30 -Text 'Update Connection `'Example XenServer`'' 

Démarre une nouvelle opération de journalisation de haut niveau.

8. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80' 

Définit les détails d'adresse de Host Service à nouveau (notez que cette répétition est supprimée dans le script optimisé ci-dessous).

9. Set-Item -HypervisorAddress @('http://xenhost1.example.com','http://xenhost2.example.com') -LoggingId 44e15629-6906-4840-a36c-984aaf67be6d -PassThru -Path @('XDHyp:\Connections\Example XenServer') -Password ******** -UserName 'root' 

Met à jour la connexion créée à l'étape 4. Parce qu'il existe plus d'un XenServer dans le pool, il fournit toutes les adresses pour activer la haute disponibilité.

10. Stop-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -EndTime 14/08/2013 14:30:31 -HighLevelOperationId '44e15629-6906-4840-a36c-984aaf67be6d' -IsSuccessful $True

Arrête l'opération de journalisation commencée à l'étape 7.

11. Get-LogSite -AdminAddress 'mycontroller.example.com:80' 

Interroge le service de journalisation de la configuration pour récupérer les informations sur la configuration du site.

12. Start-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -Source 'Studio' -StartTime 14/08/2013 14:31:03 -Text 'Create Resources `'Example Resources`' and Persist Connection `'Example XenServer`''

Démarre une nouvelle opération de journalisation.

13. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80'

Définit les détails d'adresse Host Service à nouveau.

14. Get-ChildItem -Path @('XDHyp:\Connections')

Obtient le contenu de la connexion d'hôte pour remplir les boîtes de dialogue de l'assistant.

15. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80' 

Définit les détails d'adresse Host Service à nouveau.

16. Remove-Item -LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314 -Path @('XDHyp:\Connections\Example XenServer') 

Supprime la connexion temporaire créée dans l'assistant.

17. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80'

Définit les détails d'adresse Host Service à nouveau.

18. New-Item -ConnectionType 'XenServer' -HypervisorAddress @('http://xenhost1.example.com','http://xenhost2.example.com') -LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314 -Path @('XDHyp:\Connections\Example XenServer') -Persist -Scope @() -Password ******** -UserName 'root'

Recrée la connexion en tant que connexion permanente qui est inscrite dans la base de données et disponible pour les autres runspaces PowerShell.

19. New-BrokerHypervisorConnection -AdminAddress 'mycontroller.example.com:80' -HypHypervisorConnectionUid a14096ba-5074-44ff-b596-371e345c0449 -LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314

Ajoute la connexion hôte au service du broker.

20. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80'

Définit les détails d'adresse Host Service à nouveau.

21. New-Item -HypervisorConnectionName 'Example XenServer' -LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314 -NetworkPath @('XDHyp:\Connections\Example XenServer\Network 0.network') -Path @('XDHyp:\HostingUnits\Example Resources') -PersonalvDiskStoragePath @('XDHyp:\Connections\Example XenServer\Pvd Storage.storage') -RootPath 'XDHyp:\Connections\Example XenServer' -StoragePath @('XDHyp:\Connections\Example XenServer\Primary OS.storage') 

Crée le HostingUnit (référé en tant que Ressources dans Studio) à l'aide des informations rassemblées à l'étape 14.

22. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80' 

Définit les détails d'adresse Host Service à nouveau.

23. Get-Item -Path @('XDHyp:\Connections\Example XenServer')

Récupère l'objet nouvellement créé.

Stop-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -EndTime 14/08/2013 14:31:07 -HighLevelOperationId '76caa3f4-df93-4cb2-b78d-6a8824766314' -IsSuccessful $True 

Arrête l'opération de journalisation démarrée précédemment et indique qu'elle a réussie.

Personnaliser le script

La section suivante illustre comment convertir et adapter la sortie Studio dans un script plus lisible. Le script suivant a été simplifié afin que, au lieu de créer une connexion hôte temporaire dans le processus d'obtention d'informations dans les assistants comme dans le script Studio ci-dessus, une connexion permanente est créée. Les informations sont alors interrogées depuis ce dernier pour créer HostingUnit (Ressources). Notez que les détails LoggingId et HypHyperConnectionUid sont différents.

Des numéros de ligne ont été ajoutés pour améliorer la lisibilité ; chaque élément numéroté est une commande PowerShell unique.

1. Start-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:80' -Source 'Studio' -Text 'Create Connection `'Example XenServer`'' 2. Set-HypAdminConnection -AdminAddress 'mycontroller.example.com:80' 3. New-Item -ConnectionType 'XenServer' -HypervisorAddress @('http://xenhost1.example.com',' http://xenhost2.example.com')-LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314 -Path @('XDHyp:\Connections\Example XenServer') -Persist -Scope @() -Password ******** -UserName 'root' 4. Get-ChildItem -Path @('XDHyp:\Connections') 5. New-BrokerHypervisorConnection -AdminAddress 'mycontroller.example.com:80' -HypHypervisorConnectionUid a14096ba-5074-44ff-b596-371e345c0449 -LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314 6. New-Item -HypervisorConnectionName 'Example XenServer' -LoggingId 76caa3f4-df93-4cb2-b78d-6a8824766314 -NetworkPath @('XDHyp:\Connections\Example XenServer\Network 0.network') -Path @('XDHyp:\HostingUnits\Example Resources') -PersonalvDiskStoragePath @('XDHyp:\Connections\Example XenServer\Pvd Storage.storage') -RootPath 'XDHyp:\Connections\Example XenServer' -StoragePath @('XDHyp:\Connections\Example XenServer\PrimaryOS.storage') 7. Stop-LogHighLevelOperation -AdminAddress 'mycontroller.example.com:s80 '-HighLevelOperationId '76caa3f4-df93-4cb2-b78d-6a8824766314 '-IsSuccessful $True