Product Documentation

Beispiel: Erstellen und Konfigurieren eines Hosts

Sep 29, 2015

Das folgende Beispiel zeigt das Erstellen und Konfigurieren eines Hosts.

Bevor Sie beginnen, stellen Sie sicher, dass Sie die in Erste Schritte mit dem SDK aufgeführten Schritte ausführen. In diesem Abschnitt wird dargestellt, wie Sie Studio für die Durchführung des Vorgangs verwenden, für den Sie ein Skript erstellen möchten (in diesem Fall das Erstellen eines Hosts), und für das Sammeln des Protokolls der SDK-Vorgänge, die Studio für die Ausführung der Aufgabe vorgenommen hat. Die Ausgabe kann dann so angepasst werden, dass ein Skript für die Automatisierung der Hosterstellung erstellt wird.

Hinweis: Um sicherzustellen, dass Sie immer die aktuellen Verbesserungen und Fixes erhalten, empfiehlt Citrix, dass Sie den in diesem Abschnitt beschriebenen Schritten folgen, anstatt das Beispielskript zu kopieren und einzufügen. Zeilennummern und Zeilenumbrüche wurden dem Skript für eine bessere Lesbarkeit hinzugefügt.

Inhalt des Skripts

Im folgenden Abschnitt wird die Funktion jedes Teils des Skripts erläutert, das Studio erstellt. Dies hilft Ihnen bei der Anpassung des eigenen Skripts. Zeilennummern wurden für eine bessere Lesbarkeit hinzugefügt.

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

Führt eine Abfrage beim Konfigurationsprotokollierungsdienst durch, um Informationen zur Sitekonfiguration zu erhalten.

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

Startet einen allgemeinen Protokollierungsvorgang bei der Konfigurationsprotokollierung, in der die restlichen Befehle bestehen. Gibt eine Protokoll-ID zurück, die an nachfolgende Vorgänge übergeben wird.

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

Legt den Speicherort des Hostdienstes fest, der von den Konfigurations-Cmdlets verwendet wird. Da der Hostdienst einen PowerShell-Anbieter offenlegt, können nicht alle Cmdlets eine Adresse für den Dienst annehmen. Daher legt dieses Cmdlet einen Standardspeicherort fest.

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'

Erstellt eine Verbindung zu XenServer (xenhost1.beispiel.com). Dies ist eine nicht-persistente Verbindung und ist nur für diesen PowerShell-Runspace verfügbar.

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

Beendet die zuvor begonnene Protokollierung und gibt einen Erfolg an.

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

Führt eine Abfrage beim Konfigurationsprotokollierungsdienst durch, um Informationen zur Sitekonfiguration zu erhalten.

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

Startet einen neuen allgemeinen Protokollierungsvorgang.

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

Legt erneut die Adressangaben des Hostdienstes fest (diese Wiederholung wurde in dem optimierten Skript unten entfernt).

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' 

Aktualisiert die in Schritt 4 erstellte Verbindung. Da sich mehr als ein XenServer im Pool befindet, werden alle Adressen angegeben, damit hohe Verfügbarkeit möglich ist.

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

Beendet den in Schritt 7 begonnenen Protokollierungsvorgang.

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

Führt eine Abfrage beim Konfigurationsprotokollierungsdienst durch, um Informationen zur Sitekonfiguration zu erhalten.

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`''

Startet einen neuen Protokollierungsvorgang.

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

Legt erneut die Adressangaben des Hostdienstes fest.

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

Füllt die Dialogfelder des Assistenten mit den Inhalten der Hostverbindung aus.

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

Legt erneut die Adressangaben des Hostdienstes fest.

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

Entfernt die im Assistenten erstellte temporäre Verbindung.

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

Legt erneut die Adressangaben des Hostdienstes fest.

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'

Erstellt die Verbindung erneut als persistente Verbindung, die in die Datenbank geschrieben wird und somit anderen PowerShell-Runspaces zur Verfügung steht.

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

Fügt die Hostverbindung zum Brokerdienst hinzu.

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

Legt erneut die Adressangaben des Hostdienstes fest.

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') 

Erstellt die HostingUnit (in Studio als "Ressourcen" bezeichnet) mit den in Schritt 14 gesammelten Informationen.

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

Legt erneut die Adressangaben des Hostdienstes fest.

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

Ruft ein neu erstelltes Objekt ab.

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

Beendet die zuvor begonnene Protokollierung und gibt an, ob sie erfolgreich war.

Anpassen des Skripts

Im folgenden Abschnitt wird erläutert, wie Sie die Studio-Ausgabe in ein Skript konvertieren und anpassen, das besser verwendbar ist. Das folgende Skript wurde vereinfacht, sodass anstelle der temporären Hostverbindung, die mit dem Studio-Skript erstellt wurde, um die Assistenten mit Informationen zu versorgen, eine persistente Verbindung erstellt wird. Aus dieser Verbindung heraus werden dann Informationen für die Erstellung der HostingUnit (Ressourcen) abgefragt. Hinweis: Die LoggingId- und HypHyperConnectionUid-Details sind unterschiedlich.

Für bessere Lesbarkeit wurden Zeilennummern hinzugefügt. Jedes nummerierte Element steht für einen PowerShell-Befehl.

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:80' -HighLevelOperationId '76caa3f4-df93-4cb2-b78d-6a8824766314' -IsSuccessful $True