Select Git revision
rssfeeds.py
-
Dustyn Gibson authored
Set user agent in feedcache/feedparser Better logging in generic provider Fix typo in scene_numbering ( Thanks @thezoggy ) Fix some paths in tests, and fix some status'/db structures in tests. Also commit to db between tests.
Dustyn Gibson authoredSet user agent in feedcache/feedparser Better logging in generic provider Fix typo in scene_numbering ( Thanks @thezoggy ) Fix some paths in tests, and fix some status'/db structures in tests. Also commit to db between tests.
install.sh 14.16 KiB
#!/bin/bash
#----
## @Synopsis Install Script for Centreon project
## @Copyright Copyright 2008, Guillaume Watteeux
## @License GPL : http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
## Centreon Install Script
## Use
## <pre>
## Usage: bash install.sh [OPTION]
## Options:
## -f Input file with all variables define (use for with template)
## -u Input file with all variables define for update centreon
## -v Verbose mode
## -h print usage
## </pre>
#----
###################################################################
# Centreon is developped with GPL Licence 2.0
#
# GPL License: http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
#
# Developped by : Julien Mathis - Romain Le Merlus
# Contribute : Guillaume Watteeux - Maximilien Bersoult
#
###################################################################
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# For information : infos@centreon.com
####################################################################
#
# SVN: $URL$
# SVN: $Rev: 11632 $
# SVN: $Author$
# SVN: $Date: 2011-02-08 18:04:05 +0100 (mar., 08 févr. 2011) $
# SVN $Id$
#
#
# Todo list
# - upgrade process
# -- 1.x --> 2.x
# -- 2.x --> 2.x+1
# -- on upgrade, overwrite existing ? backup ?
# Define centreon version
version="2.8.17"
# Debug
#set -x
#----
## Usage informations for install.sh
## @Sdtout Usage informations
#----
function usage() {
local program=$0
echo -e "$(gettext "Usage: $program -f <file>")"
echo -e " -i\t$(gettext "install centreon")"
echo -e " -f\t$(gettext "file with all variable")"
echo -e " -u\t$(gettext "upgrade centreon with specify your directory with instCent* files")"
echo -e " -v\t$(gettext "verbose mode")"
exit 1
}
# define where is a centreon source
BASE_DIR=$(dirname $0)
## set directory
BASE_DIR=$( cd $BASE_DIR; pwd )
export BASE_DIR
if [ -z "${BASE_DIR#/}" ] ; then
echo -e "I think it is not right to have Centreon source on slash"
exit 1
fi
INSTALL_DIR="$BASE_DIR/libinstall"
export INSTALL_DIR
INSTALL_VARS_DIR="$BASE_DIR/varinstall"
export INSTALL_VARS_DIR
PERL_LIB_DIR=`eval "\`perl -V:installvendorlib\`"; echo $installvendorlib`
# for freebsd
if [ "$PERL_LIB_DIR" = "" -o "$PERL_LIB_DIR" = "UNKNOWN" ]; then
PERL_LIB_DIR=`eval "\`perl -V:installsitelib\`"; echo $installsitelib`
fi
# define a locale directory for use gettext (LC_MESSAGE)
TEXTDOMAINDIR=$BASE_DIR/locale
export TEXTDOMAINDIR
TEXTDOMAIN=install.sh
export TEXTDOMAIN
# init variables
line="------------------------------------------------------------------------"
export line
## log default vars
. $INSTALL_VARS_DIR/vars
## Test if gettext was installed
# I use PATH variable to find
found="0"
OLDIFS="$IFS"
IFS=:
for p in $PATH ; do
[ -x "$p/gettext" ] && found="1"
done
IFS=$OLDIFS
if [ $found -eq 1 ] ; then
. $INSTALL_DIR/gettext.sh
else
# if not, use my gettext dummy :p
PATH="$PATH:$INSTALL_DIR"
fi
## load all functions used in this script
. $INSTALL_DIR/functions
## Use TRAPs to call clean_and_exit when user press
## CRTL+C or exec kill -TERM.
trap clean_and_exit SIGINT SIGTERM
## Define a default log file
LOG_FILE=${LOG_FILE:=log\/install_centreon.log}
## Valid if you are root
if [ "${FORCE_NO_ROOT:-0}" -ne 0 ]; then
USERID=$(id -u)
if [ "$USERID" != "0" ]; then
echo -e "$(gettext "You must exec with root user")"
exit 1
fi
fi
_tmp_install_opts="0"
silent_install="0"
upgrade="0"
user_install_vars=""
inst_upgrade_dir=""
use_upgrade_files="0"
#define cinstall options
cinstall_opts=""
## Getopts :)
# When you use options, by default I set silent_install to 1.
while getopts "if:u:hv" Options
do
case ${Options} in
i ) silent_install="0"
_tmp_install_opts="1"
;;
f ) silent_install="1"
user_install_vars="${OPTARG}"
_tmp_install_opts="1"
;;
u ) silent_install="1"
inst_upgrade_dir="${OPTARG%/}"
cinstall_opts="$cinstall_opts -f"
upgrade="1"
_tmp_install_opts="1"
;;
v ) cinstall_opts="$cinstall_opts -v"
# need one variable to parse debug log
;;
\?|h) usage ; exit 0 ;;
* ) usage ; exit 1 ;;
esac
done
if [ "$_tmp_install_opts" -eq 0 ] ; then
usage
exit 1
fi
#Export variable for all programs
export silent_install user_install_vars CENTREON_CONF cinstall_opts inst_upgrade_dir
## init LOG_FILE
# backup old log file...
[ ! -d "$LOG_DIR" ] && mkdir -p "$LOG_DIR"
if [ -e "$LOG_FILE" ] ; then
mv "$LOG_FILE" "$LOG_FILE.`date +%Y%m%d-%H%M%S`"
fi
# Clean (and create) my log file
${CAT} << __EOL__ > "$LOG_FILE"
__EOL__
# Init GREP,CAT,SED,CHMOD,CHOWN variables
define_specific_binary_vars
${CAT} << __EOT__
###############################################################################
# #
# Centreon (www.centreon.com) #
# Thanks for using Centreon #
# #
# v$version #
# #
# infos@centreon.com #
# #
# Make sure you have installed and configured #
# sudo - sed - php - apache - rrdtool - mysql #
# #
###############################################################################
__EOT__
## Test all binaries
BINARIES="rm cp mv ${CHMOD} ${CHOWN} echo more mkdir find ${GREP} ${CAT} ${SED}"
echo "$line"
echo -e "\t$(gettext "Checking all needed binaries")"
echo "$line"
binary_fail="0"
# For the moment, I check if all binary exists in path.
# After, I must look a solution to use complet path by binary
for binary in $BINARIES; do
if [ ! -e ${binary} ] ; then
pathfind "$binary"
if [ "$?" -eq 0 ] ; then
echo_success "${binary}" "$ok"
else
echo_failure "${binary}" "$fail"
log "ERR" "$(gettext "\$binary not found in \$PATH")"
binary_fail=1
fi
else
echo_success "${binary}" "$ok"
fi
done
# Script stop if one binary wasn't found
if [ "$binary_fail" -eq 1 ] ; then
echo_info "$(gettext "Please check fail binary and retry")"
exit 1
fi
# When you exec this script without file, you must valid a GPL licence.
if [ "$silent_install" -ne 1 ] ; then
echo -e "\n$(gettext "You will now read Centreon Licence.\\n\\tPress enter to continue.")"
read
tput clear
more "$BASE_DIR/LICENSE"
yes_no_default "$(gettext "Do you accept GPL license ?")"
if [ "$?" -ne 0 ] ; then
echo_info "$(gettext "You do not agree to GPL license ? Okay... have a nice day.")"
exit 1
else
log "INFO" "$(gettext "You accepted GPL license")"
fi
else
if [ "$upgrade" -eq 0 ] ; then
. $user_install_vars
fi
fi
if [ "$upgrade" -eq 1 ] ; then
# Test if instCent* file exist
if [ "$(ls $inst_upgrade_dir/instCent* | wc -l )" -ge 1 ] ; then
inst_upgrade_dir=${inst_upgrade_dir%/}
echo "$line"
echo -e "\t$(gettext "Detecting old installation")"
echo "$line"
echo_success "$(gettext "Finding configuration file in:") $inst_upgrade_dir" "$ok"
log "INFO" "$(gettext "Old configuration found in ") $(ls $inst_upgrade_dir/instCent*)"
echo_info "$(gettext "You seem to have an existing Centreon.")\n"
yes_no_default "$(gettext "Do you want to use the last Centreon install parameters ?")" "$yes"
if [ "$?" -eq 0 ] ; then
echo_passed "\n$(gettext "Using: ") $(ls $inst_upgrade_dir/instCent*)"
use_upgrade_files="1"
fi
fi
fi
if [ "$silent_install" -ne 1 ] ; then
echo "$line"
echo -e "\t$(gettext "Please choose what you want to install")"
echo "$line"
fi
## init install process
# I prefer split install script.
# 0 = do not install
# 1 = install
# 2 = question in console
[ -z $PROCESS_CENTREON_WWW ] && PROCESS_CENTREON_WWW="2"
## For a moment, isn't possible to install standalone CentStorage daemon
## without CentWeb
[ -z $PROCESS_CENTSTORAGE ] && PROCESS_CENTSTORAGE="0"
[ -z $PROCESS_CENTCORE ] && PROCESS_CENTCORE="2"
[ -z $PROCESS_CENTREON_PLUGINS ] && PROCESS_CENTREON_PLUGINS="2"
[ -z $PROCESS_CENTREON_SNMP_TRAPS ] && PROCESS_CENTREON_SNMP_TRAPS="2"
## install centreon perl lib
if [ ! -d "$PERL_LIB_DIR/centreon/" ] ; then
mkdir "$PERL_LIB_DIR/centreon/"
log "INFO" "$(gettext "Created perl library directory")"
fi
## resquest centreon_www
if [ "$PROCESS_CENTREON_WWW" -eq 2 ] ; then
yes_no_default "$(gettext "Do you want to install") : Centreon Web Front"
if [ "$?" -eq 0 ] ; then
PROCESS_CENTREON_WWW="1"
log "INFO" "$(gettext "You chose to install") : Centreon Web Front"
## CentStorage dependency
PROCESS_CENTSTORAGE="1"
fi
fi
## resquest centreon_centcore
if [ "$PROCESS_CENTCORE" -eq 2 ] ; then
yes_no_default "$(gettext "Do you want to install") : Centreon CentCore"
if [ "$?" -eq 0 ] ; then
PROCESS_CENTCORE="1"
log "INFO" "$(gettext "You chose to install") : Centreon CentCore"
fi
fi
## resquest centreon_plugins
if [ "$PROCESS_CENTREON_PLUGINS" -eq 2 ] ; then
yes_no_default "$(gettext "Do you want to install") : Centreon Nagios Plugins"
if [ "$?" -eq 0 ] ; then
PROCESS_CENTREON_PLUGINS="1"
log "INFO" "$(gettext "You chose to install") : Centreon Nagios Plugins"
fi
fi
## resquest centreon_snmp_traps
if [ "$PROCESS_CENTREON_SNMP_TRAPS" -eq 2 ] ; then
yes_no_default "$(gettext "Do you want to install") : CentreonTrapd process"
if [ "$?" -eq 0 ] ; then
PROCESS_CENTREON_SNMP_TRAPS="1"
log "INFO" "$(gettext "You chose to install") : CentreonTrapd process"
fi
fi
## Start Centreon Web Front install
if [ "$PROCESS_CENTREON_WWW" -eq 1 ] ; then
if [ "$use_upgrade_files" -eq 1 -a -e "$inst_upgrade_dir/instCentWeb.conf" ] ; then
log "INFO" "$(gettext "Load variables:") $inst_upgrade_dir/instCentWeb.conf"
. $inst_upgrade_dir/instCentWeb.conf
if [ -n "$NAGIOS_USER" ]; then
echo_info "$(gettext "Convert variables for upgrade:")"
MONITORINGENGINE_USER=$NAGIOS_USER
[ -n "$NAGIOS_GROUP" ] && MONITORINGENGINE_GROUP=$NAGIOS_GROUP
[ -n "$NAGIOS_ETC" ] && MONITORINGENGINE_ETC=$NAGIOS_ETC
[ -n "$NAGIOS_BINARY" ] && MONITORINGENGINE_BINARY=$NAGIOS_BINARY
[ -n "$NAGIOS_INIT_SCRIPT" ] && MONITORINGENGINE_INIT_SCRIPT=$NAGIOS_INIT_SCRIPT
fi
fi
. $INSTALL_DIR/CentWeb.sh
fi
## Start CentStorage install
if [ "$PROCESS_CENTSTORAGE" -eq 1 ] ; then
if [ "$use_upgrade_files" -eq 1 -a -e "$inst_upgrade_dir/instCentStorage.conf" ] ; then
log "INFO" "$(gettext "Load variables:") $inst_upgrade_dir/instCentStorage.conf"
. $inst_upgrade_dir/instCentStorage.conf
if [ -n "$NAGIOS_USER" ]; then
echo_info "$(gettext "Convert variables for upgrade:")"
MONITORINGENGINE_USER=$NAGIOS_USER
[ -n "$NAGIOS_GROUP" ] && MONITORINGENGINE_GROUP=$NAGIOS_GROUP
fi
fi
. $INSTALL_DIR/CentStorage.sh
fi
## Start CentCore install
if [ "$PROCESS_CENTCORE" -eq 1 ] ; then
if [ "$use_upgrade_files" -eq 1 -a -e "$inst_upgrade_dir/instCentCore.conf" ] ; then
log "INFO" "$(gettext "Load variables:") $inst_upgrade_dir/instCentCore.conf"
. $inst_upgrade_dir/instCentCore.conf
if [ -n "$NAGIOS_USER" ]; then
echo_info "$(gettext "Convert variables for upgrade:")"
MONITORINGENGINE_USER=$NAGIOS_USER
[ -n "$NAGIOS_GROUP" ] && MONITORINGENGINE_GROUP=$NAGIOS_GROUP
[ -n "$NAGIOS_ETC" ] && MONITORINGENGINE_ETC=$NAGIOS_ETC
fi
fi
. $INSTALL_DIR/CentCore.sh
fi
## Start CentPlugins install
if [ "$PROCESS_CENTREON_PLUGINS" -eq 1 ] ; then
if [ "$use_upgrade_files" -eq 1 -a -e "$inst_upgrade_dir/instCentPlugins.conf" ] ; then
log "INFO" "$(gettext "Load variables:") $inst_upgrade_dir/instCentPlugins.conf"
. $inst_upgrade_dir/instCentPlugins.conf
if [ -n "$NAGIOS_USER" ]; then
echo_info "$(gettext "Convert variables for upgrade:")"
MONITORINGENGINE_USER=$NAGIOS_USER
[ -n "$NAGIOS_GROUP" ] && MONITORINGENGINE_GROUP=$NAGIOS_GROUP
[ -n "$NAGIOS_ETC" ] && MONITORINGENGINE_ETC=$NAGIOS_ETC
[ -n "$NAGIOS_PLUGIN" ] && PLUGIN_DIR=$NAGIOS_PLUGIN
fi
fi
. $INSTALL_DIR/CentPlugins.sh
fi
## Start CentPluginsTraps install
if [ "$PROCESS_CENTREON_SNMP_TRAPS" -eq 1 ] ; then
if [ "$use_upgrade_files" -eq 1 -a -e "$inst_upgrade_dir/instCentPlugins.conf" ] ; then
log "INFO" "$(gettext "Load variables:") $inst_upgrade_dir/instCentPlugins.conf"
. $inst_upgrade_dir/instCentPlugins.conf
if [ -n "$NAGIOS_USER" ]; then
echo_info "$(gettext "Convert variables for upgrade:")"
MONITORINGENGINE_USER=$NAGIOS_USER
[ -n "$NAGIOS_GROUP" ] && MONITORINGENGINE_GROUP=$NAGIOS_GROUP
[ -n "$NAGIOS_ETC" ] && MONITORINGENGINE_ETC=$NAGIOS_ETC
[ -n "$NAGIOS_PLUGIN" ] && PLUGIN_DIR=$NAGIOS_PLUGIN
fi
fi
. $INSTALL_DIR/CentPluginsTraps.sh
fi
## Purge working directories
purge_centreon_tmp_dir "silent"
server=$(hostname -f)
${CAT} << __EOT__
###############################################################################
# #
# Go to the URL : http://$server/centreon/ #
# to finish the setup #
# #
# Report bugs at https://github.com/centreon/centreon/issues #
# #
# Thanks for using Centreon. #
# ----------------------- #
# Contact : infos@centreon.com #
# http://www.centreon.com #
# #
###############################################################################
__EOT__
exit 0