Utiliser les commandes xen pour les piloter à distance

Installer rsync pour récupérer le /opt/xenserver du serveur xen qui contient les CLI xen.

apt install rsync stunnel

Récupérer /opt/xenserver sur le xen (ici en exemple, le serveur est en 10.0.1.223) :

… code-block:: console

rsync -aPv root@10.0.1.223:/opt/xensource /opt/

Exemple pour un import de template. Il faudra récupérer l’uuid du template sur le xen qui possède le template; ici il est en 10.0.1.15. L’autocomplétion ne fonctionne pas.

/opt/xensource/bin/xe -s 10.0.1.15 -u root -pw PASSWORD template-export template-uuid=f7973fa8-cdd8-08e2-20c4-6dbfa05f953c  filename=/big_data/EnghienBK01

Scan d’un SR en timeout

Pour vérifier les montages

mount

La SR en question est situé dans /var/sr-mount/UUID

Démonter le SR en mode lazy

mount -l /var/sr-mount/UUID

On démonte proprement

xe pbd-unplug uuid=UUID

Puis on vérifie qu’il n’y a plus de traces

ps edf | grep UUID

Autostart des vm sur xen

Dans un premier temps, autoriser le pool a lancer l’autostart des VM

xe pool-param-set uuid=$(xe pool-list --minimal) other-config:auto_poweron=true

Pour démarrage auto des vms :

IFS=",";for uuid in $(xe vm-list power-state=running is-control-domain=false --minimal); do echo $(xe vm-param-get uuid=$uuid param-name=name-label);xe vm-param-set uuid=$uuid other-config:auto_poweron=true; done;

