# 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 http://snmp-info.sourceforge.net

    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