# Pandora FMS 2.0 Server Installer (c) 2008 Manuel Arostegui # Please see http://www.pandorafms.com # This code is licensed under GPL 2.0 license. # ********************************************************************** #!/bin/bash MODE=$1 install () { perl Makefile.PL > output 2>&1 #&& sleep 2 && cat output | grep "found" | wc -l DEPENDENCIAS=`cat output | grep "found" | wc -l` if [ $DEPENDENCIAS -gt 0 ] then echo "You are missing the following dependencies" echo " " cat output | awk -F ": prerequisite" '{print $2}' | awk -F " " '{print $1}' echo "The complete installation guide is at: "http://www.openideas.info/wiki/index.php?title=Pandora_2.0:Documentation_en:Install_Server#Pandora_FMS_Server_installation" " echo " " echo "Debian-based distribution do:" echo " $ apt-get install libdate-manip-perl snmp snmpd libsnmp-perl libtime-format-perl libxml-simple-perl libnetaddr-ip-perl libdbi-perl libxml-simple-perl libnetaddr-ip-perl libhtml-parser-perl wmi-client xprobe2 libmail-sendmail-perl" echo " " echo "RedHat-based distribution do" echo " " echo " $ yum perl-XML-SAX* perl-Tie* perl-XML-Simple* perl-DateManip* perl-IO-Socket* perl-Time-modules* perl-NetAddr-IP* perl-GD* perl-DateTime* perl-ExtUtils" echo " " echo "To get it from source through CPAN do" echo " " echo " $ cpan Digest::MD5 Time::Local DBI threads threads::shared IO::Socket Time::HiRes Time::Format Net::Ping NetAddr::IP Mail::Sendmail Net::Traceroute::PurePerl HTML::Entities" echo " " rm output else make make install mkdir /var/spool/pandora mkdir /var/spool/pandora/data_in id pandora if [ $? -eq 0 ]; then echo " " echo "User pandora does exist, make sure the SSH directories are correct" else useradd pandora mkdir /home/pandora mkdir /home/pandora/.ssh chown -R pandora /home/pandora fi mkdir /var/log/pandora chown pandora:wheel /var/spool/pandora/data_in > /dev/null 2>&1 || chown pandora:root /var/spool/pandora/data_in chmod 770 /var/spool/pandora/data_in mkdir /etc/pandora if [ -e /etc/pandora/pandora_server.conf ]; then echo "Old installation detected, backing up pandora_server.conf" mv /etc/pandora/pandora_server.conf /etc/pandora/pandora_server.conf.bak fi cp conf/pandora_server.conf /etc/pandora/ chmod 770 /etc/pandora/pandora_server.conf if [ "`uname -s`" != "Linux" ]; then echo "This is not a Linux-based distro. The installer will not create files for automatic startup." echo "Copying the binaries into /usr/local/bin" cp pandora_* /usr/local/bin rm /usr/local/bin/pandora_server_installer else cp pandora_* /etc/init.d/ rm /etc/init.d/pandora_server_installer ln -s /etc/init.d/pandora_server /etc/rc2.d/S90pandora_server ln -s /etc/init.d/pandora_recon /etc/rc2.d/S90pandora_recon ln -s /etc/init.d/pandora_network /etc/rc2.d/S90pandora_network ln -s /etc/init.d/pandora_snmpconsole /etc/rc2.d/S90pandora_snmpconsole ln -s /etc/init.d/pandora_plugin /etc/rc2.d/S90pandora_plugin ln -s /etc/init.d/pandora_prediction /etc/rc2.d/S90pandora_prediction ln -s /etc/init.d/pandora_wmi /etc/rc2.d/S90pandora_wmi fi if [ -e /usr/local/bin/pandora_server ] then ln -s /usr/local/bin/pandora_server /usr/bin/pandora_server ln -s /usr/local/bin/pandora_snmpconsole /usr/bin/pandora_snmpconsole ln -s /usr/local/bin/pandora_recon /usr/bin/pandora_recon ln -s /usr/local/bin/pandora_network /usr/bin/pandora_network ln -s /usr/local/bin/pandora_prediction /usr/bin/pandora_prediction ln -s /usr/local/bin/pandora_plugin /usr/bin/pandora_plugin ln -s /usr/local/bin/pandora_wmi /usr/bin/pandora_wmi else ln -s /usr/bin/pandora_server /usr/local/bin/pandora_server ln -s /usr/bin/pandora_network /usr/local/bin/pandora_network ln -s /usr/bin/pandora_recon /usr/local/bin/pandora_recon ln -s /usr/bin/pandora_plugin /usr/local/bin/pandora_plugin ln -s /usr/bin/pandora_prediction /usr/local/bin/pandora_prediction ln -s /usr/bin/pandora_snmpconsole /usr/local/bin/pandora_snmpconsole ln -s /usr/bin/pandora_wmi /usr/local/bin/pandora_wmi fi mkdir /usr/share/pandora cp -R util /usr/share/pandora if [ -d /etc/cron.daily ] then echo "#!/bin/bash" > /etc/cron.daily/pandora_purge_db echo "perl /usr/share/pandora/util/pandora_db.pl /etc/pandora/pandora_server.conf" >> /etc/cron.daily/pandora_purge_db chmod +x /etc/cron.daily/pandora_purge_db else echo "You're probably not using cron for automatic scheduling. You should schedule the following command to run frequently (daily) on your master server:" echo " perl /usr/share/pandora/util/pandora_db.pl /etc/pandora/pandora_server.conf" fi rm output fi } uninstall () { if [ "`uname -s`" != "Linux" ]; then echo "This is not a Linux-based distro. Uninstaller is currently not working for your OS" fi echo "Removing Pandora Servers" rm -Rf /var/spool/pandora/data_in/ echo "If the user Pandora is not being used for any other operations, please delete using the following commands:" echo " userdel pandora" echo " rm -Rf /home/pandora/" ## Just to clarify here. Some people (like me) are using the pandora user 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 rm -Rf /var/log/pandora/ 2> /dev/null rm -Rf /etc/pandora/pandora_server.conf 2> /dev/null rm -Rf /etc/init.d/pandora_server 2> /dev/null rm -Rf /etc/init.d/pandora_network 2> /dev/null rm -Rf /etc/init.d/pandora_recon 2> /dev/null rm -Rf /etc/init.d/pandora_snmpconsole 2> /dev/null rm -Rf /etc/init.d/pandora_prediction 2> /dev/null rm -Rf /etc/init.d/pandora_wmi 2> /dev/null rm -Rf /etc/init.d/pandora_plugin 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_server 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_recon 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_network 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_snmpconsole 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_wmi 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_prediction 2> /dev/null rm -Rf /etc/rc2.d/S90pandora_plugin 2> /dev/null rm -Rf /usr/local/bin/pandora_server 2> /dev/null rm -Rf /usr/local/bin/pandora_snmpconsole 2> /dev/null rm -Rf /usr/local/bin/pandora_recon 2> /dev/null rm -Rf /usr/local/bin/pandora_network 2> /dev/null rm -Rf /usr/local/bin/pandora_wmi 2> /dev/null rm -Rf /usr/local/bin/pandora_prediction 2> /dev/null rm -Rf /usr/local/bin/pandora_plugin 2> /dev/null rm -Rf /usr/bin/pandora_wmi 2> /dev/null rm -Rf /usr/bin/pandora_server 2> /dev/null rm -Rf /usr/bin/pandora_snmpconsole 2> /dev/null rm -Rf /usr/bin/pandora_recon 2> /dev/null rm -Rf /usr/bin/pandora_network 2> /dev/null rm -Rf /usr/bin/pandora_prediction 2> /dev/null rm -Rf /usr/bin/pandora_plugin 2> /dev/null rm -Rf /usr/share/pandora rm -Rf /etc/cron.daily/pandora_purge_db echo "Done" } help () { echo " --install To install Pandora FMS Servers on this system (You have to be root)" echo " --uninstall To uninstall and remove Pandora FMS Servers on this System" echo " " } # Script banner at start echo " " echo "Pandora FMS 2.0 Server Installer (c) 2008 Manuel Arostegui" echo "This program is licensed under GPL2 Terms. http://pandora.sourceforge.net" echo " " case "$MODE" in '--install') install exit ;; '--uninstall') uninstall exit ;; *) help esac