mirror of
https://github.com/Jarli01/xenorchestra_installer
synced 2025-12-24 04:29:59 +00:00
Compare commits
2 Commits
Jarli01-pa
...
Jarli01-pa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7334a9c888 | ||
|
|
85ce5b3078 |
93
README.md
93
README.md
@@ -1,96 +1,22 @@
|
||||
# Xen-Orchestra (Community Edition) Installer
|
||||
|
||||
Xen-Orchestra (Community Edition) allows you to administer Citrix Hypervisor (aka XenServer) and XCP-ng as well as backup any VM's running on these systems. The single line installation script allows you to go from a bare-minimal installation of [Ubuntu](https://ubuntu.com/download/server) or [Debian (Server)](https://www.debian.org/distrib/netinst) to fully operational XOCE server.
|
||||
Xen-Orchestra (Community Edition) allows you to administer Citrix XenServer and XCP-ng as well as backup any VM's running on these systems.
|
||||
|
||||
## System Minimum Requirements for installation
|
||||
The single line installation script allows you to go from a bare-minimal installation of [Ubuntu](https://ubuntu.com/download/server) or [Debian (Server)](https://www.debian.org/distrib/netinst) to fully operational XOCE server. Run the following steps from a root shell.
|
||||
|
||||
* 1 vCPU
|
||||
* 3 GiB RAM
|
||||
* 10 GiB disk space
|
||||
|
||||
## System recommendations for operation
|
||||
|
||||
* 2 vCPU recommended
|
||||
* 3 GiB of RAM (for environments containing 500+ VMs increase the amount RAM)
|
||||
* 20 GiB disk space (for system updates)
|
||||
|
||||
## Assumptions
|
||||
|
||||
* We assume you have a Virtual or physical server running a currently supported Ubuntu or Debian server installation with internet connectivity
|
||||
* You've read this community and understand what installation entails and does on your soon to be XOCE server
|
||||
|
||||
## Installation
|
||||
|
||||
Run the following steps from a root shell on your **Ubuntu or Debian** host.
|
||||
|
||||
sudo bash
|
||||
bash -c "$(curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh)"
|
||||
curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh | sudo bash
|
||||
<password>
|
||||
|
||||
The default username and password are applied, admin@admin.net and admin for the password
|
||||
|
||||
|
||||
If you don't want NFS capabilities run ```sudo apt-get remove nfs-common```.
|
||||
|
||||
* Do not use LAMP
|
||||
* SSH Access is optional, but highly recommended
|
||||
|
||||
## Updates
|
||||
# Declaration
|
||||
|
||||
To maintain your installation from Source or from this repo. (either prepackaged or scripted installation) we recommend using the update script which this community maintains. This can be [found here](https://github.com/Jarli01/xenorchestra_updater) and doesn't require you to download or install a separate package to your XOCE installation. Simply run it via shell session of your XOCE host.
|
||||
|
||||
# Declarations
|
||||
|
||||
This script automates the manual process which can be [found here](https://docs.xen-orchestra.com/installation) as well as removes a few feature restrictions that otherwise would need to be changed manually if following the manual installation process. This script is not officially supported by the Vates team, but is supported by this community.
|
||||
|
||||
# Self-signed SSL
|
||||
|
||||
If you are running this internally and need SSL (recommended) follow the below steps to create a self-signed SSL key and certificate; while browsers will still say the connection is unsecured, this is because the certificate isn't from a public authority and is on your LAN. You can add this cert to your systems root authority if it want to to remove the warning. Alternatively a reverse proxy can be used for public facing installations.
|
||||
|
||||
## Generate your key and cert from your XOCE installation
|
||||
|
||||
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/key.pem -out /etc/ssl/certs/certificate.pem
|
||||
|
||||
Now edit the xo-server.toml file
|
||||
|
||||
vi /opt/xen-orchestra/packages/xo-server/.xo-server.toml
|
||||
|
||||
Comment-out or edit the port from 80 to 443 and add the cert and key to the appropriate locations within this file.
|
||||
|
||||
port = 443
|
||||
cert = '/etc/ssl/certs/certificate.pem'
|
||||
key = '/etc/ssl/private/key.pem'
|
||||
|
||||
Restart xo-server.service
|
||||
|
||||
systemctl restart xo-server.service
|
||||
|
||||
Reload your XOCE website using SSL (https://your-host-ip)
|
||||
|
||||
# Migrating from VMWare ESXi
|
||||
The optional VMware Virtual Disk Development Kit (VDDK) offers increased performance and additional features when migrating VMs from VMWare ESXi to XCP-ng. This collection must be manually downloaded and installed due to licensing restrictions. Here are the steps for installing this optional module --
|
||||
|
||||
1. Go to https://developer.broadcom.com/sdks/vmware-virtual-disk-development-kit-vddk/latest and download the VDDK #.0 Tarball for Linux (at writing the version is 9.0 and MD5 sum is f508fe7134fcdd137fbdba5ee7f65d9f)
|
||||
2. Move this file to your XOCE installation (winSCP or some other tool)
|
||||
3. Create this directory as it doesn't exist with `mkdir /usr/local/lib/vddk` and uncompress the tarball into the same directory with ```sudo tar -xvf "./VMware-vix-disklib-9.0.0.0.24742305.x86_64.tar.gz" -C /usr/local/lib/vddk```
|
||||
|
||||
The directory structure should match the below
|
||||
|
||||
```
|
||||
debian@xoa-source:/usr/local/lib/vddk$ tree -d .
|
||||
└── vmware-vix-disklib-distrib
|
||||
├── bin64
|
||||
├── doc
|
||||
│ ├── errors
|
||||
│ ├── functions
|
||||
│ ├── samples
|
||||
│ │ └── diskLib
|
||||
│ └── types
|
||||
├── include
|
||||
├── lib32
|
||||
└── lib64
|
||||
```
|
||||
4. Lastly install these dependencies ```sudo apt install -y nbdkit libnbd-bin```
|
||||
|
||||
You should now have access to the improved features from this VDDK
|
||||
This script automates the manual process which can be [found here](https://xen-orchestra.com/docs/from_the_sources.html) as well as removes a few feature restrictions that otherwise would need to be changed manually if following the manual installation process. This script is not officially supported by the Vates team, but is supported by this community.
|
||||
|
||||
# Problems?
|
||||
|
||||
@@ -110,9 +36,4 @@ While the goal initially was to have a solution as close to XOA as possible, wit
|
||||
|
||||
To keep XOCE up to date I recommend that anyone who's used this installation script or the sources installation to use this: https://github.com/Jarli01/xenorchestra_updater
|
||||
|
||||
## Adding XOCE v6 to your installation (this is a Work In Progress by Vates)
|
||||
|
||||
cd /opt/xen-orchestra
|
||||
yarn run turbo run build --filter @xen-orchestra/web
|
||||
|
||||
Once the installation is completed, you can then go to [https://your-host-ip/v6](https://your-host-ip/v6)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
# Check for required memory
|
||||
totalk=$(awk '/^MemTotal:/{print $2}' /proc/meminfo)
|
||||
if [ "$totalk" -lt "2000000" ]; then echo "XOCE Requires at least 2GB Memory!"; exit 1; fi
|
||||
if [ "$totalk" -lt "3000000" ]; then echo "XOCE Requires at least 3GB Memory!"; exit 1; fi
|
||||
|
||||
distro=$(/usr/bin/lsb_release -is)
|
||||
if [ "$distro" = "Ubuntu" ]; then /usr/bin/add-apt-repository multiverse; fi
|
||||
@@ -13,7 +13,7 @@ if [ "$distro" = "Ubuntu" ]; then /usr/bin/add-apt-repository multiverse; fi
|
||||
xo_branch="master"
|
||||
xo_server="https://github.com/vatesfr/xen-orchestra"
|
||||
n_repo="https://raw.githubusercontent.com/tj/n/master/bin/n"
|
||||
yarn_repo="deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main"
|
||||
yarn_repo="deb https://dl.yarnpkg.com/debian/ stable main"
|
||||
yarn_gpg="https://dl.yarnpkg.com/debian/pubkey.gpg"
|
||||
n_location="/usr/local/bin/n"
|
||||
xo_server_dir="/opt/xen-orchestra"
|
||||
@@ -27,7 +27,7 @@ xo_service="xo-server.service"
|
||||
#Install yarn
|
||||
cd /opt
|
||||
|
||||
/usr/bin/curl -sSL $yarn_gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null
|
||||
/usr/bin/curl -sS $yarn_gpg | apt-key add -
|
||||
echo "$yarn_repo" | tee /etc/apt/sources.list.d/yarn.list
|
||||
/usr/bin/apt-get update
|
||||
/usr/bin/apt-get install --yes yarn
|
||||
@@ -43,7 +43,7 @@ n lts
|
||||
ln -s /usr/bin/node /usr/local/bin/node
|
||||
|
||||
# Install XO dependencies
|
||||
/usr/bin/apt-get install --yes build-essential redis-server libpng-dev git python3-minimal libvhdi-utils nfs-common lvm2 cifs-utils openssl libfuse2t64
|
||||
/usr/bin/apt-get install --yes build-essential redis-server libpng-dev git python2-minimal libvhdi-utils nfs-common lvm2 cifs-utils
|
||||
|
||||
/usr/bin/git clone -b $xo_branch $xo_server
|
||||
|
||||
@@ -71,9 +71,7 @@ for source in $(ls -d /opt/xen-orchestra/packages/xo-server-*); do
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -e $systemd_service_dir/$xo_service ]] ; then
|
||||
rm $systemd_service_dir/$xo_service
|
||||
fi
|
||||
if [[ ! -e $systemd_service_dir/$xo_service ]] ; then
|
||||
|
||||
/bin/cat << EOF >> $systemd_service_dir/$xo_service
|
||||
# Systemd service for XO-Server.
|
||||
@@ -84,15 +82,14 @@ After=network-online.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/xen-orchestra/packages/xo-server/
|
||||
ExecStart=/usr/local/bin/node ./dist/cli.mjs
|
||||
|
||||
ExecStart=/usr/local/bin/node ./bin/xo-server
|
||||
Restart=always
|
||||
SyslogIdentifier=xo-server
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
/bin/systemctl daemon-reload
|
||||
/bin/systemctl enable $xo_service
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
XOCE_URL=https://nc.nl.tab.digital/s/WQmCwmH4e9EdTTA/download
|
||||
XOCE_URL=https://archive.org/download/xogithub_gmail_Xoce/xoce
|
||||
|
||||
# Welcome message
|
||||
printf "\n\033[1mWelcome to the XOCE auto-deploy script!\033[0m\n\n"
|
||||
@@ -10,7 +10,7 @@ then
|
||||
echo
|
||||
echo 'Sorry, the xe command is required for this auto-deploy.'
|
||||
echo
|
||||
echo 'Please, make sure you are on a XCP-ng/XenServer host.'
|
||||
echo 'Please, make sure you are on a XenServer host.'
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
@@ -18,8 +18,8 @@ fi
|
||||
# Basic check: are we on a XS host?
|
||||
if grep -Fxq "XenServer" /etc/issue
|
||||
then
|
||||
printf "\nSorry, it seems you are not on a XCP-ng/XenServer host.\n\n"
|
||||
printf "\n\033[1mThis script is meant to be deployed on XCP-ng or XenServer only.\033[0m\n\n"
|
||||
printf "\nSorry, it seems you are not on a XenServer (XCP-ng) host.\n\n"
|
||||
printf "\n\033[1mThis script is meant to be deployed on XenServer (or XCP-ng) only.\033[0m\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -36,7 +36,7 @@ then
|
||||
read -p "dns? [8.8.8.8] " dns
|
||||
dns=${dns:-8.8.8.8}
|
||||
else
|
||||
printf "\nYour XOCE installation will be started using DHCP\n\n"
|
||||
printf "\nYour XOCE will be started using DHCP\n\n"
|
||||
fi
|
||||
|
||||
# Downloading and importing the VM
|
||||
@@ -56,7 +56,7 @@ fi
|
||||
import=$?
|
||||
if [ $import -ne 0 ]
|
||||
then
|
||||
printf "\n\nAuto deploy failed. Please contact us on https://github.com/Jarli01/xenorchestra_installer/issues for assistance.\nError:\n\n %s\n\n" "$uuid"
|
||||
printf "\n\nAuto deploy failed. Please contact us on xen-orchestra.com live chat for assistance.\nError:\n\n %s\n\n" "$uuid"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -75,7 +75,7 @@ sleep 2
|
||||
|
||||
# Waiting for the VM IP from Xen tools for 60 secs
|
||||
|
||||
printf "Waiting for XOCE to be ready…\n"
|
||||
printf "Waiting for your XOCE to be ready…\n"
|
||||
url=$(xe vm-param-get uuid=$uuid param-name=networks param-key=0/ip 2> /dev/null)
|
||||
wait=0
|
||||
limit=60
|
||||
@@ -95,7 +95,7 @@ done
|
||||
|
||||
if [ "$ip" != 'dhcp' ]
|
||||
then
|
||||
printf "\n\033[1mYour XOCE is ready at https://%s/\033[0m\n" "$ip"
|
||||
printf "\n\033[1mYour XOCE is ready on https://%s/\033[0m\n" "$ip"
|
||||
# clean the xenstore data
|
||||
xe vm-param-remove param-name=xenstore-data param-key=vm-data/dns param-key=vm-data/ip param-key=vm-data/netmask param-key=vm-data/gateway uuid=$uuid
|
||||
|
||||
@@ -105,7 +105,7 @@ elif [ -z "$url" ]
|
||||
then
|
||||
printf "\n\033[1mYour XOCE booted but we couldn't fetch its IP address\033[0m\n"
|
||||
else
|
||||
printf "\n\033[1mYour XOCE is ready at https://%s/\033[0m\n" "$url"
|
||||
printf "\n\033[1mYour XOCE is ready on https://%s/\033[0m\n" "$url"
|
||||
fi
|
||||
printf "\nDefault UI credentials: admin@admin.net/admin\nDefault console credentials: xoce/xoce\n"
|
||||
printf "\nVM UUID: %s\n\n" "$uuid"
|
||||
Reference in New Issue
Block a user