xenorchestra_installer/xo_install.sh

102 lines
2.7 KiB
Bash
Raw Normal View History

2016-01-13 19:23:15 +00:00
#!/bin/bash
# Check if we were effectively run as root
2018-04-27 01:02:51 +00:00
[ $EUID = 0 ] || { echo "This script needs to be run as root!"; exit 1; }
# Check for required memory
2018-06-12 17:50:14 +00:00
totalk=$(awk '/^MemTotal:/{print $2}' /proc/meminfo)
if [ "$totalk" -lt "3000000" ]; then echo "XOCE Requires at least 3GB Memory!"; exit 1; fi
2018-06-12 17:50:14 +00:00
2018-08-02 12:51:30 +00:00
distro=$(/usr/bin/lsb_release -is)
2018-08-02 12:52:53 +00:00
if [ "$distro" = "Ubuntu" ]; then /usr/bin/add-apt-repository multiverse; fi
2018-08-02 12:51:30 +00:00
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 https://dl.yarnpkg.com/debian/ stable main"
yarn_gpg="https://dl.yarnpkg.com/debian/pubkey.gpg"
2017-08-03 00:10:34 +00:00
n_location="/usr/local/bin/n"
xo_server_dir="/opt/xen-orchestra"
systemd_service_dir="/lib/systemd/system"
xo_service="xo-server.service"
2017-08-03 00:10:34 +00:00
# Ensures that Yarn dependencies are installed
/usr/bin/apt-get update
2020-05-06 19:55:49 +00:00
/usr/bin/apt-get --yes install git curl apt-transport-https gnupg
#Install yarn
2016-01-13 19:23:15 +00:00
cd /opt
2017-08-04 13:44:09 +00:00
/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
2018-08-17 13:23:12 +00:00
# Install n
/usr/bin/curl -o $n_location $n_repo
/bin/chmod +x $n_location
# Install node via n
n lts
2018-08-17 13:23:12 +00:00
# Symlink node directories
ln -s /usr/bin/node /usr/local/bin/node
2018-08-17 13:23:12 +00:00
# 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
2018-02-07 15:36:56 +00:00
/usr/bin/git clone -b $xo_branch $xo_server
2018-02-01 15:44:58 +00:00
cd $xo_server_dir
/usr/bin/yarn
/usr/bin/yarn build
cd packages/xo-server
cp sample.config.toml .xo-server.toml
2016-03-08 20:38:21 +00:00
2020-04-05 15:07:51 +00:00
dest=/usr/local/lib/node_modules/
2018-08-17 12:54:43 +00:00
#Create node_modules directory if doesn't exist
2020-04-05 15:07:51 +00:00
mkdir -p $dest
# Plugins to ignore
ignoreplugins=("xo-server-test")
2018-08-17 13:23:12 +00:00
# Symlink all plugins
for source in $(ls -d /opt/xen-orchestra/packages/xo-server-*); do
2020-04-05 15:07:51 +00:00
plugin=$(basename $source)
if [[ "${ignoreplugins[@]}" =~ $plugin ]]; then
echo "Ignoring $plugin plugin"
else
ln -s "$source" "$dest"
fi
done
2017-08-03 14:55:55 +00:00
if [[ ! -e $systemd_service_dir/$xo_service ]] ; then
/bin/cat << EOF >> $systemd_service_dir/$xo_service
2018-08-17 13:23:12 +00:00
# Systemd service for XO-Server.
2017-08-03 02:05:56 +00:00
[Unit]
Description= XO Server
After=network-online.target
2016-03-08 20:38:21 +00:00
2017-08-03 02:05:56 +00:00
[Service]
WorkingDirectory=/opt/xen-orchestra/packages/xo-server/
2017-08-03 02:05:56 +00:00
ExecStart=/usr/local/bin/node ./bin/xo-server
Restart=always
SyslogIdentifier=xo-server
2016-03-08 20:38:21 +00:00
2017-08-03 02:05:56 +00:00
[Install]
WantedBy=multi-user.target
2016-03-08 20:38:21 +00:00
EOF
fi
2016-03-08 20:38:21 +00:00
/bin/systemctl daemon-reload
/bin/systemctl enable $xo_service
/bin/systemctl start $xo_service
2018-04-11 14:15:47 +00:00
2018-04-11 14:35:19 +00:00
echo ""
echo ""
2018-04-11 14:54:57 +00:00
echo "Installation complete, open a browser to:" && hostname -I && echo "" && echo "Default Login:"admin@admin.net" Password:"admin"" && echo "" && echo "Don't forget to change your password!"
2018-04-11 14:51:23 +00:00