2014-08-12 Koichiro Kikuchi <koichiro@rworks.jp>
* pandora_server_installer: Refactord implementation, added "fakeroot" installation support, small bug fixes and improvements: fixed processing arguments, replace "test -e" with "test -f" for portability (solaris' /bin/sh doesn't support "test -e"). * Makefile.PL: Install bin/tentacle_server if WITHOUT_TENTACLE=0 so that MakeMaker can fix perl path in the shebang line. * pandora_server.redhat.spec: Added missing dependency. * FreeBSD/pandora_server.conf -> FreeBSD/pandora_server.conf.new: Renamed * NetBSD/pandora_server.conf -> NetBSD/pandora_server.conf.new: Rename * FreeBSD/tentacle_server: Small bug fix and improvements. Fixed "tentacle_server_flags" and modified code to use proper variables and to get pid more strictly. * FreeBSD/pandora_server: Added support to start multiple pandora_server instances. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@10401 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
fb0ed522f2
commit
78d80911f5
|
@ -1,3 +1,25 @@
|
||||||
|
2014-08-12 Koichiro Kikuchi <koichiro@rworks.jp>
|
||||||
|
|
||||||
|
* pandora_server_installer: Refactord implementation, added
|
||||||
|
"fakeroot" installation support, small bug fixes and improvements:
|
||||||
|
fixed processing arguments, replace "test -e" with "test -f" for portability
|
||||||
|
(solaris' /bin/sh doesn't support "test -e").
|
||||||
|
|
||||||
|
* Makefile.PL: Install bin/tentacle_server if WITHOUT_TENTACLE=0 so that
|
||||||
|
MakeMaker can fix perl path in the shebang line.
|
||||||
|
|
||||||
|
* pandora_server.redhat.spec: Added missing dependency.
|
||||||
|
|
||||||
|
* FreeBSD/pandora_server.conf -> FreeBSD/pandora_server.conf.new: Renamed
|
||||||
|
* NetBSD/pandora_server.conf -> NetBSD/pandora_server.conf.new: Rename
|
||||||
|
|
||||||
|
* FreeBSD/tentacle_server: Small bug fix and improvements. Fixed
|
||||||
|
"tentacle_server_flags" and modified code to use proper variables and
|
||||||
|
to get pid more strictly.
|
||||||
|
|
||||||
|
* FreeBSD/pandora_server: Added support to start multiple pandora_server
|
||||||
|
instances.
|
||||||
|
|
||||||
2014-08-12 Junichi Satoh <junichi@rworks.jp>
|
2014-08-12 Junichi Satoh <junichi@rworks.jp>
|
||||||
|
|
||||||
* lib/PandoraFMS/Core.pm, lib/PandoraFMS/DataServer.pm: Fixed sql
|
* lib/PandoraFMS/Core.pm, lib/PandoraFMS/DataServer.pm: Fixed sql
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
# Pandora FMS Server Daemon launcher for FreeBSD
|
# Pandora FMS Server Daemon launcher for FreeBSD
|
||||||
# (c) 2010 Junichi Satoh <junichi@rworks.jp>
|
# (c) 2010 Junichi Satoh <junichi@rworks.jp>
|
||||||
|
# (c) 2014 Koichiro Kikuchi <koichiro@rworks.jp>
|
||||||
#
|
#
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
|
@ -10,27 +11,66 @@
|
||||||
# REQUIRE: LOGIN mysql
|
# REQUIRE: LOGIN mysql
|
||||||
# KEYWORD: shutdown
|
# KEYWORD: shutdown
|
||||||
|
|
||||||
# Add the following line to /etc/rc.conf to enable `pandora_server':
|
# Add the following lines to /etc/rc.conf to enable pandora_server:
|
||||||
#
|
# pandora_server_enable (bool): Set to "YES" to enable pandora_server (default: NO)
|
||||||
# pandora_server_enable="YES"
|
# pandora_server_profiles (str): Define your profiles here (default: "")
|
||||||
#
|
#
|
||||||
|
|
||||||
. "/etc/rc.subr"
|
. "/etc/rc.subr"
|
||||||
|
|
||||||
name="pandora_server"
|
|
||||||
rcvar=`set_rcvar`
|
|
||||||
|
|
||||||
# read configuration and set defaults
|
|
||||||
pandora_server_enable=${pandora_server_enable:-"NO"}
|
|
||||||
load_rc_config $name
|
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
|
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
|
||||||
|
|
||||||
pidfile=/var/run/$name.pid
|
name="pandora_server"
|
||||||
command=/usr/local/bin/${name}
|
rcvar=pandora_server_enable
|
||||||
command_args="-D -P ${pidfile} /usr/local/etc/pandora/pandora_server.conf"
|
|
||||||
required_files="/usr/local/etc/pandora/pandora_server.conf"
|
|
||||||
|
|
||||||
procname="/usr/local/bin/perl"
|
: ${pandora_server_enable:=NO}
|
||||||
|
: ${pandora_server_configfile:=/usr/local/etc/pandora/pandora_server.conf}
|
||||||
|
|
||||||
|
command=/usr/local/bin/${name}
|
||||||
|
command_args="-D"
|
||||||
|
command_interpreter=/usr/local/bin/perl
|
||||||
|
_pidprefix=/var/run/$name
|
||||||
|
pidfile=${_pidprefix}.pid
|
||||||
|
required_files="$pandora_server_configfile"
|
||||||
|
|
||||||
|
load_rc_config $name
|
||||||
|
|
||||||
|
if [ "$2" ]; then
|
||||||
|
profile="$2"
|
||||||
|
if [ "$pandora_server_profiles" ]; then
|
||||||
|
pidfile="${_pidprefix}.${profile}.pid"
|
||||||
|
eval pandora_server_configfile="\${pandora_server_${profile}_configfile:-}"
|
||||||
|
if [ -z "$pandora_server_configfile" ]; then
|
||||||
|
echo "You must define a configuration file (pandora_server_${profile}_configfile)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
required_files="$pandora_server_configfile"
|
||||||
|
eval pandora_server_enable="\${pandora_server_${profile}_enable:-$pandora_server_enable}"
|
||||||
|
eval pandora_server_flags="\${pandora_server_${profile}_flags:-$pandora_server_flags}"
|
||||||
|
eval pidfile="\${pandora_server_${profile}_pidfile:-$pidfile}"
|
||||||
|
pandora_server_flags="$pandora_server_flags -P $pidfile $pandora_server_configfile"
|
||||||
|
else
|
||||||
|
echo "$0: extra argument ignored"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "${pandora_server_profiles}" ] && [ "$1" ]; then
|
||||||
|
for profile in ${pandora_server_profiles}; do
|
||||||
|
eval _enable="\${pandora_server_${profile}_enable}"
|
||||||
|
case "${_enable:-${pandora_server_enable}}" in
|
||||||
|
[Yy][Ee][Ss]);;
|
||||||
|
*) continue;;
|
||||||
|
esac
|
||||||
|
echo "===> pandora_server profile: ${profile}"
|
||||||
|
/usr/local/etc/rc.d/pandora_server $1 ${profile}
|
||||||
|
retcode="$?"
|
||||||
|
if [ "0${retcode}" -ne 0 ]; then
|
||||||
|
failed="${profile} (${retcode}) ${failed:-}"
|
||||||
|
else
|
||||||
|
success="${profile} ${success:-}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
run_rc_command "$1"
|
run_rc_command "$1"
|
||||||
|
|
|
@ -22,24 +22,23 @@ rcvar=`set_rcvar`
|
||||||
|
|
||||||
# read configuration and set defaults
|
# read configuration and set defaults
|
||||||
tentacle_server_enable=${tentacle_server_enable:-"NO"}
|
tentacle_server_enable=${tentacle_server_enable:-"NO"}
|
||||||
tentacle_server_flags=${tentacle_server_flags:-"-a 0.0.0.0 -p 41121 -s /var/spool/pandora/data_in -i.*\.conf:conf\;.*\.md5:md5\;.*\.zip:collections -d"}
|
tentacle_server_flags=${tentacle_server_flags:-'-a 0.0.0.0 -p 41121 -s /var/spool/pandora/data_in -i.*\.conf:conf\;.*\.md5:md5\;.*\.zip:collections -d'}
|
||||||
tentacle_server_user=${tentacle_server_user:-"pandora"}
|
tentacle_server_user=${tentacle_server_user:-"pandora"}
|
||||||
load_rc_config $name
|
load_rc_config $name
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
|
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
|
||||||
|
|
||||||
command=/usr/local/bin/${name}
|
command=/usr/local/bin/${name}
|
||||||
|
command_interpreter=/usr/local/bin/perl
|
||||||
|
procname=$command
|
||||||
pidfile=/var/run/$name.pid
|
pidfile=/var/run/$name.pid
|
||||||
|
|
||||||
start_postcmd=start_postcmd
|
start_postcmd=start_postcmd
|
||||||
stop_postcmd=stop_postcmd
|
stop_postcmd=stop_postcmd
|
||||||
|
|
||||||
procname="/usr/bin/perl"
|
|
||||||
|
|
||||||
start_postcmd()
|
start_postcmd()
|
||||||
{
|
{
|
||||||
TENTACLE_PID=`pgrep -f -j none "$procname $command"`
|
pgrep -f -j none "^$command_interpreter $command" > $pidfile
|
||||||
echo $TENTACLE_PID > $pidfile
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_postcmd()
|
stop_postcmd()
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
use 5.000;
|
use 5.000;
|
||||||
use ExtUtils::MakeMaker;
|
use ExtUtils::MakeMaker;
|
||||||
|
|
||||||
|
my %ARGV = map { my @r = split /=/,$_; defined $r[1] or $r[1]=1; @r } @ARGV;
|
||||||
|
|
||||||
|
my @exe_files = qw(bin/pandora_server bin/pandora_exec);
|
||||||
|
|
||||||
|
$ARGV{WITHOUT_TENTACLE} or push @exe_files, 'bin/tentacle_server';
|
||||||
|
|
||||||
WriteMakefile(
|
WriteMakefile(
|
||||||
INSTALLSITELIB => '/usr/lib/perl5',
|
INSTALLSITELIB => '/usr/lib/perl5',
|
||||||
(($^O eq 'freebsd')
|
(($^O eq 'freebsd')
|
||||||
|
@ -28,9 +34,8 @@ WriteMakefile(
|
||||||
IO::Socket::INET6 => 0,
|
IO::Socket::INET6 => 0,
|
||||||
JSON => 0,
|
JSON => 0,
|
||||||
},
|
},
|
||||||
EXE_FILES => [ 'bin/pandora_server', 'bin/pandora_exec'],
|
EXE_FILES => [ @exe_files ],
|
||||||
PMLIBDIRS => [ 'lib' ],
|
PMLIBDIRS => [ 'lib' ],
|
||||||
'dist' => { 'TAR' => 'tar', 'TARFLAGS' => 'cvfz', 'SUFFIX'
|
'dist' => { 'TAR' => 'tar', 'TARFLAGS' => 'cvfz', 'SUFFIX' => '.gz', 'COMPRESS' => 'gzip'}
|
||||||
=> '.gz', 'COMPRESS' => 'gzip'}
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#
|
G#
|
||||||
# Pandora FMS Server
|
# Pandora FMS Server
|
||||||
#
|
#
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
|
@ -28,6 +28,7 @@ Requires: perl-XML-Simple perl-XML-Twig net-snmp-utils
|
||||||
Requires: perl-NetAddr-IP net-snmp net-tools
|
Requires: perl-NetAddr-IP net-snmp net-tools
|
||||||
Requires: perl-IO-Socket-INET6 perl-Socket6 perl-Net-Telnet
|
Requires: perl-IO-Socket-INET6 perl-Socket6 perl-Net-Telnet
|
||||||
Requires: nmap wmic sudo perl-JSON
|
Requires: nmap wmic sudo perl-JSON
|
||||||
|
Requires: perl(Time::HiRes)
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Pandora FMS is a monitoring system for big IT environments. It uses remote tests, or local agents to grab information. Pandora supports all standard OS (Linux, AIX, HP-UX, Solaris and Windows XP,2000/2003), and support multiple setups in HA enviroments.
|
Pandora FMS is a monitoring system for big IT environments. It uses remote tests, or local agents to grab information. Pandora supports all standard OS (Linux, AIX, HP-UX, Solaris and Windows XP,2000/2003), and support multiple setups in HA enviroments.
|
||||||
|
|
|
@ -10,96 +10,176 @@
|
||||||
|
|
||||||
|
|
||||||
MODE=$1
|
MODE=$1
|
||||||
SECOPT=$2
|
shift
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
PREFIX=/usr
|
||||||
PANDORA_SPOOL=/var/spool/pandora
|
PANDORA_SPOOL=/var/spool/pandora
|
||||||
PANDORA_HOME=/usr/share/pandora_server
|
PANDORA_HOME=$PREFIX/share/pandora_server
|
||||||
PANDORA_CFG_DIR=/etc/pandora
|
PANDORA_CFG_DIR=/etc/pandora
|
||||||
PANDORA_LOG=/var/log/pandora
|
PANDORA_LOG=/var/log/pandora
|
||||||
PANDORA_SERVER=/etc/init.d/pandora_server
|
PANDORA_SERVER=/etc/init.d/pandora_server
|
||||||
TENTACLE_SERVER=/etc/init.d/tentacle_serverd
|
TENTACLE_SERVER=/etc/init.d/tentacle_serverd
|
||||||
PANDORA_CFG_FILE=/etc/pandora/pandora_server.conf
|
PANDORA_CFG_FILE=$PANDORA_CFG_DIR/pandora_server.conf
|
||||||
|
PANDORA_CFG_FILE_DIST=conf/pandora_server.conf.new
|
||||||
|
PANDORA_INIT_SCRIPT=util/pandora_server
|
||||||
|
TENTACLE_INIT_SCRIPT=util/tentacle_serverd
|
||||||
|
PERL=perl
|
||||||
|
MANDIR=$PREFIX/share/man/man1
|
||||||
|
INITDIR=/etc/init.d
|
||||||
|
WITHOUT_TENTACLE=0
|
||||||
|
|
||||||
|
#
|
||||||
|
# set_global_vars
|
||||||
|
# Check platform and set DISTRO, OS_VERSION and LINUX.
|
||||||
|
# Also, define some platform sepcific variables (e.g. PANDORA_RC_VAR for (Free|Net)BSD)
|
||||||
|
# and override some of defaults defined above if needed.
|
||||||
|
#
|
||||||
|
set_global_vars () {
|
||||||
|
# Default
|
||||||
|
LINUX=NO
|
||||||
|
OS_VERSION=`uname -r`
|
||||||
|
DISTRO=`uname -s`
|
||||||
|
|
||||||
get_distro () {
|
# set corret value for LINUX_DISTRO
|
||||||
|
case $DISTRO in
|
||||||
|
Linux)
|
||||||
|
# Default for Linux
|
||||||
|
LINUX=YES
|
||||||
|
DISTRO="GENERIC"
|
||||||
# Get Linux Distro type and version
|
# Get Linux Distro type and version
|
||||||
# We assume we are on Linux unless told otherwise
|
# We assume we are on Linux unless told otherwise
|
||||||
LINUX=YES
|
|
||||||
if [ -f "/etc/SuSE-release" ]
|
if [ -f "/etc/SuSE-release" ]
|
||||||
then
|
then
|
||||||
OS_VERSION=`cat /etc/SuSE-release | grep VERSION | cut -f 3 -d " "`
|
OS_VERSION=`cat /etc/SuSE-release | grep VERSION | cut -f 3 -d " "`
|
||||||
LINUX_DISTRO=SUSE
|
DISTRO=SUSE
|
||||||
elif [ -f "/etc/lsb-release" ] && [ ! -f "/etc/redhat-release" ]
|
elif [ -f "/etc/lsb-release" ] && [ ! -f "/etc/redhat-release" ]
|
||||||
then
|
then
|
||||||
OS_VERSION=`cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -f 2 -d "="`
|
OS_VERSION=`cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -f 2 -d "="`
|
||||||
LINUX_DISTRO=UBUNTU
|
DISTRO=UBUNTU
|
||||||
OS_VERSION="UBUNTU $OS_VERSION"
|
OS_VERSION="UBUNTU $OS_VERSION"
|
||||||
elif [ -f "/etc/debian_version" ]
|
elif [ -f "/etc/debian_version" ]
|
||||||
then
|
then
|
||||||
OS_VERSION=`cat /etc/debian_version`
|
OS_VERSION=`cat /etc/debian_version`
|
||||||
OS_VERSION="DEBIAN $OS_VERSION"
|
OS_VERSION="DEBIAN $OS_VERSION"
|
||||||
LINUX_DISTRO=DEBIAN
|
DISTRO=DEBIAN
|
||||||
elif [ -f "/etc/fedora-release" ]
|
elif [ -f "/etc/fedora-release" ]
|
||||||
then
|
then
|
||||||
OS_VERSION=`cat /etc/fedora-release | cut -f 4 -d " "`
|
OS_VERSION=`cat /etc/fedora-release | cut -f 4 -d " "`
|
||||||
OS_VERSION="FEDORA $OS_VERSION"
|
OS_VERSION="FEDORA $OS_VERSION"
|
||||||
LINUX_DISTRO=FEDORA
|
DISTRO=FEDORA
|
||||||
elif [ `uname -s` = "Darwin" ]
|
|
||||||
then
|
|
||||||
# For future reference, Darwin doesn't have /etc/init.d but uses LaunchDaemons
|
|
||||||
LINUX_DISTRO="Darwin"
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
LINUX=NO
|
|
||||||
elif [ `uname -s` = "AIX" ]
|
|
||||||
then
|
|
||||||
# For future reference, AIX doesn't have /etc/init.d
|
|
||||||
LINUX_DISTRO="AIX"
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
LINUX=NO
|
|
||||||
elif [ `uname -s` = "SunOS" ]
|
|
||||||
then
|
|
||||||
# Some Solaris and other Unices don't have /etc/init.d, some have /usr/spool instead of /var/spool
|
|
||||||
LINUX_DISTRO="Solaris"
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
LINUX=NO
|
|
||||||
elif [ `uname -s` = "Linux" ]
|
|
||||||
then
|
|
||||||
# Test for Linux to make sure we're on Linux
|
|
||||||
LINUX_DISTRO="GENERIC"
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
elif [ `uname -s` = "FreeBSD" ]
|
|
||||||
then
|
|
||||||
LINUX_DISTRO="FreeBSD"
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
LINUX=NO
|
|
||||||
elif [ `uname -s` = "NetBSD" ]
|
|
||||||
then
|
|
||||||
LINUX_DISTRO="NetBSD"
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
LINUX=NO
|
|
||||||
else
|
|
||||||
# Default to Linux is false, test for real Linux above - that way we don't assume we can just plunk down files everywhere
|
|
||||||
LINUX_DISTRO=`uname -s`
|
|
||||||
OS_VERSION=`uname -r`
|
|
||||||
LINUX=NO
|
|
||||||
fi
|
fi
|
||||||
echo "$LINUX_DISTRO:$OS_VERSION:$LINUX"
|
;;
|
||||||
|
Darwin|AIX)
|
||||||
|
# For future reference, Darwin doesn't have /etc/init.d but uses LaunchDaemons.
|
||||||
|
# AIX doesn't have /etc/init.d
|
||||||
|
;;
|
||||||
|
SunOS)
|
||||||
|
# Some Solaris and other Unices don't have /etc/init.d, some have /usr/spool instead of /var/spool
|
||||||
|
DISTRO="Solaris"
|
||||||
|
;;
|
||||||
|
FreeBSD)
|
||||||
|
PREFIX=/usr/local
|
||||||
|
PANDORA_HOME=$PREFIX/share/pandora_server
|
||||||
|
PANDORA_CFG_DIR=$PREFIX/etc/pandora
|
||||||
|
PANDORA_SERVER=$PREFIX/etc/rc.d/pandora_server
|
||||||
|
TENTACLE_SERVER=$PREFIX/etc/rc.d/tentacle_server
|
||||||
|
PANDORA_CFG_FILE=$PANDORA_CFG_DIR/pandora_server.conf
|
||||||
|
PANDORA_CFG_FILE_DIST=$DISTRO/pandora_server.conf.new
|
||||||
|
PANDORA_INIT_SCRIPT=$DISTRO/pandora_server
|
||||||
|
TENTACLE_INIT_SCRIPT=$DISTRO/tentacle_server
|
||||||
|
MANDIR=$PREFIX/man/man1
|
||||||
|
INITDIR=$PREFIX/etc/rc.d
|
||||||
|
PERL=/usr/local/bin/perl
|
||||||
|
PANDORA_RC_VAR="pandora_server_enable"
|
||||||
|
TENTACLE_RC_VAR="tentacle_server_enable"
|
||||||
|
;;
|
||||||
|
NetBSD)
|
||||||
|
PREFIX=/usr/local
|
||||||
|
PANDORA_HOME=$PREFIX/share/pandora_server
|
||||||
|
PANDORA_CFG_DIR=$PREFIX/etc/pandora
|
||||||
|
PANDORA_SERVER=/etc/rc.d/pandora_server
|
||||||
|
TENTACLE_SERVER=/etc/rc.d/tentacle_server
|
||||||
|
PANDORA_CFG_FILE=$PANDORA_CFG_DIR/pandora_server.conf
|
||||||
|
PANDORA_CFG_FILE_DIST=$DISTRO/pandora_server.conf.new
|
||||||
|
PANDORA_INIT_SCRIPT=$DISTRO/pandora_server
|
||||||
|
TENTACLE_INIT_SCRIPT=$DISTRO/tentacle_server
|
||||||
|
PERL=/usr/pkg/bin/perl
|
||||||
|
INITDIR=/etc/rc.d
|
||||||
|
PANDORA_RC_VAR="pandora_server"
|
||||||
|
TENTACLE_RC_VAR="tentacle_server"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# install_startup_script [options...] SRC
|
||||||
|
# copy SRC into the $INITDIR and do additional required operation according to $DISTRO
|
||||||
|
# if $INITDIR is not set or empty, do nothing.
|
||||||
|
# If $DESTDIR is set, skip enabling service
|
||||||
|
# OPTIONS:
|
||||||
|
# -s SPRIO specify startup priority for service
|
||||||
|
#
|
||||||
|
install_startup_script () {
|
||||||
|
[ "$INITDIR" ] || return 1
|
||||||
|
if [ "$1" = "-s" ]
|
||||||
|
then
|
||||||
|
SPRIO=$2
|
||||||
|
shift;shift
|
||||||
|
fi
|
||||||
|
SRC=$1
|
||||||
|
SCRIPT_NAME=`basename $SRC`
|
||||||
|
|
||||||
|
echo "Copying the daemon script into $INITDIR"
|
||||||
|
cp $SRC $DESTDIR$INITDIR
|
||||||
|
|
||||||
|
[ "$DESTDIR" ] && return
|
||||||
|
|
||||||
|
case $DISTRO in
|
||||||
|
UBUNTU|DEBIAN)
|
||||||
|
echo "Linking startup script to /etc/rc2.d"
|
||||||
|
update-rc.d $SCRIPT_NAME defaults
|
||||||
|
;;
|
||||||
|
SUSE)
|
||||||
|
echo "Creating startup daemons"
|
||||||
|
insserv $SCRIPT_NAME
|
||||||
|
;;
|
||||||
|
FeeBSD|NetBSD)
|
||||||
|
chmod 555 $SRC
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ "$LINUX" = YES ]
|
||||||
|
then
|
||||||
|
# Pandora FMS Server install (Other Distros)
|
||||||
|
INITLV=`grep '[0-9]:initdefault' /etc/inittab | cut -f 2 -d ':'`
|
||||||
|
: ${INITLV:=2}
|
||||||
|
echo "Linking startup script to /etc/rc.d/rc$INITLV.d/S$SPRIO$SCRIPT_NAME"
|
||||||
|
ln -s $INITDIR/$SCRIPT_NAME /etc/rc.d/rc$INITLV.d/S$SPRIO$SCRIPT_NAME
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
install () {
|
install () {
|
||||||
|
set_global_vars
|
||||||
perl Makefile.PL > output 2>&1 #&& sleep 2 && cat output | grep "found" | wc -l
|
|
||||||
DEPENDENCIAS=`cat output | grep "found" | wc -l`
|
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
|
||||||
if [ ! -z "$SECOPT" ]
|
# parse options
|
||||||
then
|
while :
|
||||||
if [ "$SECOPT" = "--force" ]
|
do
|
||||||
then
|
case $1 in
|
||||||
FORCE=1
|
--force) FORCE=1;;
|
||||||
fi
|
--no-tentacle) WITHOUT_TENTALCE=1;;
|
||||||
fi
|
--destdir) DESTDIR=$2;shift;;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
$PERL Makefile.PL INSTALLMAN1DIR=none WITHOUT_TENTACLE=$WITHOUT_TENTACLE > output 2>&1
|
||||||
|
#&& sleep 2 && cat output | grep "found" | wc -l
|
||||||
|
DEPENDENCIAS=`cat output | grep "found" | wc -l`
|
||||||
|
|
||||||
if [ $DEPENDENCIAS -gt 0 ] && [ $FORCE -eq 0 ]
|
if [ $DEPENDENCIAS -gt 0 ] && [ $FORCE -eq 0 ]
|
||||||
then
|
then
|
||||||
|
@ -142,66 +222,33 @@ perl-TimeDate perl-XML-Simple perl-XML-Twig perl-libwww-perl mysql-client"
|
||||||
echo " $ cpan Time::Local DBI Socket6 XML::Simple XML::Twig IO::Socket Time::HiRes NetAddr::IP HTML::Entities IO::Socket::INET6 JSON"
|
echo " $ cpan Time::Local DBI Socket6 XML::Simple XML::Twig IO::Socket Time::HiRes NetAddr::IP HTML::Entities IO::Socket::INET6 JSON"
|
||||||
echo " "
|
echo " "
|
||||||
rm output
|
rm output
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm output
|
||||||
|
|
||||||
|
if [ "$LINUX" = YES ]
|
||||||
|
then
|
||||||
|
echo "$DISTRO distribution detected"
|
||||||
else
|
else
|
||||||
|
echo "$DISTRO detected"
|
||||||
# This returns a multiple value string, separated with ":" -> $LINUX_DISTRO:$OS_VERSION:$LINUX
|
|
||||||
GET_DISTRO="`get_distro`"
|
|
||||||
DISTRO=`echo $GET_DISTRO | cut -f 1 -d ":"`
|
|
||||||
OS_VERSION=`echo $GET_DISTRO | cut -f 2 -d ":"`
|
|
||||||
LINUX=`echo $GET_DISTRO | cut -f 3 -d ":"`
|
|
||||||
|
|
||||||
if [ "$DISTRO" = "UBUNTU" ]
|
|
||||||
then
|
|
||||||
echo "UBUNTU distribution detected"
|
|
||||||
elif [ "$DISTRO" = "SUSE" ]
|
|
||||||
then
|
|
||||||
echo "SUSE distribution detected"
|
|
||||||
elif [ "$DISTRO" = "FreeBSD" ]
|
|
||||||
then
|
|
||||||
echo "FreeBSD detected"
|
|
||||||
PANDORA_SPOOL=/var/spool/pandora
|
|
||||||
PANDORA_HOME=/usr/local/share/pandora_server
|
|
||||||
PANDORA_CFG_DIR=/usr/local/etc/pandora
|
|
||||||
PANDORA_LOG=/var/log/pandora
|
|
||||||
PANDORA_SERVER=/usr/local/etc/rc.d/pandora_server
|
|
||||||
TENTACLE_SERVER=/usr/local/etc/rc.d/tentacle_server
|
|
||||||
PANDORA_CFG_FILE=/usr/local/etc/pandora/pandora_server.conf
|
|
||||||
elif [ "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
|
||||||
echo "NetBSD detected"
|
|
||||||
PANDORA_SPOOL=/var/spool/pandora
|
|
||||||
PANDORA_HOME=/usr/local/share/pandora_server
|
|
||||||
PANDORA_CFG_DIR=/usr/local/etc/pandora
|
|
||||||
PANDORA_LOG=/var/log/pandora
|
|
||||||
PANDORA_SERVER=/etc/rc.d/pandora_server
|
|
||||||
TENTACLE_SERVER=/etc/rc.d/tentacle_server
|
|
||||||
PANDORA_CFG_FILE=/usr/local/etc/pandora/pandora_server.conf
|
|
||||||
|
|
||||||
sed s:/usr/bin/perl:/usr/pkg/bin/perl: bin/pandora_server > bin/tmp
|
|
||||||
mv bin/tmp bin/pandora_server
|
|
||||||
sed s:/usr/bin/perl:/usr/pkg/bin/perl: bin/pandora_exec > bin/tmp
|
|
||||||
mv bin/tmp bin/pandora_exec
|
|
||||||
sed s:/usr/bin/perl:/usr/pkg/bin/perl: bin/tentacle_server > bin/tmp
|
|
||||||
mv bin/tmp bin/tentacle_server
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Installing binaries and libraries"
|
echo "Installing binaries and libraries"
|
||||||
make
|
make
|
||||||
make install
|
make DESTDIR=$DESTDIR install
|
||||||
|
|
||||||
echo "Checking binaries at /usr/local/bin -> /usr/bin"
|
echo "Checking binaries at /usr/local/bin -> /usr/bin"
|
||||||
if [ ! -e "/usr/bin/pandora_server" ]
|
if [ ! -f "$DESTDIR/usr/bin/pandora_server" ]
|
||||||
then
|
then
|
||||||
if [ ! -e "/usr/local/bin/pandora_server" ]
|
if [ ! -f "$DESTDIR/usr/local/bin/pandora_server" ]
|
||||||
then
|
then
|
||||||
echo "ERROR compiling Pandora FMS Server from sources. Aborting"
|
echo "ERROR compiling Pandora FMS Server from sources. Aborting"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ "$DISTRO" != "FreeBSD" -a "$DISTRO" != "NetBSD" ]
|
if [ "$DISTRO" != "FreeBSD" ] && [ "$DISTRO" != "NetBSD" ]
|
||||||
then
|
then
|
||||||
ln -s /usr/local/bin/pandora_server /usr/bin
|
ln -s /usr/local/bin/pandora_server $DESTDIR$PREFIX
|
||||||
ln -s /usr/local/bin/pandora_exec /usr/bin
|
ln -s /usr/local/bin/pandora_exec $DESTDIR$PREFIX
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -210,6 +257,12 @@ perl-TimeDate perl-XML-Simple perl-XML-Twig perl-libwww-perl mysql-client"
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo " "
|
echo " "
|
||||||
echo "User pandora does exist, make sure the SSH directories are correct"
|
echo "User pandora does exist, make sure the SSH directories are correct"
|
||||||
|
elif [ "$DESTDIR" ]
|
||||||
|
then
|
||||||
|
# chown can fail with fakeroot installation
|
||||||
|
echo "User 'pandora' does not exist. All chown operations may fail."
|
||||||
|
echo "You should manualy set proper ownership to $DESTDIR$PANDORA_SPOOL if needed."
|
||||||
|
echo
|
||||||
else
|
else
|
||||||
echo "Are you sure we can create a standard 'pandora' user locally? [y/N]"
|
echo "Are you sure we can create a standard 'pandora' user locally? [y/N]"
|
||||||
read AREYOUSURE
|
read AREYOUSURE
|
||||||
|
@ -230,360 +283,190 @@ perl-TimeDate perl-XML-Simple perl-XML-Twig perl-libwww-perl mysql-client"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir $PANDORA_SPOOL 2> /dev/null
|
mkdir -p $DESTDIR$PANDORA_SPOOL/data_in 2> /dev/null
|
||||||
mkdir $PANDORA_SPOOL/data_in 2> /dev/null
|
chmod 770 $DESTDIR$PANDORA_SPOOL/data_in
|
||||||
chmod 770 $PANDORA_SPOOL/data_in
|
mkdir $DESTDIR$PANDORA_SPOOL/data_in/conf 2> /dev/null
|
||||||
mkdir $PANDORA_SPOOL/data_in/conf 2> /dev/null
|
chmod 770 $DESTDIR$PANDORA_SPOOL/data_in/conf
|
||||||
chmod 770 $PANDORA_SPOOL/data_in/conf
|
mkdir $DESTDIR$PANDORA_SPOOL/data_in/md5 2> /dev/null
|
||||||
mkdir $PANDORA_SPOOL/data_in/md5 2> /dev/null
|
chmod 770 $DESTDIR$PANDORA_SPOOL/data_in/md5
|
||||||
chmod 770 $PANDORA_SPOOL/data_in/md5
|
mkdir $DESTDIR$PANDORA_SPOOL/data_in/collections 2> /dev/null
|
||||||
mkdir $PANDORA_SPOOL/data_in/collections 2> /dev/null
|
chmod 770 $DESTDIR$PANDORA_SPOOL/data_in/collections
|
||||||
chmod 770 $PANDORA_SPOOL/data_in/collections
|
mkdir $DESTDIR$PANDORA_SPOOL/data_in/netflow 2> /dev/null
|
||||||
mkdir $PANDORA_SPOOL/data_in/netflow 2> /dev/null
|
chmod 770 $DESTDIR$PANDORA_SPOOL/data_in/netflow
|
||||||
chmod 770 $PANDORA_SPOOL/data_in/netflow
|
mkdir -p $DESTDIR$PANDORA_LOG 2> /dev/null
|
||||||
mkdir $PANDORA_LOG 2> /dev/null
|
|
||||||
|
|
||||||
echo "Giving proper permission to /var/spool/pandora"
|
echo "Giving proper permission to /var/spool/pandora"
|
||||||
IDGROUP=`id -g www-data 2> /dev/null`
|
for group in "www-data" wwwrun www apache
|
||||||
|
do
|
||||||
|
IDGROUP=`id -g "$group" 2> /dev/null`
|
||||||
if [ $? -eq 0 ]
|
if [ $? -eq 0 ]
|
||||||
then
|
then
|
||||||
GROUPNAME=`cat /etc/group | grep ":$IDGROUP:" | awk -F":" '{print $1}'`
|
GROUPNAME=`grep ":$IDGROUP:" /etc/group | awk -F":" '{print $1}'`
|
||||||
chown -R pandora:$GROUPNAME $PANDORA_SPOOL
|
break
|
||||||
else
|
fi
|
||||||
IDGROUP=`id -g wwwrun 2> /dev/null`
|
done
|
||||||
if [ $? -eq 0 ]
|
if [ -z "$GROUPNAME" ]
|
||||||
then
|
then
|
||||||
GROUPNAME=`cat /etc/group | grep ":$IDGROUP:" | awk -F":" '{print $1}'`
|
|
||||||
chown -R pandora:$GROUPNAME $PANDORA_SPOOL
|
|
||||||
else
|
|
||||||
IDGROUP=`id -g www 2> /dev/null`
|
|
||||||
if [ $? -eq 0 ]
|
|
||||||
then
|
|
||||||
GROUPNAME=`cat /etc/group | grep ":$IDGROUP:" | awk -F":" '{print $1}'`
|
|
||||||
chown -R pandora:$GROUPNAME $PANDORA_SPOOL
|
|
||||||
else
|
|
||||||
IDGROUP=`id -g apache 2> /dev/null`
|
|
||||||
if [ $? -eq 0 ]
|
|
||||||
then
|
|
||||||
GROUPNAME=`cat /etc/group | grep ":$IDGROUP:" | awk -F":" '{print $1}'`
|
|
||||||
chown -R pandora:$GROUPNAME $PANDORA_SPOOL
|
|
||||||
else
|
|
||||||
echo "No web server user found, some functionality might not perform correctly"
|
echo "No web server user found, some functionality might not perform correctly"
|
||||||
chown -R pandora:root $PANDORA_SPOOL
|
GROUPNAME=0
|
||||||
fi
|
fi
|
||||||
fi
|
# when fakeroot installation, this can fail
|
||||||
fi
|
chown -R pandora:$GROUPNAME $DESTDIR$PANDORA_SPOOL 2>/dev/null
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
echo "Creating setup directory in $PANDORA_CFG_DIR"
|
echo "Creating setup directory in $PANDORA_CFG_DIR"
|
||||||
mkdir $PANDORA_CFG_DIR 2> /dev/null
|
mkdir -p $DESTDIR$PANDORA_CFG_DIR 2> /dev/null
|
||||||
if [ "$DISTRO" = "FreeBSD" ]
|
if [ -f "$DESTDIR$PANDORA_CFG_FILE" ]
|
||||||
then
|
then
|
||||||
if [ -e $PANDORA_CFG_FILE ]
|
echo cp $PANDORA_CFG_FILE_DIST $DESTDIR$PANDORA_CFG_DIR
|
||||||
then
|
cp $PANDORA_CFG_FILE_DIST $DESTDIR$PANDORA_CFG_DIR
|
||||||
OLDFILENAMETMP=`date +"%Y-%m-%d"`
|
|
||||||
echo "Old installation detected, backing up pandora_server.conf.$ODFILENAMETMP"
|
|
||||||
mv $PANDORA_CFG_FILE $PANDORA_CFG_FILE.$OLDFILENAMETMP
|
|
||||||
fi
|
|
||||||
echo cp FreeBSD/pandora_server.conf $PANDORA_CFG_DIR
|
|
||||||
cp FreeBSD/pandora_server.conf $PANDORA_CFG_DIR
|
|
||||||
elif [ "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
|
||||||
if [ ! -d $PANDORA_CFG_DIR ]
|
|
||||||
then
|
|
||||||
mkdir -p $PANDORA_CFG_DIR
|
|
||||||
fi
|
|
||||||
if [ -e $PANDORA_CFG_FILE ]
|
|
||||||
then
|
|
||||||
OLDFILENAMETMP=`date +"%Y-%m-%d"`
|
|
||||||
echo "Old installation detected, backing up pandora_server.conf.$ODFILENAMETMP"
|
|
||||||
mv $PANDORA_CFG_FILE $PANDORA_CFG_FILE.$OLDFILENAMETMP
|
|
||||||
fi
|
|
||||||
echo cp NetBSD/pandora_server.conf $PANDORA_CFG_DIR
|
|
||||||
cp NetBSD/pandora_server.conf $PANDORA_CFG_DIR
|
|
||||||
else
|
else
|
||||||
if [ -f "$PANDORA_CFG_FILE" ]
|
echo cp $PANDORA_CFG_FILE_DIST $DESTDIR$PANDORA_CFG_FILE
|
||||||
then
|
cp $PANDORA_CFG_FILE_DIST $DESTDIR$PANDORA_CFG_FILE
|
||||||
echo cp conf/pandora_server.conf.new $PANDORA_CFG_DIR
|
chmod 770 $DESTDIR$PANDORA_CFG_FILE
|
||||||
cp conf/pandora_server.conf.new $PANDORA_CFG_DIR
|
|
||||||
else
|
|
||||||
echo cp conf/pandora_server.conf.new $PANDORA_CFG_FILE
|
|
||||||
cp conf/pandora_server.conf.new $PANDORA_CFG_FILE
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
chmod 770 $PANDORA_CFG_FILE
|
|
||||||
|
|
||||||
echo "Installing Pandora Server manual"
|
echo "Installing Pandora Server manual"
|
||||||
if [ "$DISTRO" = "FreeBSD" ]
|
cp man/man1/pandora_server.1.gz $DESTDIR$MANDIR
|
||||||
then
|
|
||||||
cp man/man1/pandora_server.1.gz /usr/local/man/man1
|
|
||||||
else
|
|
||||||
cp man/man1/pandora_server.1.gz /usr/share/man/man1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$LINUX" = "YES" ]
|
install_startup_script -s 90 $PANDORA_INIT_SCRIPT
|
||||||
then
|
|
||||||
echo "Copying the daemon script into /etc/init.d/pandora_server"
|
|
||||||
cp util/pandora_server /etc/init.d/
|
|
||||||
|
|
||||||
if [ "$DISTRO" = "UBUNTU" ] || [ "$DISTRO" = "DEBIAN" ]
|
if [ -d /etc/logrotate.d ]
|
||||||
then
|
then
|
||||||
|
[ -d $DESTDIR/etc/logrotate.d ] && mkdir -p $DESTDIR/etc/logrotate.d
|
||||||
echo "Linking startup script to /etc/rc2.d"
|
|
||||||
update-rc.d pandora_server defaults
|
|
||||||
else
|
|
||||||
if [ "$DISTRO" = "SUSE" ]
|
|
||||||
then
|
|
||||||
echo "Creating startup daemons"
|
|
||||||
insserv pandora_server
|
|
||||||
else
|
|
||||||
# Pandora FMS Server install (Other Distros)
|
|
||||||
INITLV=`cat /etc/inittab | grep "[0-9]\:initdefault" | cut -f 2 -d ":"`
|
|
||||||
if [ -z "$INITLV" ]
|
|
||||||
then
|
|
||||||
INITLV=2
|
|
||||||
fi
|
|
||||||
echo "Linking startup script to /etc/rc.d/rc$INITLV.d"
|
|
||||||
ln -s $PANDORA_SERVER /etc/rc.d/rc$INITLV.d/S90pandora_server
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "$DISTRO" = "FreeBSD" ]
|
|
||||||
then
|
|
||||||
echo "Copying the daemon script into $PANDORA_SERVER"
|
|
||||||
cp FreeBSD/pandora_server $PANDORA_SERVER
|
|
||||||
chmod 555 $PANDORA_SERVER
|
|
||||||
fi
|
|
||||||
if [ "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
|
||||||
echo "Copying the daemon script into $PANDORA_SERVER"
|
|
||||||
cp NetBSD/pandora_server $PANDORA_SERVER
|
|
||||||
chmod 555 $PANDORA_SERVER
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d /etc/logrotate.d ]; then
|
|
||||||
echo "Creating logrotate.d entry for Pandora FMS log management"
|
echo "Creating logrotate.d entry for Pandora FMS log management"
|
||||||
cp util/pandora_logrotate /etc/logrotate.d/pandora
|
cp util/pandora_logrotate $DESTDIR/etc/logrotate.d/pandora
|
||||||
else
|
else
|
||||||
echo "Please add a log rotation schedule manually to your log rotation daemon (if any)"
|
echo "Please add a log rotation schedule manually to your log rotation daemon (if any)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LINUX" = "YES" ]
|
if [ $WITHOUT_TENTACLE -eq 0 ]
|
||||||
then
|
then
|
||||||
if [ "$SECOPT" != "--no-tentacle" ]
|
# tentacle_server is already installed by "make install"
|
||||||
then
|
install_startup_script -s 80 $TENTACLE_INIT_SCRIPT
|
||||||
if [ "$DISTRO" = "UBUNTU" ] || [ "$DISTRO" = "DEBIAN" ]
|
|
||||||
then
|
|
||||||
# Tentacle server install (Ubuntu)
|
|
||||||
echo "Installing tentacle server"
|
|
||||||
cp bin/tentacle_server /usr/bin
|
|
||||||
chown pandora /usr/bin/tentacle_server
|
|
||||||
cp util/tentacle_serverd $TENTACLE_SERVER
|
|
||||||
update-rc.d tentacle_serverd defaults
|
|
||||||
else
|
|
||||||
if [ "$DISTRO" = "SUSE" ]
|
|
||||||
then
|
|
||||||
echo "Creating Tentacle startup daemon"
|
|
||||||
cp bin/tentacle_server /usr/bin
|
|
||||||
chown pandora /usr/bin/tentacle_server
|
|
||||||
cp util/tentacle_serverd /etc/init.d/tentacle_serverd
|
|
||||||
insserv tentacle_serverd
|
|
||||||
else
|
|
||||||
# Tentacle server install (Other Distros)
|
|
||||||
echo "Installing tentacle server in /etc/rc.d/rc$INITLV.d/S80tentacle_serverd"
|
|
||||||
cp bin/tentacle_server /usr/bin
|
|
||||||
chown pandora /usr/bin/tentacle_server
|
|
||||||
cp util/tentacle_serverd /etc/init.d/tentacle_serverd
|
|
||||||
ln -s $TENTACLE_SERVER /etc/rc.d/rc$INITLV.d/S80tentacle_serverd
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Installing Tentacle Server manual"
|
echo "Installing Tentacle Server manual"
|
||||||
cp man/man1/tentacle_server.1.gz /usr/share/man/man1
|
cp man/man1/tentacle_server.1.gz $DESTDIR$MANDIR
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "$SECOPT" != "--no-tentacle" ]
|
|
||||||
then
|
|
||||||
if [ "$DISTRO" = "FreeBSD" ]
|
|
||||||
then
|
|
||||||
echo "Installing tentacle server"
|
|
||||||
cp bin/tentacle_server /usr/local/bin
|
|
||||||
chown pandora /usr/local/bin/tentacle_server
|
|
||||||
chmod 555 /usr/local/bin/tentacle_server
|
|
||||||
cp FreeBSD/tentacle_server $TENTACLE_SERVER
|
|
||||||
chmod 555 $TENTACLE_SERVER
|
|
||||||
echo "Installing Tentacle Server manual"
|
|
||||||
cp man/man1/tentacle_server.1.gz /usr/local/man/man1
|
|
||||||
fi
|
|
||||||
if [ "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
|
||||||
echo "Installing tentacle server"
|
|
||||||
cp bin/tentacle_server /usr/local/bin
|
|
||||||
chown pandora /usr/local/bin/tentacle_server
|
|
||||||
chmod 555 /usr/local/bin/tentacle_server
|
|
||||||
cp NetBSD/tentacle_server $TENTACLE_SERVER
|
|
||||||
chmod 555 $TENTACLE_SERVER
|
|
||||||
echo "Installing Tentacle Server manual"
|
|
||||||
cp man/man1/tentacle_server.1.gz /usr/share/man/man1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Creating Pandora FMS distribution directory in $PANDORA_HOME"
|
echo "Creating Pandora FMS distribution directory in $PANDORA_HOME"
|
||||||
mkdir $PANDORA_HOME 2> /dev/null
|
mkdir -p $DESTDIR$PANDORA_HOME 2> /dev/null
|
||||||
if [ ! -d $PANDORA_HOME ]
|
cp -R util $DESTDIR$PANDORA_HOME
|
||||||
then
|
find $DESTDIR$PANDORA_HOME -type l -delete
|
||||||
mkdir -p $PANDORA_HOME
|
|
||||||
fi
|
|
||||||
cp -R util $PANDORA_HOME
|
|
||||||
|
|
||||||
|
# install cron job
|
||||||
if [ -d /etc/cron.hourly ]
|
if [ -d /etc/cron.hourly ]
|
||||||
then
|
then
|
||||||
|
[ ! -d $DESTDIR/etc/cron.hourly ] && mkdir -p $DESTDIR/etc/cron.hourly
|
||||||
echo "Creating the Cron script to run Pandora DB tool each hour"
|
echo "Creating the Cron script to run Pandora DB tool each hour"
|
||||||
echo "#!/bin/bash" > /etc/cron.hourly/pandora_db
|
echo "#!/bin/bash" > $DESTDIR/etc/cron.hourly/pandora_db
|
||||||
echo "perl /usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server.conf" >> /etc/cron.hourly/pandora_db
|
echo "perl $PANDORA_HOME/util/pandora_db.pl /etc/pandora/pandora_server.conf" >> /etc/cron.hourly/pandora_db
|
||||||
chmod +x /etc/cron.hourly/pandora_db
|
chmod +x /etc/cron.hourly/pandora_db
|
||||||
else
|
elif [ "$DISTRO" = "FreeBSD" ] || [ "$DISTRO" = "NetBSD" ]
|
||||||
if [ "$DISTRO" = "FreeBSD" -o "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
then
|
||||||
|
if [ "$DESTDIR" ]
|
||||||
|
then
|
||||||
|
echo "Skip adding cron entry for pandora_db.pl when performing fakeroot installation."
|
||||||
|
else
|
||||||
grep pandora_db.pl /etc/crontab > /dev/null 2>&1
|
grep pandora_db.pl /etc/crontab > /dev/null 2>&1
|
||||||
if [ $? -ne 0 ]
|
if [ $? -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "# Pandora FMS" >> /etc/crontab
|
echo "# Pandora FMS" >> /etc/crontab
|
||||||
echo "2 * * * * root perl /usr/local/share/pandora_server/util/pandora_db.pl /usr/local/etc/pandora/pandora_server.conf" >> /etc/crontab
|
echo "2 * * * * root perl $PANDORA_HOME/util/pandora_db.pl $PANDORA_CFG_FILE" >> /etc/crontab
|
||||||
else
|
else
|
||||||
echo "The crontab for pandora_db.pl is already configured."
|
echo "The crontab for pandora_db.pl is already configured."
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "You're probably not using cron for automatic scheduling. You should schedule the following command to run frequently (hourly) on your master server:"
|
echo "You're probably not using cron for automatic scheduling. You should schedule the following command to run frequently (hourly) on your master server:"
|
||||||
echo " perl /usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server.conf"
|
echo " perl $PANDORA_HOME/util/pandora_db.pl $PANDORA_CFG_FILE"
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
echo "Now you have to edit your $PANDORA_CFG_FILE file to change the database password (default is pandora) with the one set in include/config.php of your Pandora FMS Console."
|
echo "Now you have to edit your $PANDORA_CFG_FILE file to change the database password (default is pandora) with the one set in include/config.php of your Pandora FMS Console."
|
||||||
echo "After setting password you can start your Pandora FMS Server!!"
|
echo "After setting password you can start your Pandora FMS Server!!"
|
||||||
rm output
|
|
||||||
|
|
||||||
if [ -d "/etc/logrotate.d" ]
|
if [ "$DISTRO" = "FreeBSD" ] || [ "$DISTRO" = "NetBSD" ]
|
||||||
then
|
|
||||||
echo "Managing Pandora FMS logs with logrotate (Distro independent)"
|
|
||||||
cp -aRf util/pandora_logrotate /etc/logrotate.d/pandora
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$DISTRO" = "FreeBSD" ]
|
|
||||||
then
|
then
|
||||||
echo " "
|
echo " "
|
||||||
echo "Define 'pandora_server_enable=\"YES\"' in /etc/rc.conf to enable pandora server daemon."
|
echo "Define '$PANDORA_RC_VAR=\"YES\"' in /etc/rc.conf to enable pandora server daemon."
|
||||||
echo "Define 'tentacle_server_enable=\"YES\"' in /etc/rc.conf to enable tentacle server daemon."
|
[ "$WITHOUT_TENTACLE" = 0 ] && \
|
||||||
|
echo "Define '$TENTACLE_RC_VAR=\"YES\"' in /etc/rc.conf to enable tentacle server daemon."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
|
||||||
echo " "
|
|
||||||
echo "Define 'pandora_server=\"YES\"' in /etc/rc.conf to enable pandora server daemon."
|
|
||||||
echo "Define 'tentacle_server=\"YES\"' in /etc/rc.conf to enable tentacle server daemon."
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
uninstall_bsd () {
|
|
||||||
if [ "$DISTRO" = "FreeBSD" ]
|
|
||||||
then
|
|
||||||
PANDORA_SPOOL=/var/spool/pandora
|
|
||||||
PANDORA_HOME=/usr/local/share/pandora_server
|
|
||||||
PANDORA_CFG_DIR=/usr/local/etc/pandora
|
|
||||||
PANDORA_LOG=/var/log/pandora
|
|
||||||
PANDORA_SERVER=/usr/local/etc/rc.d/pandora_server
|
|
||||||
TENTACLE_SERVER=/usr/local/etc/rc.d/tentacle_server
|
|
||||||
PANDORA_CFG_FILE=/usr/local/etc/pandora/pandora_server.conf
|
|
||||||
TMP_CRONTAB=/tmp/crontab.tmp
|
|
||||||
else
|
|
||||||
PANDORA_SPOOL=/var/spool/pandora
|
|
||||||
PANDORA_HOME=/usr/local/share/pandora_server
|
|
||||||
PANDORA_CFG_DIR=/usr/local/etc/pandora
|
|
||||||
PANDORA_LOG=/var/log/pandora
|
|
||||||
PANDORA_SERVER=/etc/rc.d/pandora_server
|
|
||||||
TENTACLE_SERVER=/etc/rc.d/tentacle_server
|
|
||||||
PANDORA_CFG_FILE=/usr/local/etc/pandora/pandora_server.conf
|
|
||||||
TMP_CRONTAB=/tmp/crontab.tmp
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Removing PERL libs"
|
|
||||||
rm -rf /usr/lib/perl5/PandoraFMS/
|
|
||||||
|
|
||||||
echo "Removing Pandora Servers"
|
|
||||||
rm -Rf $PANDORA_SPOOL/data_in/
|
|
||||||
|
|
||||||
echo "If the user Pandora is not being used for any other operations, please delete using the following commands:"
|
|
||||||
echo " rmuser pandora"
|
|
||||||
|
|
||||||
rm -Rf $PANDORA_LOG 2> /dev/null
|
|
||||||
rm -Rf $PANDORA_CFG_FILE 2> /dev/null
|
|
||||||
rm -Rf $PANDORA_SERVER 2> /dev/null
|
|
||||||
rm -Rf $PANDORA_HOME
|
|
||||||
rm -Rf $PANDORA_SERVER
|
|
||||||
rm -Rf $TENTACLE_SERVER
|
|
||||||
|
|
||||||
cat /etc/crontab | grep -v "Pandora FMS" | grep -v "pandora_db.pl" > $TMP_CRONTAB
|
|
||||||
cp $TMP_CRONTAB /etc/crontab
|
|
||||||
rm $TMP_CRONTAB
|
|
||||||
|
|
||||||
echo "Done"
|
|
||||||
exit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uninstall () {
|
uninstall () {
|
||||||
GET_DISTRO="`get_distro`"
|
set_global_vars
|
||||||
DISTRO=`echo $GET_DISTRO | cut -f 1 -d ":"`
|
|
||||||
if [ "`uname -s`" != "Linux" ]; then
|
if [ "$LINUX" != NO ] || [ "$DISTRO" != "FreeBSD" ] || [ "$DISTRO" != "NetBSD" ]
|
||||||
if [ "$DISTRO" = "FreeBSD" -o "$DISTRO" = "NetBSD" ]
|
|
||||||
then
|
then
|
||||||
uninstall_bsd
|
|
||||||
else
|
|
||||||
echo "This is not a Linux-based distro. Uninstaller is currently not working for your OS"
|
echo "This is not a Linux-based distro. Uninstaller is currently not working for your OS"
|
||||||
fi
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Removing PERL libs"
|
echo "Removing PERL libs and man files"
|
||||||
rm -rf /usr/lib/perl5/PandoraFMS/
|
|
||||||
|
PERL_SITELIB=/usr/lib/perl5
|
||||||
|
if [ "$DISTRO" != "FreeBSD" ] || [ "$DISTRO" != "NetBSD" ]
|
||||||
|
then
|
||||||
|
PERL_SITELIB=$(eval $($PERL -V:sitelib);echo $sitelib);
|
||||||
|
fi
|
||||||
|
PERL_SITEMAN3DIR=`eval \`$PERL -V:siteman3dir\`;echo $siteman3dir`;
|
||||||
|
|
||||||
|
[ -d $DESTDIR/$PERL_SITELIB/PandoraFMS ] && rm -rf $DESTDIR/$PERL_SITELIB/PandoraFMS
|
||||||
|
rm -f $DESTDIR/$PERL_SITEMAN3DIR/PandoraFMS::* 2>/dev/null
|
||||||
|
|
||||||
|
|
||||||
echo "Removing Pandora Servers"
|
echo "Removing Pandora Servers"
|
||||||
if [ -d $PANDORA_SPOOL/data_out ]; then
|
if [ -d $DESTDIR$PANDORA_SPOOL/data_out ]; then
|
||||||
rm -Rf $PANDORA_SPOOL/data_in
|
rm -Rf $DESTDIR$PANDORA_SPOOL/data_in
|
||||||
else
|
else
|
||||||
rm -Rf $PANDORA_SPOOL
|
rm -Rf $DESTDIR$PANDORA_SPOOL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "If the user Pandora is not being used for any other operations, please delete using the following commands:"
|
echo "If the user Pandora is not being used for any other operations, please delete using the following commands:"
|
||||||
|
if [ "$DISTRO" != "FreeBSD" ] || [ "$DISTRO" != "NetBSD" ]
|
||||||
|
then
|
||||||
|
echo " rmuser pandora"
|
||||||
|
else
|
||||||
echo " userdel pandora"
|
echo " userdel pandora"
|
||||||
echo " rm -Rf /home/pandora/"
|
echo " rm -Rf /home/pandora/"
|
||||||
|
fi
|
||||||
|
|
||||||
## Just to clarify here. Some people (like me) are using the pandora user
|
## Just to clarify here. Some people (like me) are using the pandora user
|
||||||
## for other purposes and/or using an LDAP-based user management
|
## for other purposes and/or using an LDAP-based user management
|
||||||
## I would hate to have a script clear out this users' information without any notification
|
## I would hate to have a script clear out this users' information without any notification
|
||||||
|
|
||||||
rm -Rf $PANDORA_LOG 2> /dev/null
|
|
||||||
rm -Rf $PANDORA_CFG_FILE 2> /dev/null
|
rm -Rf $DESTDIR$PANDORA_LOG 2> /dev/null
|
||||||
rm -Rf "$PANDORA_CFG_FILE.new" 2> /dev/null
|
rm -f $DESTDIR$PANDORA_CFG_FILE 2> /dev/null
|
||||||
rm -Rf $PANDORA_SERVER 2> /dev/null
|
rm -f "$DESTDIR$PANDORA_CFG_FILE.new" 2> /dev/null
|
||||||
rm -Rf /usr/bin/pandora_server 2> /dev/null
|
rm -f $DESTDIR$PANDORA_SERVER 2> /dev/null
|
||||||
rm -Rf /usr/bin/pandora_exec 2> /dev/null
|
rm -f $DESTDIR$PREFIX/bin/pandora_server 2> /dev/null
|
||||||
rm -Rf $PANDORA_HOME
|
rm -f $DESTDIR$PREFIX/bin/pandora_exec 2> /dev/null
|
||||||
rm -Rf /etc/cron.hourly/pandora_db
|
rm -f $DESTDIR$PREFIX/bin/tentacle_server 2> /dev/null
|
||||||
rm -Rf /etc/logrotate.d/pandora
|
rm -Rf $DESTDIR$PANDORA_HOME
|
||||||
if [ "$DISTRO" = "UBUNTU" ] || [ "$DISTRO" = "DEBIAN" ]
|
rm -f $DESTDIR/etc/cron.hourly/pandora_db
|
||||||
|
rm -f $DESTDIR/etc/logrotate.d/pandora
|
||||||
|
if [ "$DESTDIR" ]
|
||||||
|
then
|
||||||
|
# do nothing with "fakeroot" uninstallation
|
||||||
|
:
|
||||||
|
elif [ "$DISTRO" = "UBUNTU" ] || [ "$DISTRO" = "DEBIAN" ]
|
||||||
then
|
then
|
||||||
update-rc.d -f pandora_server remove
|
update-rc.d -f pandora_server remove
|
||||||
update-rc.d -f tentacle_serverd remove
|
update-rc.d -f tentacle_serverd remove
|
||||||
|
elif [ "$DISTRO" != "FreeBSD" ] || [ "$DISTRO" != "NetBSD" ]
|
||||||
|
then
|
||||||
|
TMP_CRONTAB=/tmp/crontab.tmp
|
||||||
|
egrep -v "Pandora FMS|pandora_db.pl" /etc/crontab > $TMP_CRONTAB
|
||||||
|
cp $TMP_CRONTAB /etc/crontab
|
||||||
|
rm $TMP_CRONTAB
|
||||||
fi
|
fi
|
||||||
rm -Rf /etc/rc2.d/S90pandora_server 2> /dev/null
|
rm -f $DESTDIR/etc/rc2.d/S90pandora_server 2> /dev/null
|
||||||
rm -Rf /etc/rc.d/rc3.d/S90pandora_server 2> /dev/null
|
rm -f $DESTDIR/etc/rc.d/rc3.d/S90pandora_server 2> /dev/null
|
||||||
rm -Rf /usr/share/man/man1/pandora_server.1.gz 2>/dev/null
|
rm -f $DESTDIR/etc/rc2.d/S80tentacle_serverd 2> /dev/null
|
||||||
rm -Rf /usr/share/man/man1/tentacle_server.1.gz 2>/dev/null
|
rm -f $DESTDIR/etc/rc.d/rc3.d/S80tentacle_serverd 2> /dev/null
|
||||||
|
rm -f $DESTDIR$MANDIR/pandora_server.1.gz 2>/dev/null
|
||||||
|
rm -f $DESTDIR$MANDIR/tentacle_server.1.gz 2>/dev/null
|
||||||
echo "Done"
|
echo "Done"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -595,24 +478,25 @@ help () {
|
||||||
echo " "
|
echo " "
|
||||||
echo " --force Ignore dependency problems and do the install"
|
echo " --force Ignore dependency problems and do the install"
|
||||||
echo " --no-tentacle Skip tentacle server installation (by default tentacle server installed)"
|
echo " --no-tentacle Skip tentacle server installation (by default tentacle server installed)"
|
||||||
|
echo " --destdir DIR Specify root directory for \"fakeroot\" installation"
|
||||||
echo " "
|
echo " "
|
||||||
}
|
}
|
||||||
|
|
||||||
# Script banner at start
|
# Script banner at start
|
||||||
echo " "
|
echo " "
|
||||||
echo "Pandora FMS 5.0 Server Installer (c) 2008-2013 Artica ST"
|
echo "Pandora FMS 5.1 Server Installer (c) 2008-2014 Artica ST"
|
||||||
echo "This program is licensed under GPL2 Terms. http://pandorafms.com"
|
echo "This program is licensed under GPL2 Terms. http://pandorafms.com"
|
||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
case "$MODE" in
|
case "$MODE" in
|
||||||
|
|
||||||
'--install')
|
'--install')
|
||||||
install
|
install "$@"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
|
|
||||||
'--uninstall')
|
'--uninstall')
|
||||||
uninstall
|
uninstall "$@"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue