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.

xe pool-list
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.

xe pool-param-set other-config:auto_poweron=true uuid=8b00a8df-3c79-a8a5-27b0-6684d92c3637

Und das ganze macht man auch für die einzelne Server.

xe host-list

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.

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

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

xe vm-list
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.

xe vm-param-set other-config:auto_poweron=true uuid=6ba176d7-c0d9-dca5-5a0b-3c789638b350

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

*