some usefull xe commands

find out which lic installed

xe host-list name-label=$(hostname -s) params=edition --minimal

check bond status

xe bond-list params=all
        uuid ( RO): <uuid>
            master ( RO): <uuid>
            slaves ( RO): <uuid>; <uuid>
              mode ( RO): lacp
        properties (MRO): hashing_algorithm: tcpudp_ports
     primary-slave ( RO): <uuid>
          links-up ( RO): 2

check pif status

xe pif-list params=device,speed,duplex physical=true host-name-label=$(hostname)

create vms

with following one liner you can create hundred vms without disk:

for vms in $(seq 1 100); do vmuuid=$(xe vm-install template="Windows Server 2012 (64-bit)" \
new-name-label="vm$vms" sr-uuid=$(xe sr-list name-label="XD_Storage_1" --minimal)); \
xe vm-param-set uuid=$vmuuid memory-static-min=1GiB memory-static-max=2GiB memory-dynamic-min=1GiB \
memory-dynamic-max=2GiB; xe vm-start name-label="vm$vms"; done

check vhd provisioning on sr

xe sr-param-list uuid=$(xe sr-list name-label="XD_Storage_1" --minimal)

check hd size

IFS="," vals=$(xe sr-list params=name-label --minimal); \ 
for i in $vals; do echo "sr: $i"; xe vdi-list sr-name-label=$i \ 
params=name-label,name-description,physical-utilisation,virtual-size; \ 
done

recreate bond

network=VirtualMachines;netuuid=$(xe network-list name-label=$network --minimal); \
nics=$(xe bond-param-get uuid=$(xe pif-list host-uuid=$(xe host-list name-label=$(hostname) --minimal)  \
network-name-label=$network params=bond-master-of --minimal) param-name=slaves --minimal |sed 's/; /,/g'); \
xe bond-destroy uuid=$(xe bond-list uuid=$(xe pif-list host-uuid=$(xe host-list name-label=$(hostname) --minimal) \ 
network-name-label=$network params=bond-master-of --minimal) --minimal);sleep 10; \ 
xe bond-create pif-uuids=$nics network-uuid=$netuuid mode=lacp

vm count

All VMs on the actual xenserver:

xe vm-list resident-on=$(xe host-list hostname=$(hostname) --minimal) params=name-label | grep -i name-label | wc -l

All VMs on the named xenserver:

xe vm-list resident-on=$(xe host-list hostname=TESTXENSERVER --minimal) params=name-label | grep -i name-label | wc -l


Authors:
  • Jochen Schnuerle