Adapt installation process to latest version
WIP steps for complete backup (montly|daily)
This commit is contained in:
5
seqs/librenms.cfg.example
Normal file
5
seqs/librenms.cfg.example
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
LNMS_DIR="/opt/librenms"
|
||||||
|
LNMS_BU_DIR="/root/backup/librenms"
|
||||||
|
LNMS_DB_NAME="librenms_db"
|
125
seqs/librenms.sh
125
seqs/librenms.sh
@@ -4,10 +4,35 @@
|
|||||||
## Installation and maintenance for LibreNMS
|
## Installation and maintenance for LibreNMS
|
||||||
## Using buster repositories for php 7.3 installation
|
## Using buster repositories for php 7.3 installation
|
||||||
|
|
||||||
toolName="LibreNMS"
|
toolName="librenms"
|
||||||
librePhpDeps="composer php-cli-prompt php-composer-ca-bundle php-composer-semver php-composer-spdx-licenses php-json-schema php-psr-log php-symfony-console php-symfony-filesystem php-symfony-finder php-symfony-polyfill-mbstring php-symfony-process"
|
phpVersion=
|
||||||
librePackages="fping git graphviz imagemagick mtr-tiny nmap python-memcache python-mysqldb rrdtool snmp snmpd whoisi nagios-plugins"
|
|
||||||
|
|
||||||
|
libreDeps="acl curl composer fping git graphviz imagemagick mtr-tiny nmap rrdtool snmp snmpd whois python3-dotenv python3-pymysql python3-redis python3-setuptools"
|
||||||
|
|
||||||
|
librePhpDeps='php${phpVersion}-cli php${phpVersion}-curl php${phpVersion}-fpm php${phpVersion}-gd php${phpVersion}-json php${phpVersion}-mbstring php${phpVersion}-mysql php${phpVersion}-snmp php${phpVersion}-xml php${phpVersion}-zip'
|
||||||
|
|
||||||
|
#librePhpDeps="composer php-cli-prompt php-composer-ca-bundle php-composer-semver php-composer-spdx-licenses php-json-schema php-psr-log php-symfony-console php-symfony-filesystem php-symfony-finder php-symfony-polyfill-mbstring php-symfony-process"
|
||||||
|
#librePackages="fping git graphviz imagemagick mtr-tiny nmap python-memcache python-mysqldb rrdtool snmp snmpd whoisi nagios-plugins"
|
||||||
|
|
||||||
|
# Get script working directory
|
||||||
|
# (when called from a different directory)
|
||||||
|
WDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >>/dev/null 2>&1 && pwd )"
|
||||||
|
CONFIG=0
|
||||||
|
SCRIPT_NAME=$(basename -- "$0")
|
||||||
|
SCRIPT_NAME=${SCRIPT_NAME%%.*}
|
||||||
|
CONFIG_FILE_NAME="${SCRIPT_NAME}.cfg"
|
||||||
|
CONFIG_FILE_TEMPLATE="$WDIR/${CONFIG_FILE_NAME}.example"
|
||||||
|
|
||||||
|
step_config() {
|
||||||
|
initSeqConfig "$CONFIG_FILE_NAME" "$CONFIG_FILE_TEMPLATE"
|
||||||
|
if [ $? -eq 0 ] ; then
|
||||||
|
CONFIG=1
|
||||||
|
echo " Install: $LNMS_DIR"
|
||||||
|
echo " Backup: $LNMS_BU_DIR"
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
step_1_info() { echo "Updating apt"; }
|
step_1_info() { echo "Updating apt"; }
|
||||||
step_1_alias() { ALIAS="install"; }
|
step_1_alias() { ALIAS="install"; }
|
||||||
@@ -15,18 +40,24 @@ step_1() {
|
|||||||
exe apt update
|
exe apt update
|
||||||
}
|
}
|
||||||
|
|
||||||
step_2_info() { echo -e "Installing $toolname dependencies: $librePackages"; }
|
step_2_info() {
|
||||||
|
echo "Installing $toolname dependencies:"
|
||||||
|
echoinfo "$libreDeps"
|
||||||
|
}
|
||||||
step_2() {
|
step_2() {
|
||||||
exe apt install $librePackages
|
exe apt install $librePackages
|
||||||
saveReturn $?
|
endReturn -o $? "Failed to install $toolName dependencies"
|
||||||
endReturn
|
|
||||||
}
|
}
|
||||||
|
|
||||||
step_3_info() { echo -e "Installing -t buster PHP related packages:\n $librePhpDeps"; }
|
step_3_info() {
|
||||||
|
echo "Installing PHP related packages:"
|
||||||
|
fetchPhpVersion
|
||||||
|
echoinfo `eval echo "$librePhpDeps"`
|
||||||
|
}
|
||||||
step_3() {
|
step_3() {
|
||||||
exe apt -t buster install $librePhpDeps
|
fetchPhpVersion
|
||||||
saveReturn $?
|
exe apt install `eval echo "$librePhpDeps"`
|
||||||
endReturn
|
endReturn -o $? "Failed to install $toolName php dependencies"
|
||||||
}
|
}
|
||||||
|
|
||||||
step_4_info() { echo "Adding $toolName user (librenms:librenms)"; }
|
step_4_info() { echo "Adding $toolName user (librenms:librenms)"; }
|
||||||
@@ -35,51 +66,20 @@ step_4() {
|
|||||||
saveReturn $?
|
saveReturn $?
|
||||||
exe usermod -a -G librenms www-data
|
exe usermod -a -G librenms www-data
|
||||||
saveReturn $?
|
saveReturn $?
|
||||||
endReturn
|
endReturn "Failed to create $toolName user"
|
||||||
}
|
}
|
||||||
|
|
||||||
step_5_info() { echo "Installing $toolName using composer"; }
|
step_5_info() { echo "Installing $toolName using composer"; }
|
||||||
step_5() {
|
step_5() {
|
||||||
cd /opt
|
cd /opt
|
||||||
exe composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
|
exe composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
|
||||||
saveReturn $?
|
endReturn -o $? "Failed to install php dependencies"
|
||||||
endReturn
|
|
||||||
}
|
}
|
||||||
|
|
||||||
step_10_info() { echo "Create mysql database for $toolName"; }
|
step_10_info() { echo "Create mysql database for $toolName"; }
|
||||||
step_10() {
|
step_10() {
|
||||||
local mysqlDatabase
|
${WDIR}/mysql.sh -q createdb
|
||||||
local mysqlUser
|
endReturn -o $? "Failed to create mysql database $LNMS_DB_NAME"
|
||||||
local mysqlPass
|
|
||||||
|
|
||||||
echo "Existing mysql databases:"
|
|
||||||
exe mysql -u root -e 'SHOW DATABASES;'
|
|
||||||
|
|
||||||
echo -en "Enter database name: "
|
|
||||||
read mysqlDatabase
|
|
||||||
endCheckEmpty mysqlDatabase "database name"
|
|
||||||
exe mysql -u root -e 'CREATE DATABASE '$mysqlDatabase' CHARACTER SET utf8 COLLATE utf8_unicode_ci;'
|
|
||||||
saveReturn $?
|
|
||||||
endReturn
|
|
||||||
|
|
||||||
echo "Existing mysql user:"
|
|
||||||
exe mysql -u root -e 'SELECT User, Host FROM mysql.user;'
|
|
||||||
echo -en "Enter mysql user name: "
|
|
||||||
read mysqlUser
|
|
||||||
endCheckEmpty mysqlDatabase "user name"
|
|
||||||
|
|
||||||
echo -en "Enter mysql user password: "
|
|
||||||
read mysqlPass
|
|
||||||
endCheckEmpty mysqlPass "password"
|
|
||||||
exe mysql -u root -e 'CREATE USER '"'"$mysqlUser"'"'@'"'"'localhost'"'"' IDENTIFIED BY '"'"$mysqlPass"'"';'
|
|
||||||
saveReturn $?
|
|
||||||
endReturn
|
|
||||||
|
|
||||||
exe mysql -u root -e 'GRANT ALL PRIVILEGES ON '$mysqlDatabase'.* TO '"'"$mysqlUser"'"'@'"'"'localhost'"'"';'
|
|
||||||
saveReturn $?
|
|
||||||
endReturn
|
|
||||||
|
|
||||||
exe mysql -u root -e 'FLUSH PRIVILEGES;'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
step_11_info() { echo "MariaDB configuration"; }
|
step_11_info() { echo "MariaDB configuration"; }
|
||||||
@@ -113,16 +113,26 @@ step_12() {
|
|||||||
echo "service php7.3-fpm restart"
|
echo "service php7.3-fpm restart"
|
||||||
}
|
}
|
||||||
|
|
||||||
step_30_info() { echo "Backup installation directory"; }
|
step_30_info() { echo "Backup ${toolName} web direcotry"; }
|
||||||
step_30_alias() { ALIAS="backup"; }
|
step_30_alias() { ALIAS="backup"; }
|
||||||
step_30() {
|
step_30() {
|
||||||
echo "Backing up..."
|
[ $QUIET -ne 2 ] && echo " [I] Backup install directory ${LNMS_DIR}..."
|
||||||
|
exep "cd \"${LNMS_DIR}\"/.. && tar czf \"${LNMS_BU_DIR}/\`date +%Y%m%d\`_${toolName}_web.tar.gz\" \"$(basename "$LNMS_DIR")\""
|
||||||
}
|
}
|
||||||
|
|
||||||
step_31_info() { echo "Backup $toolName database"; }
|
step_31_info() { echo "Backup ${toolName} database [daily|monthly(default)]"; }
|
||||||
step_31_alias() { ALIAS="backupdb"; }
|
step_31_alias() { ALIAS="backupdb"; }
|
||||||
step_31() {
|
step_31() {
|
||||||
echo "Backing up database..."
|
case "$2" in
|
||||||
|
daily|Daily|DAILY)
|
||||||
|
[ $QUIET -ne 2 ] && echo " [I] Daily backup..."
|
||||||
|
exep "mysqldump --single-transaction -u root ${LNMS_DB_NAME} | bzip2 -c > \"${LNMS_BU_DIR}/${toolName}_daily.sql.bz2\""
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
[ $QUIET -ne 2 ] && echo " [I] Monthly backup..."
|
||||||
|
exep "mysqldump --single-transaction -u root ${LNMS_DB_NAME} | bzip2 -c > \"${LNMS_BU_DIR}/monthly/\`date +%Y%m%d\`_${toolName}.sql.bz2\""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
step_40_info() { echo "Switch $toolName installation to monthly stable"; }
|
step_40_info() { echo "Switch $toolName installation to monthly stable"; }
|
||||||
@@ -146,11 +156,14 @@ step_42() {
|
|||||||
exe chmod -R ug=rwX /opt/librenms/bootstrap/cache /opt/librenms/storage /opt/librenms/logs /opt/librenms/rrd
|
exe chmod -R ug=rwX /opt/librenms/bootstrap/cache /opt/librenms/storage /opt/librenms/logs /opt/librenms/rrd
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sequence Revision
|
fetchPhpVersion() {
|
||||||
VERSION_SEQREV=3
|
if [ ! -z $phpVersion ] ; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Workaround when called from different directory
|
phpVersion="$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')"
|
||||||
# Not needed when path to sequencer is absolut
|
}
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >>/dev/null 2>&1 && pwd )"
|
|
||||||
# Path to sequencer
|
# Sequence Revision
|
||||||
. ${DIR}/../sequencer/sequencer.sh
|
VERSION_SEQREV=12
|
||||||
|
. /usr/local/bin/sequencer.sh
|
||||||
|
Reference in New Issue
Block a user