# courtesy of http://www.mattvsworld.com
# This script will install Netdisco on an Ubuntu system
# using apache2 and mod_perl2.
# UNSUPPORTED - Please use at your own risk.
# Parts of this script were inspired by another script contributed by Kaven Rousseau and was modified for CentOS by Walter Gould:
# http://www.auburn.edu/~gouldwp/netdisco/
# Note: - this script should be run as root (sudo ./install_netdisco_ubuntu.sh)
# - you may STILL need to make modifications to netdisco.conf and netdisco.crontab to make it work on your network
# - you will likely also want to run the following after installation:
# /usr/local/netdisco/netdisco -r [your central network device]
# /usr/local/netdisco/netdisco -m
# /usr/local/netdisco/netdisco -g
# Switch user to root
Su
Password:******
# install required packages
apt-get install postgresql apache2 graphviz libnet-snmp-perl libapache2-mod-perl2 libapache-session-wrapper-perl libhtml-mason-perl libdbd-pg-perl libgraphviz-perl libio-zlib-perl libapache2-request-perl libnet-nbname-perl libsnmp-info-perl libapache-dbi-perl libmasonx-request-withapachesession-perl libparallel-forkmanager-perl libgraph-perl
# Install SNMP::Info
Download newest version from
tar xvfz SNMP-Info-2.x.tar.gz
cd SNMP-Info-2.x
perl Makefile.PL
make install
# get/extract netdisco source
wget http://downloads.sourceforge.net/project/netdisco/netdisco/1.0/netdisco-1.0_with_mibs.tar.gz?use_mirror=iweb
tar xzvf netdisco-1.1_with_mibs.tar.gz
# move to /usr/local/netdisco
mkdir -p /usr/local/netdisco
mv netdisco-1.0/* /usr/local/netdisco
# ensure needed directories
sudo mkdir -p /usr/local/netdisco/data/logs
# create netdisco user
useradd -d /usr/local/netdisco netdisco
chown -R netdisco:netdisco /usr/local/netdisco
# ensure apache modules enabled
a2enmod perl
a2enmod apreq
# alter postgres config
mv /etc/postgresql/8.4/main/pg_hba.conf /etc/postgresql/8.4/main/pg_hba.conf.orig
cat /etc/postgresql/8.4/main/pg_hba.conf.orig | sed "s/# TYPE DATABASE USER CIDR-ADDRESS METHOD/# TYPE DATABASE USER CIDR-ADDRESS METHOD\n# netdisco\nlocal sameuser netdisco trust/g" > /etc/postgresql/8.4/main/pg_hba.conf
# restart postgres
/etc/init.d/postgresql restart
# set up db
/usr/local/netdisco/sql/pg --init
# set up crontab
crontab -u netdisco /usr/local/netdisco/netdisco.crontab
# set up daemon
ln -s /usr/local/netdisco/bin/netdisco_daemon /etc/init.d/netdisco
update-rc.d netdisco defaults
# add apache config
echo "Include /usr/local/netdisco/netdisco_apache.conf" > /etc/apache2/conf.d/netdisco.conf
echo "Include /usr/local/netdisco/netdisco_apache_dir.conf" >> /etc/apache2/conf.d/netdisco.conf
# restart apache
/etc/init.d/apache2 restart
# create first admin user
/usr/local/netdisco/netdisco -u admin
Enter new password for admin [no change]: ******
Give administrator Port Control [no change]? yes
Give administrator Admin Rights [no change]? yes
User Full Name [none]? yes
# init oui data
#curdir = `pwd`
cd /usr/local/netdisco
make oui
#cd $curdir
# per Kelly Schuerman's comments on mattvsworld.com (thanks!):
# uncomment the next two lines to set ownership of front-end files to www-data:www-data
#chown -R www-data:www-data /usr/local/netdisco/html
#chown -R www-data:www-data /usr/local/netdisco/mason
# start up front end
/etc/init.d/netdisco start