mirror of
https://github.com/retspen/webvirtcloud
synced 2025-07-31 12:41:08 +00:00
update installation scripts
This commit is contained in:
parent
b909a81f51
commit
9324b9c36d
2 changed files with 68 additions and 23 deletions
|
@ -32,7 +32,7 @@ WebVirtCloud is a virtualization web interface for admins and users. It can dele
|
||||||
|
|
||||||
## Quick Install with Installer (Beta)
|
## Quick Install with Installer (Beta)
|
||||||
|
|
||||||
Install an OS and run specified commands. Installer supported OSes: Ubuntu 18.04/20.04, Debian 10/11, Centos/OEL/RHEL 8.
|
Install an OS and run specified commands. Installer supported OSes: Ubuntu 20.04/22.04, Debian 10/11, Rocky/Alma/OEL/RHEL 10.
|
||||||
It can be installed on a virtual machine, physical host or on a KVM host.
|
It can be installed on a virtual machine, physical host or on a KVM host.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -94,7 +94,7 @@ Done!!
|
||||||
|
|
||||||
Go to http://serverip and you should see the login screen.
|
Go to http://serverip and you should see the login screen.
|
||||||
|
|
||||||
### Install WebVirtCloud panel (CentOS8/OEL8)
|
### Install WebVirtCloud panel (RHEL Based OS 8/9/10)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo yum -y install epel-release
|
sudo yum -y install epel-release
|
||||||
|
@ -123,7 +123,7 @@ python3 manage.py migrate
|
||||||
python3 manage.py collectstatic --noinput
|
python3 manage.py collectstatic --noinput
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Configure the supervisor for CentOS
|
#### Configure the supervisor for RHEL Based OS
|
||||||
|
|
||||||
Add the following after the [include] line (after **files = ...** actually):
|
Add the following after the [include] line (after **files = ...** actually):
|
||||||
```bash
|
```bash
|
||||||
|
|
|
@ -181,6 +181,7 @@ configure_nginx () {
|
||||||
configure_supervisor () {
|
configure_supervisor () {
|
||||||
# Copy template supervisor service for gunicorn and novnc
|
# Copy template supervisor service for gunicorn and novnc
|
||||||
echo " * Copying supervisor configuration"
|
echo " * Copying supervisor configuration"
|
||||||
|
mkdir -p "$supervisor_conf_path" > /dev/null 2>&1
|
||||||
cp "$APP_PATH"/conf/supervisor/webvirtcloud.conf "$supervisor_conf_path"/"$supervisor_file_name"
|
cp "$APP_PATH"/conf/supervisor/webvirtcloud.conf "$supervisor_conf_path"/"$supervisor_file_name"
|
||||||
nginx_group_escape="$(echo -n "$nginx_group"|sed -e 's/[](){}<>=:\!\?\+\|\/\&$*.^[]/\\&/g')"
|
nginx_group_escape="$(echo -n "$nginx_group"|sed -e 's/[](){}<>=:\!\?\+\|\/\&$*.^[]/\\&/g')"
|
||||||
sed -i "s|^\\(user=\\).*|\\1$nginx_group_escape|" "$supervisor_conf_path/$supervisor_file_name"
|
sed -i "s|^\\(user=\\).*|\\1$nginx_group_escape|" "$supervisor_conf_path/$supervisor_file_name"
|
||||||
|
@ -208,8 +209,40 @@ run_as_app_user () {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_python () {
|
||||||
|
# check if python3 is installed.
|
||||||
|
if ! hash "$PYTHON" 2>/dev/null; then
|
||||||
|
echo "Python3 is not installed. Please install Python3 and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if python3 version is grater than 3.10 amd set it as default
|
||||||
|
if ! "$PYTHON" -c 'import sys; assert sys.version_info >= (3, 10)' >/dev/null 2>&1; then
|
||||||
|
echo "Your Python version is less than 3.10. This script requires Python 3.10 or greater."
|
||||||
|
echo "Please install Python 3.10 or greater and set it as the default version."
|
||||||
|
echo "Use update-alternatives command to set default python version to latest."
|
||||||
|
echo "For example: sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1"
|
||||||
|
echo "Then run this script again."
|
||||||
|
echo "Do not forget to install pip3 and python3-devel for python3.10 or later."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if pip3 is installed
|
||||||
|
if ! hash pip3 2>/dev/null; then
|
||||||
|
echo "pip3 is not installed. Please install pip3 and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
activate_python_environment () {
|
activate_python_environment () {
|
||||||
cd "$APP_PATH" || exit
|
cd "$APP_PATH" || exit
|
||||||
|
# Check if virtualenv is installed
|
||||||
|
if ! "$PYTHON" -c 'import virtualenv' >/dev/null 2>&1; then
|
||||||
|
echo "Virtualenv is not installed. Please install virtualenv and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Create a virtual environment
|
||||||
|
echo "* Creating virtual environment in $APP_PATH/venv"
|
||||||
virtualenv -p "$PYTHON" venv
|
virtualenv -p "$PYTHON" venv
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
|
@ -254,6 +287,9 @@ install_webvirtcloud () {
|
||||||
done
|
done
|
||||||
sed -i "s|^\\(CSRF_TRUSTED_ORIGINS = \\).*|\\1\[ \'http://$fqdn\', $host_ip ]|" /srv/webvirtcloud/webvirtcloud/settings.py
|
sed -i "s|^\\(CSRF_TRUSTED_ORIGINS = \\).*|\\1\[ \'http://$fqdn\', $host_ip ]|" /srv/webvirtcloud/webvirtcloud/settings.py
|
||||||
|
|
||||||
|
echo "* Checking up Python3 version."
|
||||||
|
check_python
|
||||||
|
|
||||||
echo "* Activate virtual environment."
|
echo "* Activate virtual environment."
|
||||||
activate_python_environment
|
activate_python_environment
|
||||||
|
|
||||||
|
@ -308,19 +344,19 @@ set_hosts () {
|
||||||
}
|
}
|
||||||
|
|
||||||
restart_supervisor () {
|
restart_supervisor () {
|
||||||
echo "* Setting Supervisor to start on boot and restart."
|
echo "* Setting Supervisor to start on boot and restart."
|
||||||
log "systemctl enable $supervisor_service"
|
log "systemctl enable $supervisor_service"
|
||||||
#systemctl enable $supervisor_service
|
#systemctl enable $supervisor_service
|
||||||
log "systemctl restart $supervisor_service"
|
log "systemctl restart $supervisor_service"
|
||||||
#systemctl restart $supervisor_service
|
#systemctl restart $supervisor_service
|
||||||
}
|
}
|
||||||
|
|
||||||
restart_nginx () {
|
restart_nginx () {
|
||||||
echo "* Setting Nginx to start on boot and starting Nginx."
|
echo "* Setting Nginx to start on boot and starting Nginx."
|
||||||
log "systemctl enable nginx.service"
|
log "systemctl enable nginx.service"
|
||||||
#systemctl enable nginx.service
|
#systemctl enable nginx.service
|
||||||
log "systemctl restart nginx.service"
|
log "systemctl restart nginx.service"
|
||||||
#systemctl restart nginx.service
|
#systemctl restart nginx.service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -350,7 +386,7 @@ echo '
|
||||||
'
|
'
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " Welcome to Webvirtcloud Installer for RHEL&Alternatives, Fedora, Debian and Ubuntu!"
|
echo " Welcome to Webvirtcloud Installer for RHEL Based OSes, Debian and Ubuntu!"
|
||||||
echo ""
|
echo ""
|
||||||
shopt -s nocasematch
|
shopt -s nocasematch
|
||||||
case $distro in
|
case $distro in
|
||||||
|
@ -475,7 +511,7 @@ echo "========="
|
||||||
case $distro in
|
case $distro in
|
||||||
debian)
|
debian)
|
||||||
if [[ "$version" -ge 9 ]]; then
|
if [[ "$version" -ge 9 ]]; then
|
||||||
# Install for Debian 9.x / 10.x
|
# Install for Debian 9.x / 10.x / 12.x
|
||||||
tzone=\'$(cat /etc/timezone)\'
|
tzone=\'$(cat /etc/timezone)\'
|
||||||
|
|
||||||
echo -n "* Updating installed packages."
|
echo -n "* Updating installed packages."
|
||||||
|
@ -503,7 +539,7 @@ case $distro in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
ubuntu)
|
ubuntu)
|
||||||
if [ "$version" == "18.04" ] || [ "$version" == "20.04" ]; then
|
if [ "$version" == "18.04" ] || [ "$version" == "20.04" ] || [ "$version" == "22.04" ]; then
|
||||||
# Install for Ubuntu 18 / 20
|
# Install for Ubuntu 18 / 20
|
||||||
tzone=\'$(cat /etc/timezone)\'
|
tzone=\'$(cat /etc/timezone)\'
|
||||||
|
|
||||||
|
@ -532,12 +568,20 @@ case $distro in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
centos)
|
centos)
|
||||||
if [[ "$version" =~ ^8 ]] || [[ "$version" =~ ^9 ]]; then
|
if [[ "$version" =~ ^10 ]]; then
|
||||||
# Install for CentOS/Redhat 8
|
# Install for CentOS/Redhat 10
|
||||||
tzone=\'$(timedatectl|grep "Time zone"| awk '{print $3}')\'
|
tzone=\'$(timedatectl|grep "Time zone"| awk '{print $3}')\'
|
||||||
|
|
||||||
echo "* Adding wget & epel-release repository."
|
if command -v "crb" >/dev/null 2>&1; then
|
||||||
log "yum -y install wget epel-release"
|
echo "* CRB Repo is found, enabling it."
|
||||||
|
log "crb enable > /dev/null 2>&1"
|
||||||
|
else
|
||||||
|
echo "* Enabling CRB repository."
|
||||||
|
log "dnf config-manager --set-enabled crb"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "* Adding wget & epel-release & supervisor repository."
|
||||||
|
log "yum -y install wget epel-release supervisor"
|
||||||
|
|
||||||
echo "* Installing OS requirements."
|
echo "* Installing OS requirements."
|
||||||
PACKAGES="git python3-virtualenv python3-devel libvirt-devel glibc gcc nginx python3-lxml python3-libguestfs iproute-tc cyrus-sasl-md5 openldap-devel"
|
PACKAGES="git python3-virtualenv python3-devel libvirt-devel glibc gcc nginx python3-lxml python3-libguestfs iproute-tc cyrus-sasl-md5 openldap-devel"
|
||||||
|
@ -545,13 +589,15 @@ case $distro in
|
||||||
|
|
||||||
set_hosts
|
set_hosts
|
||||||
|
|
||||||
|
echo "* Configuring virtualenv."
|
||||||
|
log "pip3 install virtualenv"
|
||||||
install_webvirtcloud
|
install_webvirtcloud
|
||||||
|
|
||||||
echo "* Configuring Nginx."
|
echo "* Configuring Nginx."
|
||||||
configure_nginx
|
configure_nginx
|
||||||
|
|
||||||
echo "* Configuring Supervisor."
|
echo "* Configuring Supervisor."
|
||||||
log "pip install supervisor "
|
log "pip3 install supervisor "
|
||||||
configure_supervisor
|
configure_supervisor
|
||||||
|
|
||||||
set_firewall
|
set_firewall
|
||||||
|
@ -561,9 +607,8 @@ case $distro in
|
||||||
restart_supervisor
|
restart_supervisor
|
||||||
restart_nginx
|
restart_nginx
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "Unsupported CentOS version. Version found: $version"
|
echo "Unsupported RHEL Based OS($distro) version. Version found: $version"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue