alpha-quadrant/net-analyzer/centreon/centreon-2.0.1.ebuild
2009-03-13 09:50:10 +00:00

292 lines
7.0 KiB
Bash

# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/centreon/centreon-1.4.2.4.ebuild,v 1.3 2008/04/03 08:30:17 hollow Exp $
inherit depend.apache depend.php confutils
DESCRIPTION="Centreon is a monitoring web-frontend based on the nagios monitoring engine"
HOMEPAGE="http://www.oreon-project.org"
SRC_URI="http://download.oreon-project.org/${PN}/${P}.tar.gz"
# mirror://gentoo/${P}-path_sanity.patch.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="ldap"
DEPEND=""
RDEPEND=">=net-analyzer/nagios-2.10
net-analyzer/rrdtool
net-analyzer/net-snmp
net-analyzer/snmptt
app-admin/sudo
dev-php/PEAR-PEAR
dev-php/smarty
>=dev-php/PEAR-Auth_SASL-1.0.1
>=dev-php/PEAR-DB-1.7.6
>=dev-php/PEAR-DB_DataObject-1.8.4
>=dev-php/PEAR-DB_DataObject_FormBuilder-1.0.0_rc4
>=dev-php/PEAR-Date-1.4.6
>=dev-php/PEAR-HTML_Common-1.2.2
>=dev-php/PEAR-HTML_QuickForm-3.2.5
>=dev-php/PEAR-HTML_QuickForm_advmultiselect-1.1.0
>=dev-php/PEAR-HTML_Table-1.6.1
>=dev-php/PEAR-HTTP-1.2.2
>=dev-php/PEAR-Image_Canvas-0.2.4
>=dev-php/PEAR-Image_Color-1.0.2
>=dev-php/PEAR-Image_Graph-0.7.1
>=dev-php/PEAR-Image_GraphViz-1.1.0
>=dev-php/PEAR-MDB2-2.0.0
>=dev-php/PEAR-Mail-1.1.9
>=dev-php/PEAR-Mail_Mime-1.3.1
>=dev-php/PEAR-Net_Ping-2.4.1
>=dev-php/PEAR-Net_SMTP-1.2.8
>=dev-php/PEAR-Net_Socket-1.0.1
>=dev-php/PEAR-Net_Traceroute-0.21
>=dev-php/PEAR-Numbers_Roman-1.0.1
>=dev-php/PEAR-Numbers_Words-0.14.0
>=dev-php/PEAR-SOAP-0.10.1
>=dev-php/PEAR-Validate-0.6.2
dev-perl/Config-IniFiles
dev-perl/Crypt-DES
dev-perl/DBI
dev-perl/Digest-HMAC
dev-perl/Digest-SHA1
dev-perl/GD
dev-perl/IO-Socket-INET6
dev-perl/Net-SNMP
dev-perl/Socket6"
need_apache2
need_php5
setup_vars() {
INSTALL_DIR_OREON="/usr/share/centreon"
OREON_PATH=${INSTALL_DIR_OREON}
INSTALL_DIR_NAGIOS="/usr/share/nagios"
NAGIOS_ETC="/etc/nagios"
NAGIOS_VAR="/var/nagios"
NAGIOS_BIN="/usr/sbin/nagios"
NAGIOS_PLUGINS="/usr/lib/nagios/plugins"
NAGIOS_IMG="${INSTALL_DIR_NAGIOS}/htdocs/docs/images"
NAGIOS_USER="nagios"
NAGIOS_GROUP="nagios"
BIN_RRDTOOL="/usr/bin/rrdtool"
BIN_MAIL="/bin/mail"
WWWUSER=""
}
pkg_setup() {
confutils_require_built_with_all sys-devel/libperl ithreads
confutils_require_built_with_all dev-lang/perl ithreads
confutils_require_built_with_all net-analyzer/net-snmp perl
confutils_require_built_with_all net-analyzer/rrdtool perl
require_php_sapi_from apache2 cli
require_php_with_any_use gd gd-external
require_php_with_use mysql posix snmp truetype
use ldap && require_php_with_use ldap
setup_vars
}
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${WORKDIR}"/${P}-path_sanity.patch
}
varsubst() {
local path=$1
for var in "$@"; do
sed -i -e "s:@${var}@:$(eval echo \$${var}):g" "${D}${path}"
done
}
install_centreon() {
cd "${S}"
# copy www and doc files
insinto "${OREON_PATH}"
doins -r www
dosym /usr/nagios/share/htdocs "${OREON_PATH}"/doc
# sanitize file modes
find "${D}${OREON_PATH}" -type d -exec chmod 755 {} \;
find "${D}${OREON_PATH}" -type f -exec chmod 644 {} \;
# keep important directories
keepdir "${OREON_PATH}"/www/modules
keepdir /var/log/centreon
keepdir /var/cache/centreon/rrd
keepdir /var/cache/centreon/smarty/{cache,config,compile}
keepdir /var/cache/centreon/generate/{nagiosCFG,osm}
keepdir /var/cache/centreon/upload/nagiosCFG
# prepare SQL files
varsubst "${OREON_PATH}"/www/install/insertBaseConf.sql \
NAGIOS_{USER,GROUP,ETC,BIN,VAR,PLUGINS,IMG} \
INSTALL_DIR_NAGIOS INSTALL_DIR_OREON \
BIN_RRDTOOL BIN_MAIL
varsubst "${OREON_PATH}"/www/install/createTablesODS.sql \
NAGIOS_VAR
# fix paths in php files
varsubst "${OREON_PATH}"/www/include/configuration/configCGI/formCGI.php \
NAGIOS_ETC INSTALL_DIR_NAGIOS
varsubst "${OREON_PATH}"/www/include/options/oreon/upGrade/preUpdate.php \
OREON_PATH
# install ${WWWUSER} config
insinto "${APACHE_MODULES_CONFDIR}"
doins "${FILESDIR}"/99_centreon.conf
# install global installation config
insinto "${OREON_PATH}"/www/install
doins "${FILESDIR}"/installoreon.conf.php
# set permissions
fowners -R ${WWWUSER}:${WWWUSER} \
/var/cache/centreon \
"${OREON_PATH}"/www
fowners -R nagios:${WWWUSER} \
/var/log/centreon
}
install_plugins() {
cd "${S}"
# install plugin configuration
insinto /etc/centreon
doins ./Plugins/src/centreon.conf
rm -f ./Plugins/src/centreon.conf
varsubst /etc/centreon/centreon.conf \
INSTALL_DIR_NAGIOS INSTALL_DIR_OREON \
NAGIOS_ETC NAGIOS_PLUGINS
fowners -R ${WWWUSER}:${WWWUSER} \
/etc/centreon
# install nagios plugins
exeinto "${NAGIOS_PLUGINS}"
for plugin in ./Plugins/src/*; do
if [[ ! -d "${plugin}" ]]; then
doexe "${plugin}"
varsubst "${NAGIOS_PLUGINS}/$(basename "${plugin}")" \
NAGIOS_PLUGINS NAGIOS_VAR
fi
done
}
install_traps() {
cd "${S}"
# install snmp traps plugins
dodir "${NAGIOS_PLUGINS}"/traps
dodir /etc/snmp/centreon
exeinto "${NAGIOS_PLUGINS}"/traps/
doexe Plugins/src/traps/plugins/*
# install snmp configs
insinto /etc/snmp/centreon
doins Plugins/src/traps/conf/snmptt.ini
fowners -R ${WWWUSER}:nagios /etc/snmp/centreon
insinto /etc/snmp/
doins Plugins/src/traps/conf/snmp.conf
}
install_ods() {
cd "${S}"
# install ODS daemon
insinto /usr
dosbin ODS/ods
# install ODS library files
insinto /usr/lib/ods
doins ODS/lib/*
# install ODS init script
newinitd "${FILESDIR}"/ods.initd ods
# keep important directories
keepdir /etc/ods
keepdir /var/run/ods
keepdir /var/log/ods
keepdir /var/lib/ods
keepdir /var/lib/ods/database
# set permissions
fowners -R nagios:nagios \
/var/run/ods \
/var/log/ods \
/var/lib/ods/database
fowners -R ${WWWUSER}:nagios /etc/ods
}
install_cron() {
cd "${S}"
insinto "${OREON_PATH}"
doins -r cron
fperms +x "${OREON_PATH}"/cron/*.{pl,php}
for i in $(find cron/ -type f); do
varsubst "${OREON_PATH}"/${i} OREON_PATH
done
insinto /etc/cron.d
newins "${FILESDIR}"/centreon.cron centreon
}
src_install() {
install_centreon
install_plugins
install_traps
install_ods
install_cron
}
pkg_config() {
setup_vars
einfo "Setting permissions on ${ROOT}${NAGIOS_ETC}"
chown ${WWWUSER}:nagios "${ROOT}${NAGIOS_ETC}"
chmod 0775 "${ROOT}${NAGIOS_ETC}"
einfo "Setting permissions on ${ROOT}${NAGIOS_PLUGINS}"
chown ${WWWUSER}:nagios "${ROOT}${NAGIOS_PLUGINS}"
chmod 0775 "${ROOT}${NAGIOS_PLUGINS}"
einfo "Setting permissions on ${ROOT}${NAGIOS_PLUGINS}/contrib"
chown ${WWWUSER}:nagios "${ROOT}${NAGIOS_PLUGINS}"/contrib
chmod 0775 "${ROOT}${NAGIOS_PLUGINS}"/contrib
einfo "Adding user ${WWWUSER} to group nagios"
usermod -a -G nagios ${WWWUSER}
SUDOERS="${ROOT}etc/sudoers"
if ! grep -q CENTREON "${SUDOERS}"; then
einfo "Adding sudo configuration"
echo >> "${SUDOERS}"
echo "# centreon configuration" >> "${SUDOERS}"
echo "User_Alias CENTREON=${WWWUSER}" >> "${SUDOERS}"
echo "CENTREON ALL = NOPASSWD: /etc/init.d/nagios restart" >> "${SUDOERS}"
echo "CENTREON ALL = NOPASSWD: /etc/init.d/nagios reload" >> "${SUDOERS}"
echo "CENTREON ALL = NOPASSWD: /etc/init.d/snmptrapd restart" >> "${SUDOERS}"
fi
}