Sometimes you want to control your XCP/Xenserver pool from another host. In my case it's my firewall/iSCSI SAN box which is CentOS 6.5 X86_64. I could just remote execute xe using SSH but this doesn't allow me to set $XE_EXTRA_ARGS. Setting $XE_EXTRA_ARGS allows me to run xe commands remotely without having to specify the server, username, password or port number every time I run xe.

 

export XE_EXTRA_ARGS="server=${POOL},port=${PORT},username=${USER},password=${PASSWORD}"

 

A better choice is to install xe on the CentOS 6.5 host. 

Install pre-reqs

Install stunnel

yum install stunnel

 

 Install xapi-xe rpm from Xenserver CD

Because the Control Domain in Xenserver is 32 bit the xe command included is also 32 bit. If you have 64 bit CentOS you will need to install 32 bit glibc. The best way is to just let yum worry about it as apposed to using rpm.

If you already have a XenServer CD available you can copy the xapi-xe rpm to your CentOS host directly. If not follow the directions below.

wget http://downloadns.citrix.com.edgesuite.net/akdlm/8159/XenServer-6.2.0-install-cd.iso
mkdir xsiso
mount -o loop XenServer-6.2.0-install-cd.iso xsio
yum install xsio/packages.main/xapi-xe-0.2-5669.i686.rpm

 

 Control remote poolmaster using xe

 Because the poolmaster is remote you'll need to include the server, port, username and password in your commandline. 

xe -s <poolmaster> -p 443 -u root -pw <root password> vm-list

You can set these items in the XE_EXTRA_ARGS variable to make using xe easier.

export XE_EXTRA_ARGS="server=${POOL},port=${PORT},username=${USER},password=${PASSWORD}"
xe vm-list