153 lines
4.5 KiB
Bash
Executable File
153 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
## Installation and maintenance for LibreNMS
|
|
## Using buster repositories for php 7.3 installation
|
|
|
|
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"
|
|
|
|
|
|
function step_1 {
|
|
echo -e "Updating apt\n"
|
|
#apt update
|
|
}
|
|
|
|
function step_2 {
|
|
echo -e "Installing: $librePackages\n"
|
|
apt install $librePackages
|
|
saveReturn $?
|
|
endReturn
|
|
}
|
|
|
|
function step_3 {
|
|
echo -e "Installing -t buster PHP related packages\n$librePhpDeps\n"
|
|
apt -t buster install $librePhpDeps
|
|
saveReturn $?
|
|
endReturn
|
|
}
|
|
|
|
function step_4 {
|
|
echo -e "Adding librenms user"
|
|
useradd librenms -d /opt/librenms -M -r
|
|
saveReturn $?
|
|
usermod -a -G librenms www-data
|
|
saveReturn $?
|
|
endReturn
|
|
}
|
|
|
|
function step_5 {
|
|
echo -e "Installing librenms using composer"
|
|
cd /opt
|
|
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
|
|
saveReturn $?
|
|
endReturn
|
|
}
|
|
|
|
function step_10 {
|
|
local mysqlDatabase
|
|
local mysqlUser
|
|
local mysqlPass
|
|
|
|
echo "Setup mysql database"
|
|
echo "Existing mysql databases:"
|
|
mysql -u root -e 'SHOW DATABASES;'
|
|
|
|
echo -en "Enter database name: "
|
|
read mysqlDatabase
|
|
endCheckEmpty mysqlDatabase "database name"
|
|
mysql -u root -e 'CREATE DATABASE '$mysqlDatabase' CHARACTER SET utf8 COLLATE utf8_unicode_ci;'
|
|
saveReturn $?
|
|
endReturn
|
|
|
|
echo "Existing mysql user:"
|
|
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"
|
|
mysql -u root -e 'CREATE USER '"'"$mysqlUser"'"'@'"'"'localhost'"'"' IDENTIFIED BY '"'"$mysqlPass"'"';'
|
|
saveReturn $?
|
|
endReturn
|
|
|
|
mysql -u root -e 'GRANT ALL PRIVILEGES ON '$mysqlDatabase'.* TO '"'"$mysqlUser"'"'@'"'"'localhost'"'"';'
|
|
saveReturn $?
|
|
endReturn
|
|
|
|
mysql -u root -e 'FLUSH PRIVILEGES;'
|
|
}
|
|
|
|
function step_11 {
|
|
echo "MariaDB configuration"
|
|
echo "Edit or create /etc/mysql/mariadb.conf.d/90-myconfig.cnf and add:"
|
|
echo
|
|
echo "------------------------"
|
|
echo "[mysqld]"
|
|
echo "innodb_file_per_table=1"
|
|
echo "lower_case_table_names=0"
|
|
echo "------------------------"
|
|
echo
|
|
echo "Restart mysql afterwards:"
|
|
echo "service mysql restart"
|
|
}
|
|
|
|
function step_12 {
|
|
echo "PHP fpm/cli configuration"
|
|
echo "Ensure date.timezone is set in php.ini to your preferred time zone. See http://php.net/manual/en/timezones.php for a list of supported timezones. Valid examples are: \"America/New_York\", \"Europe/Berlin\", \"Etc/UTC\"."
|
|
echo
|
|
echo "vi /etc/php/7.3/fpm/conf.d/90-custom_pi.ini"
|
|
echo "vi /etc/php/7.3/cli/php.ini"
|
|
echo
|
|
echo "-------------------------------------------"
|
|
echo "date.timezone = Europe/Berlin"
|
|
echo "-------------------------------------------"
|
|
echo
|
|
echo "Restart php-fpm afterwards:"
|
|
echo "service php7.3-fpm restart"
|
|
}
|
|
|
|
function step_40 {
|
|
echo "Switch Librenms installation to monthly stable"
|
|
echo
|
|
echo "Add following to /opt/librenms/config.php"
|
|
echo
|
|
echo "--------------------------------------"
|
|
echo "\$config['update_channel'] = 'release';"
|
|
echo "--------------------------------------"
|
|
echo
|
|
echo "Execute following command afterwards:"
|
|
echo "cd /opt/librenms && git fetch --tags && git checkout \$(git describe --tags \$(git rev-list --tags --max-count=1))"
|
|
}
|
|
|
|
function step_42 {
|
|
echo "Fix librenms permission"
|
|
chown -R librenms:librenms /opt/librenms
|
|
|
|
setfacl -d -m g::rwx /opt/librenms/bootstrap/cache /opt/librenms/storage /opt/librenms/logs /opt/librenms/rrd
|
|
|
|
chmod -R ug=rwX /opt/librenms/bootstrap/cache /opt/librenms/storage /opt/librenms/logs /opt/librenms/rrd
|
|
}
|
|
|
|
help() {
|
|
echo " Step Documentation"
|
|
echo " 1: Updating apt"
|
|
echo -e " 2: Install packages:\n\t$librePackages"
|
|
echo -e " 3: Installing -t buster PHP related packages:\n\t$librePhpDeps"
|
|
echo " 4: Adding librenms user"
|
|
echo " 5: Installing librenms using composer"
|
|
echo
|
|
echo " 10: Setup mysql database"
|
|
echo " 11: MariaDB configuration"
|
|
echo " 12: PHP fpm/cli configuration"
|
|
echo
|
|
echo " 40: Switch Librenms installation to monthly stable"
|
|
echo " 42: Fix librenms permission"
|
|
}
|
|
|
|
#
|
|
## Path to sequencer
|
|
. ../sequencer/sequencer.sh
|