install netdisco on ubuntu from source

April 20, 2010

in linux,software

netdisco can be a pain… even just getting it to run…

I found some neat installation scripts for installing netdisco on some other linux flavors, but I prefer ubuntu. I took those scripts and quickly hammered out one that’s ubuntu-specific. It’s not as pretty, and doesn’t allow you to do as much config by responding to script questions, but it gets netdisco up and running. You’ll likely tweak the config files in ways that make full configuration through the installation script not worthwhile anyways.

I tested this on Ubuntu 10.04beta. Just copy it into a file (or click the download link), make it executable, and be sure to run as root.

Cheers!

download here

Preview:

# 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
 
# 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
 
# 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.0_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-8.4 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
 
# 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

{ 7 comments… read them below or add one }

max May 4, 2010 at 5:42 pm

nice work! mind if we include this in the next release?

Kelly Schuerman May 10, 2010 at 2:49 pm

Thanks for sharing. I found your script quite useful. The only things I needed to do in addition to running your script is chown www-data.www-data on /usr/local/netdisco/html and /usr/local/netdisco/mason

matt May 10, 2010 at 4:47 pm

@max: For sure! feel free to use anything you see here (a smidgen of credit is appreciated)

matt May 10, 2010 at 4:52 pm

@kelly: did you have any issues after changing ownership? i don’t have time to test at the moment, but i’ll add your suggestion in at the end of the script, just commented out for now… thanks!

Charles May 18, 2010 at 5:37 am

Hi Matt,

I just discovered that netdisco is available as package in Ubuntu 10.4. I still have to test it, but it looks like it will be easier to install using apt-get instead of scripting it.

matt May 18, 2010 at 8:36 am

Charles:
I believe netdisco has had an ubuntu package for a little while now. I do recall having issues with it though, and my focus here was being able to install the latest version from source. Have you had any luck with the package?
matt

anonymous coward May 19, 2010 at 8:01 am

Just wanted to thank you very much for the install.
I didn’t like how the Debian one was packaged, so I went with the src and your instructions.

Thanks,
A/C

Leave a Comment

Previous post: