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