Add swap file creation when installing packages
This commit is contained in:
parent
f281277f6b
commit
c04b1c3324
@ -7,6 +7,7 @@ DS_COMMON_NAME="onlyoffice";
|
||||
product="docspace"
|
||||
GIT_BRANCH="master"
|
||||
INSTALLATION_TYPE="ENTERPRISE"
|
||||
MAKESWAP="true"
|
||||
RES_APP_INSTALLED="is already installed";
|
||||
RES_APP_CHECK_PORTS="uses ports"
|
||||
RES_CHECK_PORTS="please, make sure that the ports are free.";
|
||||
@ -72,6 +73,13 @@ while [ "$1" != "" ]; do
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ms | --makeswap )
|
||||
if [ "$2" != "" ]; then
|
||||
MAKESWAP=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
echo " Usage $0 [PARAMETER] [[PARAMETER], ...]"
|
||||
@ -83,6 +91,7 @@ while [ "$1" != "" ]; do
|
||||
echo " -js, --jwtsecret defines the secret key to validate the JWT in the request"
|
||||
echo " -ls, --local_scripts use 'true' to run local scripts (true|false)"
|
||||
echo " -skiphc, --skiphardwarecheck use to skip hardware check (true|false)"
|
||||
echo " -ms, --makeswap make swap file (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
echo
|
||||
exit 0
|
||||
|
@ -85,6 +85,10 @@ elif [ "$UPDATE" = "true" ] && [ "$PRODUCT_INSTALLED" = "true" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MAKESWAP" == "true" ]; then
|
||||
make_swap
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "$RES_INSTALL_SUCCESS"
|
||||
echo "$RES_QUESTIONS"
|
||||
|
@ -2,6 +2,24 @@
|
||||
|
||||
set -e
|
||||
|
||||
make_swap () {
|
||||
DISK_REQUIREMENTS=6144; #6Gb free space
|
||||
MEMORY_REQUIREMENTS=11000; #RAM ~12Gb
|
||||
SWAPFILE="/${PRODUCT}_swapfile";
|
||||
|
||||
AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
EXIST=$(swapon -s | awk '{ print $1 }' | { grep -x ${SWAPFILE} || true; });
|
||||
|
||||
if [[ -z $EXIST ]] && [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ] && [ ${AVAILABLE_DISK_SPACE} -gt ${DISK_REQUIREMENTS} ]; then
|
||||
fallocate -l 6G ${SWAPFILE}
|
||||
chmod 600 ${SWAPFILE}
|
||||
mkswap ${SWAPFILE}
|
||||
swapon ${SWAPFILE}
|
||||
echo "$SWAPFILE none swap sw 0 0" >> /etc/fstab
|
||||
fi
|
||||
}
|
||||
|
||||
command_exists () {
|
||||
type "$1" &> /dev/null;
|
||||
}
|
||||
|
@ -43,6 +43,9 @@ CONTAINER_NAME="${PACKAGE_SYSNAME}-api"
|
||||
|
||||
NETWORK_NAME=${PACKAGE_SYSNAME}
|
||||
|
||||
SWAPFILE="/${PRODUCT}_swapfile";
|
||||
MAKESWAP="true";
|
||||
|
||||
DISK_REQUIREMENTS=40960;
|
||||
MEMORY_REQUIREMENTS=5500;
|
||||
CORE_REQUIREMENTS=2;
|
||||
@ -310,6 +313,13 @@ while [ "$1" != "" ]; do
|
||||
fi
|
||||
;;
|
||||
|
||||
-ms | --makeswap )
|
||||
if [ "$2" != "" ]; then
|
||||
MAKESWAP=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
echo " Usage: bash $HELP_TARGET [PARAMETER] [[PARAMETER], ...]"
|
||||
echo
|
||||
@ -341,6 +351,7 @@ while [ "$1" != "" ]; do
|
||||
echo " -mysqlp, --mysqlpassword $PRODUCT database password"
|
||||
echo " -mysqlh, --mysqlhost mysql server host"
|
||||
echo " -dbm, --databasemigration database migration (true|false)"
|
||||
echo " -ms, --makeswap make swap file (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
echo
|
||||
echo " Install all the components without document server:"
|
||||
@ -1048,6 +1059,30 @@ install_product () {
|
||||
docker-compose -f $BASE_DIR/healthchecks.yml up -d
|
||||
}
|
||||
|
||||
make_swap () {
|
||||
DISK_REQUIREMENTS=6144; #6Gb free space
|
||||
MEMORY_REQUIREMENTS=11000; #RAM ~12Gb
|
||||
|
||||
AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
EXIST=$(swapon -s | awk '{ print $1 }' | { grep -x ${SWAPFILE} || true; });
|
||||
|
||||
if [[ -z $EXIST ]] && [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ] && [ ${AVAILABLE_DISK_SPACE} -gt ${DISK_REQUIREMENTS} ]; then
|
||||
|
||||
if [ "${DIST}" == "Ubuntu" ] || [ "${DIST}" == "Debian" ]; then
|
||||
fallocate -l 6G ${SWAPFILE}
|
||||
else
|
||||
dd if=/dev/zero of=${SWAPFILE} count=6144 bs=1MiB
|
||||
fi
|
||||
|
||||
chmod 600 ${SWAPFILE}
|
||||
mkswap ${SWAPFILE}
|
||||
swapon ${SWAPFILE}
|
||||
echo "$SWAPFILE none swap sw 0 0" >> /etc/fstab
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
start_installation () {
|
||||
root_checking
|
||||
|
||||
@ -1065,6 +1100,10 @@ start_installation () {
|
||||
check_hardware
|
||||
fi
|
||||
|
||||
if [ "$MAKESWAP" == "true" ]; then
|
||||
make_swap
|
||||
fi
|
||||
|
||||
if command_exists docker ; then
|
||||
check_docker_version
|
||||
service docker start
|
||||
|
@ -81,6 +81,13 @@ while [ "$1" != "" ]; do
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ms | --makeswap )
|
||||
if [ "$2" != "" ]; then
|
||||
MAKESWAP=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
echo " Usage $0 [PARAMETER] [[PARAMETER], ...]"
|
||||
@ -92,6 +99,7 @@ while [ "$1" != "" ]; do
|
||||
echo " -js, --jwtsecret defines the secret key to validate the JWT in the request"
|
||||
echo " -ls, --local_scripts use 'true' to run local scripts (true|false)"
|
||||
echo " -skiphc, --skiphardwarecheck use to skip hardware check (true|false)"
|
||||
echo " -ms, --makeswap make swap file (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
echo
|
||||
exit 0
|
||||
|
@ -156,7 +156,7 @@ if [ "$PRODUCT_INSTALLED" = "false" ]; then
|
||||
-mysqlu ${MYSQL_SERVER_USER} \
|
||||
-mysqlp ${MYSQL_ROOT_PASS}
|
||||
elif [[ $PRODUCT_CHECK_UPDATE -eq $UPDATE_AVAILABLE_CODE || $RECONFIGURE_PRODUCT = "true" ]]; then
|
||||
ENVIRONMENT=$(grep -oP 'ENVIRONMENT=\K.*' /lib/systemd/system/${product}-api.service)
|
||||
ENVIRONMENT=$(grep -oP 'ENVIRONMENT=\K.*' /usr/lib/systemd/system/${product}-api.service)
|
||||
CONNECTION_STRING=$(json -f /etc/${package_sysname}/${product}/appsettings.$ENVIRONMENT.json ConnectionStrings.default.connectionString)
|
||||
${package_manager} -y update ${product}
|
||||
${product}-configuration \
|
||||
@ -167,6 +167,10 @@ elif [[ $PRODUCT_CHECK_UPDATE -eq $UPDATE_AVAILABLE_CODE || $RECONFIGURE_PRODUCT
|
||||
-mysqlp $(grep -oP 'Password=\K[^;]*' <<< "$CONNECTION_STRING")
|
||||
fi
|
||||
|
||||
if [ "$MAKESWAP" == "true" ]; then
|
||||
make_swap
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "$RES_INSTALL_SUCCESS"
|
||||
echo "$RES_QUESTIONS"
|
||||
|
@ -2,6 +2,24 @@
|
||||
|
||||
set -e
|
||||
|
||||
function make_swap () {
|
||||
local DISK_REQUIREMENTS=6144; #6Gb free space
|
||||
local MEMORY_REQUIREMENTS=11000; #RAM ~12Gb
|
||||
SWAPFILE="/${PRODUCT}_swapfile";
|
||||
|
||||
local AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
local TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
local EXIST=$(swapon -s | awk '{ print $1 }' | { grep -x ${SWAPFILE} || true; });
|
||||
|
||||
if [[ -z $EXIST ]] && [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ] && [ ${AVAILABLE_DISK_SPACE} -gt ${DISK_REQUIREMENTS} ]; then
|
||||
dd if=/dev/zero of=${SWAPFILE} count=6144 bs=1MiB
|
||||
chmod 600 ${SWAPFILE}
|
||||
mkswap ${SWAPFILE}
|
||||
swapon ${SWAPFILE}
|
||||
echo "$SWAPFILE none swap sw 0 0" >> /etc/fstab
|
||||
fi
|
||||
}
|
||||
|
||||
check_hardware () {
|
||||
DISK_REQUIREMENTS=40960;
|
||||
MEMORY_REQUIREMENTS=5500;
|
||||
|
@ -239,7 +239,7 @@ install_json() {
|
||||
restart_services() {
|
||||
chown -R ${PACKAGE_SYSNAME}:${PACKAGE_SYSNAME} $APP_DIR $PRODUCT_DIR $LOG_DIR /var/www/$PACKAGE_SYSNAME/Data
|
||||
|
||||
sed "s_\(ENVIRONMENT=\).*_\1${ENVIRONMENT}_i" -i /lib/systemd/system/${PRODUCT}*.service >/dev/null 2>&1
|
||||
sed "s_\(ENVIRONMENT=\).*_\1${ENVIRONMENT}_i" -i /usr/lib/systemd/system/${PRODUCT}*.service >/dev/null 2>&1
|
||||
systemctl daemon-reload
|
||||
|
||||
echo -n "Updating database... "
|
||||
|
Loading…
Reference in New Issue
Block a user