XenServer Autostart VM
Den XenServer Autostart der VM´s lässt sich über die Console relative einfach einrichten. Damit Starten dann die VM´s automatisch wenn der Server gestartet wird.
Muss man Pro VM einrichten.
XenServer Autostart
Dazu holt man sich als erstes die Pool UUID. Auch wenn man nur einen einzel Server hat.
[stextbox id=“bash“]xe pool-list[/stextbox]
uuid ( RO) : 8b00a8df-3c79-a8a5-27b0-6684d92c3637 name-label ( RW): name-description ( RW): master ( RO): 07af4e02-1d6c-4630-aebd-b192509a085f default-SR ( RW): c37f4e62-a12e-c0c0-fd57-66e9c107deea
Als nächstes aktivieren wir für den Pool den XenServer Autostart.
xe pool-param-set other-config:auto_poweron=true uuid=UUID
Hier bitte die „UUID“ durch die UUID ersetzen.
[stextbox id=“bash“]xe pool-param-set other-config:auto_poweron=true uuid=8b00a8df-3c79-a8a5-27b0-6684d92c3637[/stextbox]
Und das ganze macht man auch für die einzelne Server.
[stextbox id=“bash“]xe host-list[/stextbox]
uuid ( RO) : d497a205-a0d6-4fe4-9e4a-c1bedd2d9fb3 name-label ( RW): xen01 name-description ( RW): Default install of XenServer uuid ( RO) : ba2044d5-10f2-4782-837c-cdf87cc47d6d name-label ( RW): xen02 name-description ( RW): Default install of XenServer uuid ( RO) : a12d8720-af7a-466a-9b41-df886a9b927a name-label ( RW): xen03 name-description ( RW): Default install of XenServer
xe host-param-set other-config:auto_poweron=true uuid=UUID
Hier bitte die „UUID“ durch die UUID ersetzen.
[stextbox id=“bash“]xe host-param-set other-config:auto_poweron=true uuid=d497a205-a0d6-4fe4-9e4a-c1bedd2d9fb3
xe host-param-set other-config:auto_poweron=true uuid=ba2044d5-10f2-4782-837c-cdf87cc47d6d
xe host-param-set other-config:auto_poweron=true uuid=a12d8720-af7a-466a-9b41-df886a9b927a[/stextbox]
Zum anzeigen der Config kann man xe host-param-get param-name=other-config uuid=UUID verwenden
Hier sollte dann auch auto_poweron: true; stehen
VM Autostart
Jetzt können wir jede VM mittels XenServer Autostart automatisch starten lassen.
Dazu lassen wir uns erst mal die UUID´s der VM´s anzeigen
[stextbox id=“bash“]xe vm-list[/stextbox]
uuid ( RO) : 5074f19b-20f0-4a80-99fd-77092a6839b4 name-label ( RW): Control domain on host: xenserver power-state ( RO): running uuid ( RO) : 02f24e60-1db4-ad03-7e16-5bd9a546fb70 name-label ( RW): jessie01.local power-state ( RO): halted uuid ( RO) : 6ba176d7-c0d9-dca5-5a0b-3c789638b350 name-label ( RW): wheezy01.local power-state ( RO): halted
Um eine VM den Autostart flag mitzugeben benötigen wir diesen Befehl.
xe vm-param-set other-config:auto_poweron=true uuid=UUID
Auch hier wird die „UUID“ durch die UUID der VM ersetzt.
[stextbox id=“bash“]xe vm-param-set other-config:auto_poweron=true uuid=6ba176d7-c0d9-dca5-5a0b-3c789638b350[/stextbox]
Leider kann man das nicht über das XenCenter einstellen was ich recht Schade finde.
Hier ein Script was man per Cron laufen lassen kann
#!/bin/bash # # Dieses Script liest die Custom Field Variable autostart aus und setzt gibt den entsprechenden VMs das autostart Flag # ## # Function get Host List ## function get_host_list(){ HOSTUUIDARRAY=`xe host-list --minimal | sed 's/,/ /g'` echo ${VMUUIDARRAY} } ## # Function get VM Liste Power ON ## function get_vm_list_power_on(){ # Liste der VMs erstellen die das Custom Field autostart true haben VMUUIDARRAY=`xe vm-list other-config:XenCenter.CustomFields.autostart=true --minimal | sed 's/,/ /g'` echo ${VMUUIDARRAY} } ## # Function get VM Liste Power Off ## function get_vm_list_power_off(){ # Liste der VMs erstellen die das Custom Field autostart false haben VMUUIDARRAY=`xe vm-list other-config:XenCenter.CustomFields.autostart=false --minimal | sed 's/,/ /g'` echo ${VMUUIDARRAY} } ## # Function Set auto_Power ON ## function set_auto_power_on(){ # Pruefe ob was uebergeben wurde if [ ! -z ${1} ]; then xe vm-param-set other-config:auto_poweron=true uuid=${1} fi } ## # Function Set auto_Power OFF ## function set_auto_power_off(){ # Pruefe ob was uebergeben wurde if [ ! -z ${1} ]; then xe vm-param-set other-config:auto_poweron=false uuid=${1} fi } # Autostart im Pool und Host aktevieren xe pool-param-set other-config:auto_poweron=true uuid=`xe pool-list --minimal` # Autostart fuer Hosts aktevieren for HOST_UUID in $(get_host_list) do # Enable Autostart xe host-param-set other-config:auto_poweron=true uuid=${HOST_UUID} done # Autostart aktevieren for VM_UUID in $(get_vm_list_power_on) do # Enable Autostart $(set_auto_power_on ${VM_UUID}) done # Autostart deaktivieren for VM_UUID in $(get_vm_list_power_off) do # Enable Autostart $(set_auto_power_off ${VM_UUID}) done
Vielen Dank, das ist sehr hilfreich und präzise aufgeschrieben.
Danke ! Hat easy geklappt, wäre eine Funktion die man sich tatsächlich über das Xencenter wünschen würde, aber andersrum ist es weinen auf hohem Niveau