16/07/2020 - latest xoa version needs nodejs v10 so it is corrected below
20/06/2019 - reflected changes in config file .xo-server.yaml to .xo-server.toml
I had an error in path where .xo-server.yaml file should be placed. It is corrected now.
Main problem today when using XenServer  hypervisor was that it's XenCenter (GUI for managing XenServer) is windows native application. So if you wanted to go full Linux you have very little options.
The one I personally use and has a number of features that are not included in XenCenter (especially not in Standard version) is Xen Orchestra . It's easy to install it as a simple VM so you can control your hosts/pools from VM that is running on same hosts. Nice :)
One thing that it's very important to mention is XCP-ng  project. Since XenServer 7.3 was released, people using the free version were little down because Citrix removed some interesting features (xen storage motion, dynamic memory control, basic GPU passthrough, pool size limited to 3 hosts max etc.) so same folks from Xen Orchestra or xoa, to keep thing short, started XCP-ng project. Basically it is a community based branch of open-source version of XenServer. Now it is on version 7.4.1 and you are free to test it...I personally still haven't so I'm currently stuck on XenServer 7.2 across all my pools.
Now I will show you how to make clean installation of Xen Orchestra on Debian 9.3 distro.
From debian package repository install:
sudo apt-get install build-essential redis-server libpng-dev git python-minimal nfs-common curl
nfs-common is needed for mounting NFS remote storages through xoa UI.
- install nodejs
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs
- install yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt-get update && sudo apt-get install yarn
First download source code, I use /opt path:
cd /opt/ sudo git clone -b master http://github.com/vatesfr/xen-orchestra
Then use yarn to build xoa:
cd xen-orchestra/ sudo yarn sudo yarn build
After all is finished copy sample config file into root path:
sudo cp /opt/xen-orchestra/packages/xo-server/sample.config.toml /opt/xen-orchestra/packages/xo-server/.xo-server.toml
Now edit config file and uncomment/edit line to look like this:
[http.mounts] mounts: '/': '../xo-web/dist/'
To run xoa you can use
sudo yarn start inside /opt/xen-orchestra/packages/xo-server but let's continue...
Installing extra modules
There are few modules that are absolutely must have especially for scheduled backups.
So go into node_modules directory and create symbolic links of module that were donwnloaded with source code:
sudo ln -s /opt/xen-orchestra/packages/xo-server-transport-email /opt/xen-orchestra/packages/xo-server/node_modules sudo ln -s /opt/xen-orchestra/packages/xo-server-backup-reports /opt/xen-orchestra/packages/xo-server/node_modules sudo ln -s /opt/xen-orchestra/packages/xo-server-auth-ldap /opt/xen-orchestra/packages/xo-server/node_modules
Autostart xoa service
To make systemd xoa service (autostart on boot, easy restart etc) create file in systemd path:
sudo vi /etc/systemd/system/xo-server.service
and copy into it:
# systemd service for XO-Server. [Unit] Description= XO Server After=network-online.target [Service] WorkingDirectory=/opt/xen-orchestra/packages/xo-server/bin ExecStart=/usr/bin/yarn start Restart=always SyslogIdentifier=xo-server [Install] WantedBy=multi-user.target
Nest reload daemon and enable service:
sudo systemctl daemon-reload sudo systemctl enable xo-server.service sudo systemctl start xo-server.service
And thats it. I wont explain UI of xoa. You can look it online . One of the great features is scheduled backups, choose NFS storage, VM's you need to backup, backup interval and you're good to go. There are also different types of backup but more one that use online docs.
If you wanna update xoa you can just use git and then yarn to rebuild:
cd /opt/xen-orchestra/ sudo git pull --ff-only sudo yarn sudo yarn build