Ne pas oublier de désactiver les anciens boot auto (Cas typique d’un serveur qui passe en « OLD- » …

IFS=",";for uuid in $(xe vm-list power-state=halted is-control-domain=false --minimal); do echo $(xe vm-param-get uuid=$uuid param-name=name-label);xe vm-param-set uuid=$uuid other-config:auto_poweron=false; done;

Lister les VM qui tourne sur un SR en particulier

for i in `xe vdi-list sr-uuid=$(xe sr-list name-label=CHANGEME --minimal) params=vbd-uuids --minimal | sed 's/,/\n/g'`; do xe vbd-list uuid=$i params=vm-name-label --minimal; done | sort

Stopper toutes les VM sur un SR en particulier

for i in `xe vdi-list sr-uuid=$(xe sr-list name-label=drbd1 --minimal) params=vbd-uuids --minimal | sed 's/,/\n/g'`; do for line in $(xe vbd-list uuid=$i params=vm-name-label --minimal); do xe vm-shutdown name-label=$line; done ; done

Pour chaque machine sur sr drbd1 qui sont allumées, les éteindre

for i in `xe vdi-list sr-uuid=$(xe sr-list name-label=drbd1 --minimal) params=vbd-uuids --minimal | sed 's/,/\n/g'`; do for line in $(xe vbd-list uuid=$i params=vm-name-label --minimal); do for uuid in $(xe vm-list name-label=$line power-state=running --minimal); do xe vm-shutdown uuid=$uuid; done ; done ; done

Copier template d’un pool sur un autre xenserver en ssh

xe template-export template-uuid=$( xe template-list name-label=modele-stretch --minimal) filename= | ssh root@IP_CIBLE 'cat - | xe vm-import filename=/dev/stdin'

Importer template sur srvfichiers sur le xen :

ssh root@srvfichiers 'cat /data/Template_MCC.xva' | xe vm-import filename=/dev/stdin

Gestion des SR

Afficher tous les Storage Repositories

xe sr-list

Sonde le Storage

sr-probe  The device-config parameters can be specified by e.g. device-config:devs=/dev/sdb1.

Introduit un SR (Mais ne créer pas de PDB).

sr-introduce
xe sr-introduce uuid=39baf126-a535-549f-58d6-feeda55f7801 type=lvm name-label=”Local storage” content-type=user
xe pbd-create sr-uuid=39baf126-a535-549f-58d6-feeda55f7801
device-config:device=/dev/disk/by-id/scsi-SATA_ST380815AS_6QZ5Z1AM-part3 host-uuid=83f2c775-57fc-457b-9f98-2b9b0a7dbcb5
aec2c6fc-e1fb-0a27-2437-9862cffe213e

Attacher le PBD créé avec la commande xe pbd-plug :

xe pbd-plug uuid=aec2c6fc-e1fb-0a27-2437-9862cffe213e

Désigner un nouveau master dans un pool (Master present)

Pour changer le master dans un pool en bon état, choisir le futur master et récupérer son uuid


xe host-list

Le désigner comme nouveau master

xe pool-designate-new-master host-uuid=<host-uuid>

Divers commandes utiles a trier

Reconfigurer l’ip d’un interface avec l’uuid du pif

xe pif-reconfigure-ip uuid=892f4c16-bddc-3f13-ac06-daddec8de0c4 mode=static DNS=143.126.153.187,143.126.201.229 IP=143.126.153.188 netmask=255.255.255.224

Patcher un serveur Citrix Xenserver

xe patch-upload file-name=[nom_patch]

Export/Import XVA

The export command to run from XenServer console is

xe vm-export vm=crucialtestbox filename=/test/crucialtestbox.xva

Then on the new XenServer box run,

xe vm-import filename=/test/crucialtestbox.xva

Transfer template

Copier template d’un pool sur un autre xenserver en ssh :

xe template-export template-uuid=$( xe template-list name-label=modele-stretch --minimal) filename= | ssh root@143.126.151.201 'cat - | xe vm-import filename=/dev/stdin'

Regénérer les template par défaut

/usr/bin/create-guest-templates

Utiliser du VNC sur les VM xenserver/xcpng-server

Connect to VM installer At this stage we use VNC client to connect to our new virtual machine. First, we need to get a VNC port number to connect to:

xe vm-list name-label=srvads
xe vm-param-get uuid=2bba32c1-c2b2-7251-7acf-6acd8c856e6e param-name=dom-id
2

xenstore-read /local/domain/2/console/vnc-port
5901

Last two digits of the above command output will provide you with the VNC port number. In this case it’s 1. Use vnc client to connect remotely:

vncviewer -via root@XENSERVER_IP localhost:1

Montage disque virtuel

mount
/var/sr-mount


mount -l /var/sr-mount/UUID

On démonte proprement

ps edf | grep UUID

Astuce metadata

Pour xenserver, il ne faut pas modifier la valeur de metadata_read_only dans le ficheir lvm.conf. Il faut la laisser à 1. Si on a une commande qui a vraiment besoin, on peut toujours rajouter –config global{metadata_read_only=0} à la commande lvm

Créer le storage DVD DRIVES

xe sr-create host-uuid=5e54d10f-030d-4e61-b9cd-fce3d0a4a7a6 content-type=iso name-label="DVD drives" type=udev device-config:"location=/dev/xapi/cd" physical-size=0 shared=false sm-config:"type=cd"

Créer le storage REMOVABLE_STORAGE

xe sr-create host-uuid=9a976cca-c330-40d6-8eec-4fbee9cc3245 content-type=disk name-label="Removable storage" type=udev device-config:"location=/dev/xapi/block" physical-size=0 shared=false sm-config:"type=block"

Créer un SR NFS

[14:41 xcp-ng-server ~]# xe sr-probe type=nfs device-config:server=10.143.206.42 device-config:serverpath=/var/www/nfsshare
<?xml version="1.0" ?>
<SRlist>
<SR>
  <UUID>d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3</UUID>
  </SR>
  </SRlist>

  [14:41 xcp-ng-server ~]# xe sr-introduce uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3 shared=true type=nfs name-label=NFS_TEST
  d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3

  [14:42 xcp-ng-server ~]# xe pbd-create sr-uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3 host-uuid=948c5b8a-d78d-4920-a19f-87f57c089294 device-config:server=10.143.206.42 device-config:serverpath=/var/www/nfsshare
  fe481eeb-5a1d-2d96-0450-5a7517d96bc1

  [14:43 xcp-ng-server ~]# xe pbd-plug uuid=fe481eeb-5a1d-2d96-0450-5a7517d96bc1

  xe sr-scan uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3

source : support.citrix.com/article/CTX220536

Ou bien

xe sr-probe type=nfs device-config:server=10.143.206.42 device-config:serverpath=/var/www/nfsshare"
xe sr-introduce uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3 shared=true type=nfs name-label=NFS_SR

Renommer xcp/xen

xe host-set-hostname-live host-uuid=UUID_HOST host-name=NOM_HOST

visible dans xencenter :

xe host-param-set name-label=NOM_HOST uuid=UUID_HOST'

set dom0 to 2Go

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=2048M,max:2048M

copy vdi for centos-root from nfs share to local sr #uuid on nfs : 89a021ae-8848-4557-8acd-569b6dd55533 Disk_modele-centos_root #attention le nom est perdu avec un partage nfs

xe vdi-copy uuid=89a021ae-8848-4557-8acd-569b6dd55533 sr-uuid=SR_UUID

Renommer uuid vdi nommé root

xe vdi-param-set uuid=VDI_UUID name-label=DISK_centos7_root"

Créer vm linux pour un template

xe vm-install new-name-label=TMPL_Centos7 template='CentOS 7' sr-name-label='Local storage'

Configurer le Vcpu max

xe vm-param-set uuid=UUID_VM VCPUs-max=2

Configurer le Vcpu at startup

xe vm-param-set uuid=UUID_VM VCPUs-at-startup=2

Recupérer le bad vdi de TMPL_Centos7 vm et le détruire

xe vdi-destroy uuid=$(xe vbd-param-get uuid=$(xe vbd-list vm-name-label=TMPL_Centos7 --minimal) param-name=vdi-uuid)

Attacher une partition a une vm

device=0 correspond à la position du disque

xe vbd-create vdi-uuid=VID_UUID vm-uuid=VM_UUID device=0"

Créer un network pour TMPL_Centos7

device=0 correspond à la position de la carte réseau

xe vif-create network-uuid=$(xe network-list name-label='Pool-wide network associated with eth0' --minimal) vm-uuid=VM_UUID device=0

Convertir en template la vm

La vm doit être éteinte

xe vm-param-set uuid=VM_UUID is-a-template=true"

Créer depuis ce nouveau template dXX-fspmp

xe vm-install new-name-label=dXX-fspmp template=TMPL_Centos7"

Rennommer le vdi root de dxx-fspmp

xe vdi-param-set uuid=$(xe vbd-param-get param-name=vdi-uuid uuid=$(xe vbd-list vm-name-label=dXX-fspmp vdi-name-label=DISK_centos7_root --minimal)) name-label=DISK_dXX-fspmp_root"

Ajouter un disque de 50G

xe vdi-create name-label=DISK_dXX-fspmp_wapt sr-uuid=SR_UUID  virtual-size=50GiB"

Lier le nouveau disque

device=3 correspond à la position du disque

xe vbd-create vdi-uuid=VDI_UUID vm-uuid=VM_UUID  device=3"

Récupérer l’adresse mac de la machine dXX-fspmp

xe vif-param-get uuid=$(xe vm-vif-list vm=dXX-fspmp  --minimal) param-name=MAC"

Changer les type de boot bios ou uefi

Attention, la machine ne doit pas être démarré avant, ne serait-ce qu’une seule fois

xe vm-param-set HVM-boot-policy='BIOS order' HVM-boot-params:firmware=bios uuid=VM_UUID"
xe vm-param-set HVM-boot-policy='BIOS order' HVM-boot-params:firmware=uefi uuid=VM_UUID"

Configurer la limite de la ram à 6G

xe vm-memory-limits-set uuid=VM_UUID static-min=6GiB dynamic-min=6GiB dynamic-max=6GiB static-max=6GiB"

Configurer sur unevm le Vcpu max

xe vm-param-set uuid=VM_UUID VCPUs-max=4"

Configurer le Vcpu at startup sur une vm

xe vm-param-set uuid=VM_UUID VCPUs-at-startup=4"

Démarrer une vm

xe vm-start name-label=VM_NAME

Shutdown/eteindre les vm

xe vm-shutdown --multiple