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

2 Kommentare zu „XenServer Autostart VM

  1. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*