#!/bin/sh # script de mise à jour de la config' de FusionInventory # syntaxe : auf-inventaire-config [] DEFAULT_FILE="/etc/default/fusioninventory-agent" CONFIG_FILE="/etc/fusioninventory/agent.cfg" TAG_FILE="/etc/fusioninventory/tag" config_help() { cat << __EOF__ Attention : vous devez configurer un code d'inventaire ! Pour ce faire, utilisez la commande suivante : auf-inventaire-config PPn-Ixxxx où PPn est le code d'implantation et Ixxxx est le numéro d'inventaire. (note : cette commande est à lancer sous root, ou via sudo) Exemple pour un portable à Montréal : auf-inventaire-config CA1-I1359 Exemple pour un serveur à Danang : auf-inventaire-config VN2-I1014 __EOF__ } update_file() { file="$1" ; line="$2" grep -q -x "${line}" "${file}" && return left_part="`echo "${line}" | cut -d'=' -f1`=" sed -i "/^${left_part}/s/^/#/" "${file}" echo "${line}" >> "${file}" } # # traitement de l'option de tag par défaut # if [ "$1" = "-d" -o "$1" = "--default-tag" ] ; then default_tag="$2" shift 2 else default_tag="" fi # # récupération du tag (fourni ou sauvé) # need_config="no" if [ -n "$1" ] ; then # tag fourni en ligne de commande tag="$1" elif [ -r "${TAG_FILE}" ] ; then # récupération depuis son fichier dédié (à partir de la version 0.5) tag="`cat "${TAG_FILE}"`" else # récupération d'un tag non auf-* depuis la config' de FusionInventory # (permet de retrouver le tag entré avant le passage en version 0.4) tag="`awk '/^#?tag =/{if($3!=""&&$3!~/^auf-/){tag=$3}}END{print tag}' "${CONFIG_FILE}"`" if [ -z "${tag}" ] ; then # récupération d'un éventuel tag auf-* depuis la config' de FusionInventory tag="`awk '/^#?tag =/{if($3!=""){tag=$3}}END{print tag}' "${CONFIG_FILE}"`" fi fi # tag vide, mais indication d'un tag par défaut ? if [ -z "${tag}" -a -n "${default_tag}" ] ; then # utilisation du tag par défaut tag="${default_tag}" fi # tag vide ou non configuré (= toujours en auf-*) ? if [ -z "${tag}" ] || expr match "${tag}" 'auf-' >/dev/null ; then # à configurer ! need_config="yes" fi # besoin d'aide ? if [ "${need_config}" != "no" ] ; then config_help fi #echo "=> tag=[${tag}]" #exit 0 # # mise en conformité de la configuration de FusionInventory # while read line ; do update_file "${CONFIG_FILE}" "${line}" done << __EOF__ server = https://glpi.auf.org/glpi/plugins/fusioninventory/ no-task = deploy ca-cert-dir = /etc/ssl/certs no-ssl-check = 0 no-httpd = 1 logger = Syslog __EOF__ # # configuration et sauvegarde du tag # if [ -n "${tag}" ] ; then update_file "${CONFIG_FILE}" "tag = ${tag}" if [ ! -e "${TAG_FILE}" ] ; then touch "${TAG_FILE}" chmod --reference="${CONFIG_FILE}" "${TAG_FILE}" fi if [ "${tag}" != "`cat "${TAG_FILE}"`" ] ; then echo "${tag}" > "${TAG_FILE}" fi fi # # mise en mode démon de FusionInventory # update_file "${DEFAULT_FILE}" "MODE=daemon" # # redémarrage du service # if [ -x /usr/sbin/service ] ; then service fusioninventory-agent stop sleep 2 service fusioninventory-agent start else # support des anciennes distributions Debian (ex. : Lenny) invoke-rc.d fusioninventory-agent stop sleep 2 invoke-rc.d fusioninventory-agent start fi echo "Envoi immédiat des informations d'inventaire..." exec fusioninventory-agent --no-fork --logger=Stderr