How To Build XO From Sources on Debian 10 Using XenOrchestraInstallerUpdater

Load Debian 10 in a VM on XCP-NG (or where ever you prefer) and as of April 2020 it is recommended that the allocate at least 4GB of ram to that machine and as many CPU resources as you find reasonable. The source code compiling process speed will vary greatly based on what you have allocated. Next make sure git is installed using

apt install git

Then clone the latest installer from https://github.com/ronivay/XenOrchestraInstallerUpdater by running

git clone https://github.com/ronivay/XenOrchestraInstallerUpdater.git

If you plan on using a self signed certificate as shown in the video, then choose a location such as /etc/ssl/xo and create the keys using:

openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out xo.crt \
            -keyout xo.key

Then go back into the /root/XenOrchestraInstallerUpdater directory and copy the sample config over to xo-install.cfg:

cp sample.xo-install.cfg xo-install.cfg

Then edit the xo-install.cfg for the setting you want for your server, here are the setting used in the video:

# Port number where xen-orchestra service is bound
PORT="443"
#PLUGINS="xo-server-transport-email,xo-server-usage-report,xo-server-perf-alert"
PLUGINS="all"
# X.509 certificate setup.
PATH_TO_HTTPS_CERT=/etc/ssl/xo/xo.crt
PATH_TO_HTTPS_KEY=/etc/ssl/xo/xo.key

Then run the xo-install.sh choose option 1 autoinstall and your wait for the system to finish. Once complete you will be able to log into the system using the following credentials

user: admin@admin.net
pass: admin

8 Likes

Do you have a guide for getting plug-ins installed on the “free” version of xcp-ng?

That is covered in the video.

1 Like

Thanks again for a really helpful guide/video.

Would you have any advice on where to read up on how to secure the connection so I can get a padlock in Chrome/browser. I appreciate this is linked to the certificates but not really sure where to start and whether this would need me to make changes to the hosts as well?

I use the Jarli Method – script was developed in conjuction with one of the xcp-ng members – really really easy:


Comes with all the plugins.

Happy to report that XO installs nicely on a Raspberry Pi 4 with 4GB RAM using Ubuntu Server 20.04 LTS. It’s not the fastest install but works nicely.
I have a couple of small servers that I don’t run all the time so having the managment on a low power Pi allows me run which ever server I want to with out needing to run two installs of XO.

New to Linux, so lost with problem on first step. When I type “sudo apt install git” or “sudo apt-get install git”, I receive “command not found”. When I type “man -k apt” I see both apt and apt-get as a command line interface. I’ve restarted Debian, with the same result. Maybe I’ll go back to Ubuntu, which I haven’t had such problems with.

Ignore last message. First install stalled. Second install had above problem. Third install didn’t have a problem with “apt”.

Hey all! Just in case only one else comes across the same issue I had;
Effectively the source code was not compiling after choose option 1 autoinstall.
The output looks somthing like this “ln: target ‘/opt/xo/xo-builds/xen-orchestra-202008081145/packages/xo-server/node_modules/’ is not a directory: No such file or directory”
Then it would continue the script, with it finally trying to open ports, then would fail.
My issue appears to be that my firewall (pfSense plus pfBlocker-NG) was DNS Blocking some of the urls to was trying to reach. After turning off pfBlocker, the installation was just as advertised the xo-install.sh
Hopefully this will find its way a fellow noob!

2 Likes

Hi Lawrence, thanks for taking your time and doing these videos, I really appreciate it and learned a lot.

Any idea on how to resolve this; I’ve tried the Debian build twice and both times the same error? TY

[fail] Installation completed, but looks like there was a problem when starting xo-server/reading journalctl. Please see logs for more details

Did you follow the instructions from the error “Please see logs for more details”?

Bringing this back to the top, this method (ronivay) seems to work fine on Raspberry Pi 400 (4gb) running RaspberryPi OS and doesn’t seem to be very slow. It took about the same as other real hardware installs I’ve done on “low end” hardware. Probably about 20-30 minutes worth of waiting. Need to connect it to my lab network and make sure everything works.

