initial commit
This commit is contained in:
159
conf/init.conf
Executable file
159
conf/init.conf
Executable file
@@ -0,0 +1,159 @@
|
||||
##------------------------------------------------------------------------------
|
||||
## Script : init.conf
|
||||
## Module Puppet : gnc-script_core_dtsi
|
||||
## Auteur : Emmanuel Confrere
|
||||
## Date : 29-06-2017
|
||||
## Version : 2.1.2
|
||||
## Objet : Fichier de configuration commun a tout les scripts
|
||||
##
|
||||
## Detail : Ce fichier contient les varaibles de fonctionement commune au script du socle
|
||||
## Il est charge systematiquement au debut de chaque script
|
||||
## Toute les variables initialisees ici sont nomme SH_*
|
||||
##
|
||||
## -----------------------------------------------------------------------------
|
||||
# Mise a jour :
|
||||
# 1.0.0 23-04-2014 - Emmanuel Confrere - Cre : Creation a partir de commun.conf
|
||||
# qu'il doit remplacer a terme
|
||||
# 1.1.0 13-05-2014 - Emmanuel Confrere - Evo : Factorisation du code
|
||||
# Amelioration de la lisibilite et ajout de commentaire
|
||||
# Passage de certaine variable en heritage
|
||||
# 1.2.0 13-05-2014 - Emmanuel Confrere - Evo : Ajout de message de debug
|
||||
# 1.3.0 16-04-2015 - Daniel Frochtmann - Evo : Ajout semaphore pour controler les executions
|
||||
# multiples (SH_CPT_SEMAPHORE)
|
||||
# 1.4.0 22-09-2015 - Emmanuel Confrere - Evo : Possibilite de defferencier les retentions entre les fichier cpt et log
|
||||
# 2.0.0 10-02-2016 - Emmanuel Confrere - Evo : Integration au socle DTSI via Puppet
|
||||
# 2.0.1 16-03-2016 - Emmanuel Confrere - Ano : Perte de la variable SH_RETENTION (Cf. DBA-2088)
|
||||
# 2.1.0 24-03-2017 - Emmanuel Confrere - Evo : Changement du nom du serveur de batch
|
||||
# 2.1.1 27-06-2017 - Emmanuel Confrere - Ano : Fonctionnement inattendu sous Bash 3.2.25
|
||||
# la fonction logname ne renvoi rien ?
|
||||
# 2.1.2 29-06-2017 - Emmanuel Confrere - Ano : Erreur : logname() renvoi null si connexion via sshd
|
||||
# Remplacement de logname() par /etc/proc/self/loginuid
|
||||
## -----------------------------------------------------------------------------
|
||||
## Ce fichier contient les varaibles de fonctionement commune au script du socle
|
||||
## Il est charge systematiquement au debut de chaque script
|
||||
## Toute les variables initialisees ici sont nomme SH_*
|
||||
## -----------------------------------------------------------------------------
|
||||
# - Init variables
|
||||
# - --------------
|
||||
# - Elements d infrastructure et systeme
|
||||
[ "`hostname`" = "sousetsuken" ] && SH_SRVDEP="oui" || SH_SRVDEP="non"
|
||||
SH_OS_TYPE=`uname -s`
|
||||
SH_IDLOGUSER=`cat /proc/self/loginuid`
|
||||
SH_LOGUSER=`grep -E "[^:]*:[^:]:${SH_IDLOGUSER}" /etc/passwd|cut -d":" -f1`
|
||||
SH_EXECUSER=${LOGNAME}
|
||||
SH_PATH=${PATH}
|
||||
|
||||
# - Identification de la session de travail
|
||||
# - ---------------------------------------
|
||||
# La variable SH_SESSION_ID permet d identifier une session de travail.
|
||||
# Il s agit d un identifiant unique permentant de reunir dans une unite commune
|
||||
# les objets trace, journaux , historique ... Cette variable est partage par tout
|
||||
# les shell appele en aval d un shell pere. La variable SH_SESSION_ID est initialise
|
||||
# qu au premier chargement de init.conf
|
||||
# L initialisation de certainne variable sont dependante de cette premiere initialisation
|
||||
# pour permetre l heritage des parametres au sous-shell appele.
|
||||
SH_TIME_STAMP=`date "+%x %X"` # Horrodatage pour l historique
|
||||
SH_TIMES=`date +"%s"` # Horrodatage pour identification
|
||||
SH_OSPID=$$ # Numero de processus
|
||||
SH_SESSION_IDP="${SH_TIMES}_${SH_OSPID}"
|
||||
# La variable SH_SESSION_ID est initialise que la premiere fois
|
||||
[ -z "${SH_SESSION_ID}" ] && SH_SESSION_ID="${SH_SESSION_IDP}"
|
||||
# La variable SH_FIRSTTIME permet de savoir si l execution courante de init.conf
|
||||
# est issu d un appel depuis un script ou d un lancement manuel depuis le shell.
|
||||
[ "${SH_SESSION_IDP}" = "${SH_SESSION_ID}" ] && SH_FIRSTTIME="oui" || SH_FIRSTTIME="non"
|
||||
|
||||
|
||||
# - Localistaion du script, pour afficher l'aide si
|
||||
# necessaire.Localisation defini par $SH_DIR/$SH_PROG
|
||||
SH_PROG=`which $0 2>&1`
|
||||
SH_DIR=`dirname ${SH_PROG}`
|
||||
[ "${SH_DIR}" = "." ] && SH_DIR=`pwd`
|
||||
SH_PROG=`basename ${SH_PROG}`
|
||||
SH_PROG_VERSION=`grep "^## Version *:" ${SH_DIR}/${SH_PROG}|cut -d: -f2|sed 's/ *//g'`
|
||||
SH_PARAM="$*"
|
||||
|
||||
# - Initialisationdes fichiers de trace, compte-rendu, message,
|
||||
# historique, configuration specifique, fichier de semaphore
|
||||
SH_FICTRC="${NC_EXPL_HST}/`echo ${SH_PROG}|cut -d"." -f1`.hist"
|
||||
SH_FICMSG="${NC_EXPL_MSG}/`echo ${SH_PROG}|cut -d"." -f1`.msg"
|
||||
SH_FICCFG="${NC_EXPL_CFG}/`echo ${SH_PROG}|cut -d"." -f1`.conf"
|
||||
SH_FICSEM="/dev/shm/`echo ${SH_PROG}|cut -d"." -f1`.sem"
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_FICLOG="${NC_EXPL_LOG}/`echo ${SH_PROG}|cut -d"." -f1`_${SH_SESSION_IDP}.log"
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_FICCPT="${NC_EXPL_CPT}/`echo ${SH_PROG}|cut -d"." -f1`_${SH_SESSION_IDP}.cpt"
|
||||
|
||||
# - initialisation des variables commune aux scripts
|
||||
# Ces variable peuvent etre surcharge ou modifier dans le fichier de configuration specifique du script
|
||||
# SH_FICCFG mais dans ce cas il n y auras plus d heritage.
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_RETENTION_CPT=8 # Retention des fichiers cpt en jours par defaut
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_RETENTION_LOG=8 # Retention des fichiers trc en jours par defaut
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_SILENCE="non" # Mode d affichage silencieu (Valeur par default)
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_NIV_DEBUG=0 # Debug inactif par defaut
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && SH_AFF_SID="non" # Affichage du numero de session dans fct_message et fct_erreur
|
||||
# Les variable prefixe avec F sont utilise pour proteger l initialisation des variables principales (sans le F)
|
||||
# Lorsque qu un script initialise une des ce variables dans le fichier de configuration specifique au script
|
||||
# alors il faut ignorer les initialisation specifique qui pourrais etre effectuer par les scripts appeles par ce dernier.
|
||||
SH_RETENTION_FLOG=${SH_RETENTION_LOG}
|
||||
SH_RETENTION_FCPT=${SH_RETENTION_CPT}
|
||||
SH_FSILENCE=${SH_SILENCE}
|
||||
|
||||
# - Parallelisation d execution des scripts.
|
||||
# - Par defaut seul une occurance active d un meme script
|
||||
# - Le controle d execution concurrente est realiase par la lib semaphore.lib
|
||||
SH_CPT_SEMAPHORE=1 # Valeur d execution du semaphore par defaut
|
||||
|
||||
# - Indentation des messages affiche par fct_message
|
||||
# pour ameliore la lisibilite des traces
|
||||
# La valeur de la variable SH_INDENT_MSG est diminuer par fct_erreur(stop)
|
||||
[ "${SH_FIRSTTIME}" = "non" ] && SH_INDENT_MSG="${SH_INDENT_MSG} " || SH_INDENT_MSG=""
|
||||
|
||||
# - Connection a la base de referencement
|
||||
[ -z "${SH_CNX_REF}" ] && SH_CNX_REF=${SH_CNX_REF:="cmdb/IRji_5#1O@refpro"}
|
||||
|
||||
# Globalisation des variables
|
||||
export SH_FICLOG SH_FICCPT SH_CNX_REF SH_INDENT_MSG SH_SESSION_ID SH_NIV_DEBUG SH_SILENCE
|
||||
export SH_RETENTION_CPT SH_RETENTION_LOG SH_LOGUSER SH_EXECUSER
|
||||
|
||||
# - Chargement de l'environement specifique au script
|
||||
if [ -f ${SH_FICCFG} ]
|
||||
then
|
||||
fct_message -debug 0 "Chargement de fichier de configuration : ${SH_FICCFG}"
|
||||
. ${SH_FICCFG}
|
||||
fi
|
||||
|
||||
# - Remise en etat des variables protegees
|
||||
if [ "${SH_FIRSTTIME}" = "oui" ]
|
||||
then
|
||||
# - Les variables peuvent etre changees dans le fichier specifique lors de la premiere inittialisation
|
||||
# - Cependant pour conserve la compatibilte acsendante la variable SH_RETENTION doit etre controlee
|
||||
# - Si cette derniere est non vide alors c est qu elle a ete utilise dans le fichier de configuration specifique
|
||||
# - on doit alors initialiser les nouvelles variables avec cette valeur ...
|
||||
# - Note : SH_RETENTION est obsolete et ne doit plus etre utilise dans les scripts
|
||||
# Cette variable a ete remplace par SH_RETENTION_CPT et SH_RETENTION_LOG
|
||||
if [ -n "${SH_RETENTION}" ]
|
||||
then
|
||||
SH_RETENTION_LOG=${SH_RETENTION}
|
||||
SH_RETENTION_CPT=${SH_RETENTION}
|
||||
else
|
||||
SH_RETENTION=8 # Valeur par defaut, conserve pour compatibilite ascendante
|
||||
fi
|
||||
export SH_RETENTION
|
||||
else
|
||||
SH_RETENTION_LOG=${SH_RETENTION_FLOG}
|
||||
SH_RETENTION_CPT=${SH_RETENTION_FCPT}
|
||||
SH_SILENCE=${SH_FSILENCE}
|
||||
fi
|
||||
|
||||
# - Rotation des fichiers de compte-rendu et de trace
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && fct_rotation ${SH_FICCPT} ${SH_RETENTION_CPT}
|
||||
[ "${SH_FIRSTTIME}" = "oui" ] && fct_rotation ${SH_FICLOG} ${SH_RETENTION_LOG}
|
||||
|
||||
# - Marque le debut de l execution du programme
|
||||
fct_message -hist "(${SH_SESSION_ID}) : Debut du script"
|
||||
fct_message -hist "(${SH_SESSION_ID}) : Parametre : ${SH_PARAM}"
|
||||
[ "${SH_FIRSTTIME}" = "oui" -a ${SH_NIV_DEBUG} -gt 0 ] && fct_message -color rouge "ATTENTION - Mode debug activer : Niveau de trace ${SH_NIV_DEBUG}"
|
||||
|
||||
# - Liberation des variables locale
|
||||
unset SH_TIMES SH_OSPID SH_TIME_STAMP SH_FIRSTTIME SH_RETENTION_FLOG SH_RETENTION_FCPT SH_FSILENCE SH_IDLOGUSER
|
||||
|
||||
# - Gestion des options et argument
|
||||
fct_params ${*}
|
||||
22
conf/shell-env/lisezmoi.txt
Executable file
22
conf/shell-env/lisezmoi.txt
Executable file
@@ -0,0 +1,22 @@
|
||||
Ce dossier contient les fichiers d initialisation d'environement.
|
||||
Il sont charger par le script /etc/profile.d/socle_bash_dtsi.sh.
|
||||
|
||||
Le nom des fichiers sont de la forme profile_<type>_<sous-type>.env.
|
||||
|
||||
<type> prend une des valeurs suivante :
|
||||
- "socle" : profile dependant du socle
|
||||
- "grp" : Profile lie au groupe Linux <sous-type>
|
||||
- "app" : profile indepandant du socle
|
||||
|
||||
<sous-type> est libre sauf pour le type "grp". Dans ce cas
|
||||
la valeurs doit etre le nom d un groupe Linux existant. Le fichiers
|
||||
d'environement seras alors source uniquemement si le compte de connexion
|
||||
est membre du groupe.
|
||||
|
||||
Les fichiers de ce dossiers sont sources dans l ordre suivant :
|
||||
1 - le fichier profile_init.env
|
||||
2 - les fichiers profile_socle_*.env
|
||||
3 - les fichiers profile_grp_*.env (En fontion des groupe dont est membre le compte de connexion)
|
||||
4 - les fichiers profile_app_*.env
|
||||
|
||||
Attention : Les fichiers present ici, doivent etre gere par Puppet.
|
||||
74
conf/shell-env/profile_init.env
Executable file
74
conf/shell-env/profile_init.env
Executable file
@@ -0,0 +1,74 @@
|
||||
##----------------------------------------------------------------------------
|
||||
## Script : profile_init.env
|
||||
## Module Puppet : gnc-script_core_dtsi
|
||||
## Auteur : Emmanuel Confrere
|
||||
## Date : 11-07-2017
|
||||
## Version : 1.2.3
|
||||
## Objet : Initialisation des variables d environements du socle
|
||||
## Chargement des librairie bash
|
||||
## Initialisation du PATH
|
||||
##
|
||||
## Fonctionnement : Ce script est depose dans le repertoire ${NC_EXPL_ROOT}/conf/shell-env
|
||||
## avec les droits suivant : 0644 asr:asr
|
||||
##
|
||||
## Il initialise l environement globale du socles, charge les librairie et
|
||||
## initialise les PATH et les alias commun.
|
||||
##
|
||||
## Il est appele par le script /etc/profile.d/dtsi.sh
|
||||
##
|
||||
# ----------------------------------------------------------------------------
|
||||
# Mise a jour :
|
||||
# 1.0.0 10-02-2016 - Emmanuel Confrere - Cre : A partir de l ancien fichier .dbenv
|
||||
# 1.0.1 21-07-2016 - Stephane Tourneyre - Ano : Ajout ancien path pour man ADMLINUX-1176
|
||||
# 1.1.0 28-07-2016 - Emmanuel Confrere - Evo : Normalisation : Versionnage Sementique
|
||||
# 1.2.0 05-04-2017 - Emmanuel Confrere - Evo : Ajout de la variable NC_EXPL_NFS
|
||||
# 1.2.1 07-04-2017 - Emmanuel Confrere - Ano : Definition du prompt
|
||||
# 1.2.2 11-04-2017 - Emmanuel Confrere - Ano : Suppression de la definition du Prompt
|
||||
# 1.2.3 11-07-2017 - Emmanuel Confrere - Ano : Description du fonctionnement erronee.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# -- Initialisation des variable globale NC_*
|
||||
#
|
||||
NC_EXPL_LIB=${NC_EXPL_ROOT}/lib
|
||||
NC_EXPL_BIN=${NC_EXPL_ROOT}/bin
|
||||
NC_EXPL_LOG=${NC_EXPL_ROOT}/log
|
||||
NC_EXPL_HST=${NC_EXPL_ROOT}/hist
|
||||
NC_EXPL_CPT=${NC_EXPL_ROOT}/cpt
|
||||
NC_EXPL_TMP=${NC_EXPL_ROOT}/tmp
|
||||
NC_EXPL_DAT=${NC_EXPL_ROOT}/dat
|
||||
NC_EXPL_MOD=${NC_EXPL_ROOT}/mod
|
||||
NC_EXPL_CFG=${NC_EXPL_ROOT}/conf
|
||||
NC_EXPL_MSG=${NC_EXPL_ROOT}/msg
|
||||
NC_EXPL_MAN=${NC_EXPL_ROOT}/man
|
||||
|
||||
|
||||
#[ `df|grep -c "srv-nfs"` -eq 1 ] && NC_EXPL_NFS="oui" || NC_EXPL_NFS="non"
|
||||
NC_EXPL_NFS="non"
|
||||
|
||||
# -- Export des variables
|
||||
#
|
||||
export NC_EXPL_LOG NC_EXPL_HST NC_EXPL_TMP NC_EXPL_LIB NC_EXPL_DAT NC_EXPL_MAN
|
||||
export NC_EXPL_CPT NC_EXPL_BIN NC_EXPL_CFG NC_EXPL_MSG NC_EXPL_MOD NC_EXPL_NFS
|
||||
|
||||
# -- Chargement des librairies
|
||||
#
|
||||
for lib in `find ${NC_EXPL_LIB} -name \*.lib`
|
||||
do
|
||||
. ${lib}
|
||||
done
|
||||
|
||||
# Ajout du repertoire des scripts au Path
|
||||
# bin -> Repertoire des script dba
|
||||
fctpath "${NC_EXPL_BIN}" PATH :
|
||||
fctpath '/usr/local/share/man' MANPATH :
|
||||
fctpath '/usr/share/man/fr' MANPATH :
|
||||
fctpath '/usr/share/man/overrides' MANPATH :
|
||||
fctpath '/usr/share/man/' MANPATH :
|
||||
fctpath "${NC_EXPL_MAN}" MANPATH :
|
||||
|
||||
# -- Definition des alias
|
||||
#
|
||||
alias bbin='cd ${NC_EXPL_ROOT}/bin'
|
||||
alias type='whence -v'
|
||||
alias log='cd ${NC_EXPL_LOG}'
|
||||
alias hist='cd ${NC_EXPL_HST}'
|
||||
Reference in New Issue
Block a user