Moving to Debian since CentOS is going the way of Open Solaris and I like having it on bare metal so I can burn the XCP-NG system down and start from scratch easily.

Not sure if anyone has run into this issue. Trying to do this install on a Ubuntu 18.04 LXC container on my QNAP NAS and was getting, an error at line 213 of the install script, " add-apt-repository command not found." I tired to use apt install and it failed

Was able to resolve with the command below

sudo apt-get install software-properties-common

Hope the rest of the install goes without any issues

Some useful hints. The video is still very valid in Sept. 2021.
Here are some helpful changes
The config now allows to create the ssl cert as part of the install script. Just look at the readme on the github.

If it has been a while since you did this and you try to do it from memory. Make sure you don’t use the wrong installer on github. There is a repo suggested by searches that is three years (as of writing) out of date… no commits. Use the one in this thread and you’ll be okay - does what it says on the tin. The repo has pretty regular commits. (You might think of donating to the dev, you can virtually take him out for a beer… heck buy him a round for his friends as well 'eh? Or maybe he likes boardgames send him enough euros to buy a boardgame).
watch a quick vid on Vim if you don’t know it already
watch a quick vid on tmux if you haven’t already. tmux-learn-linux-tv.playlist

Observation. Although I gave this many cores I think 4 or 6 is more than enough. I rarely saw it use more at one time. Both in all my installs in the last year+ I see core 3 peg and then the other 15 cores rarely get used. Not sure how efficient Yarn is at using multi-core … I am not a dev. It certainly uses some. Also RAM 4GB is enough - I first tried 16 and it didn’t touch it. If you look at Toms FF in the vid you see similar result.
currently updated successfully to xo-server 5.82.1 xo-web 8.87.0

I don’t update. I just create a new vm and install from scratch every few months. The updater feature probably works, I have run into issues in the past and find it faster to just follow Tom here in the vid and roll it anew. I find xo from the sources seems to run more smoothly this way.

Hope this helps someone!!

~0m
Everything looks to be patched home>hosts> select host(s) > patches tab > “up to date” = yes

1 Like

Sorry for sounding stupid, but two questions regarding this topic.

First, do you have to create a Debian VM on your XEN box to have access to the XEN Orchestrator or can you just run the installer on a separate Debian box.

And secondly, if can run the install on a separate Debian machine, how then do you get the Orchestrator installed so that it can connect to the XEN server?

I had previously built the Xen Orchestrator on my Debian box and at one time during a previous Xen test, had it working so was just wondering if all I had to do was connect to it (how??) .

Thanks.

Yes you can run it on separate computers, that’s how I have mine set up and how I installed it on the RaspberryPi 400-4GB. I would recommend more than 16GB for the system drive if you use a standalone computer for this, I have an HP T630 that runs my XO and the 16GB ssd that came with it is basically always full with just enough room to upgrade to newer versions while deleting a previous version.

To connect you need to log into XO and add servers:

Settings → Servers and fill in the IP and user:pass, might want to toggle the switch for “unauthorized certificates” unless you have installed real signed certs., otherwise the connection will fail.

If they are already in a pool, you can just add the pool master.

Greg_E thanks for the reply. It’s what I thought was the case, but the instructions were a little ambiguous. I’ve only been testing XCP-NG and up to now, have created an XCP-NG VM for Debian and the XO build. I think what I’ll do is put the XO on a separate piece of steel and use it from there all the time.

In the link that Tom gave, there is also a way to download an XO from sources appliance directly into your XCP-NG, it seems to work fine the one time I tried it. But I also really like having XO waiting when I burn my XCP-NG system down and start from scratch (twice now). It’s just nice having choices.

I didn’t see the link that Tom gave! Is it in the video? Anyway, I’ve just finished building XO on a separate low end spare box and connected it to my test XCP-NG server. As I said, this is just a test. If I like what I see, then I’ll buy a new server class box to use it on, but at least now, I have the XO built and running.

I’ve played with XO a bit but still prefer XCP-ng Center. Probably just a learning curve thing.

Thanks for your help.

There are a few things that Center will do that XO won’t, can’t remember off the top of my head but a couple of things.