quelques améliorations dont support du profil de déploiement

This commit is contained in:
Jephté Clain 2017-04-18 22:03:00 +04:00
parent 0b468307f7
commit 2daf190c60
2 changed files with 40 additions and 25 deletions

42
rtoinst
View File

@ -42,9 +42,12 @@ OPTIONS
Par défaut, si aucun hôte n'est spécifié, la configuration locale de Par défaut, si aucun hôte n'est spécifié, la configuration locale de
déploiement est interrogée pour avoir cette information. déploiement est interrogée pour avoir cette information.
-c, --deploy-config CONFNAME -c, --deploy-config CONFNAME
Cette option permet de spécifier le nom de la configuration locale de Spécifier le nom de la configuration à utiliser pour l'interrogation de
déploiement à utiliser pour effectuer la requête. Par défaut, utiliser la configuration locale de déploiement. Par défaut, utiliser le nom
le nom 'rtoinst'" 'rtoinst'
-p, --deploy-profile PROFILE
Spécifier le profil à utiliser pour l'interrogation de la configuration
locale de déploiement. Par défaut, aucun profil n'est sélectionné."
} }
__PARSED_HOSTS=() __PARSED_HOSTS=()
@ -116,6 +119,7 @@ SSH=
hosts=() hosts=()
deploy_enable=1 deploy_enable=1
deploy_confname=rtoinst deploy_confname=rtoinst
deploy_profile=
parse_opts "${PRETTYOPTS[@]}" \ parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
-T:,--tmproot: tmproot= \ -T:,--tmproot: tmproot= \
@ -123,7 +127,8 @@ parse_opts "${PRETTYOPTS[@]}" \
-h:,-H:,--host: hosts \ -h:,-H:,--host: hosts \
--deploy deploy_enable=1 \ --deploy deploy_enable=1 \
--no-deploy deploy_enable= \ --no-deploy deploy_enable= \
-c:,--deploy-config deploy_confname= \ -c:,--deploy-config: deploy_confname= \
-p:,--deploy-profile: deploy_profile= \
@ args -- "$@" && set -- "${args[@]}" || die "$args" @ args -- "$@" && set -- "${args[@]}" || die "$args"
: "${SSH:=ssh}" : "${SSH:=ssh}"
@ -142,7 +147,7 @@ if array_isempty hosts && [ -n "$deploy_enable" ]; then
deploy_setconf "$deploy_confname" deploy_setconf "$deploy_confname"
if deploy_loadconf; then if deploy_loadconf; then
setxx webapp=abspath "$1" // basename -- setxx webapp=abspath "$1" // basename --
if eval "$(deploy_query -v host DEST webapp rtoinst_deploy "" shell "$webapp")"; then if eval "$(deploy_query -v host DEST webapp rtoinst_deploy "$deploy_profile" shell "$webapp")"; then
check_interaction -c && einfo "Cette webapp sera déployée vers les hôtes suivants: check_interaction -c && einfo "Cette webapp sera déployée vers les hôtes suivants:
$(array_to_lines host "" " ")" $(array_to_lines host "" " ")"
ask_any "Voulez-vous continuer?" Oq || die ask_any "Voulez-vous continuer?" Oq || die
@ -157,7 +162,7 @@ fix_hosts
etitle "Création du répertoire de travail" etitle "Création du répertoire de travail"
ac_set_tmpdir workdir ac_set_tmpdir workdir
webapps=() webapps=()
while [ -n "$1" ]; do while [ $# -gt 0 ]; do
if [ "$1" == "--" ]; then if [ "$1" == "--" ]; then
# début des options de toinst # début des options de toinst
shift shift
@ -167,21 +172,26 @@ while [ -n "$1" ]; do
break break
fi fi
src="$1"; shift osrc="$1"; shift
setx src=abspath "$osrc"
setx srcname=basename -- "$src"
if [ -f "$src" ] && is_archive "$src"; then if [ -f "$src" ] && is_archive "$src"; then
estep "$(ppath "$src")" setx waname=get_archive_appname "$src"
cp_R "$src" "$workdir" || die estep "$(ppath "$src") --> $waname"
wadir="$workdir/$waname"
mkdir "$wadir"
extract_archive "$src" "$wadir" || die
src="$wadir"
elif [ -d "$src" ]; then elif [ -d "$src" ]; then
estep "$(ppath "$src")" estep "$(ppath "$src")"
cp_R "$src" "$workdir" || die cp_R "$src" "$workdir/$srcname" || die
elif [ -e "$src" ]; then elif [ -e "$src" ]; then
die "$src: fichier invalide" die "$osrc: fichier invalide"
else else
die "$src: fichier ou répertoire introuvable" die "$osrc: fichier ou répertoire introuvable"
fi fi
src="$(abspath "$src")" array_add webapps "$srcname"
array_add webapps "$(basename "$src")"
done done
estep "Copie de l'environnement de déploiement" estep "Copie de l'environnement de déploiement"
@ -196,7 +206,7 @@ ac_set_tmpfile archive
archivename="$(basename "$archive")" archivename="$(basename "$archive")"
etitle "Création de l'archive pour le déploiement" etitle "Création de l'archive pour le déploiement"
"$scriptdir/mkusfx" --bare --tmp-archive -o "$archive" "$workdir" -- ./toinst "${webapps[@]}" || die "$scriptdir/mkusfx" --bare --tmp-archive -o "$archive" "$workdir" -- ./toinst --is-tmpdir || die
eend eend
## Déploiement ## Déploiement
@ -224,7 +234,7 @@ __estack=$(qval "$__estack")
__tlevel=$(qval "$__tlevel") __tlevel=$(qval "$__tlevel")
export __interaction __estack __tlevel export __interaction __estack __tlevel
${UTOOLS_LANG:+UTOOLS_LANG='$UTOOLS_LANG'; export UTOOLS_LANG ${UTOOLS_LANG:+UTOOLS_LANG='$UTOOLS_LANG'; export UTOOLS_LANG
}$(qvals "./$archivename" ${tmproot:+--tmproot "$tmproot"} -- MYHOST="$host" "$@")" }$(qvals "./$archivename" ${tmproot:+--tmproot "$tmproot"} -- "${webapps[@]}" "$@")"
eend eend
fi fi
done done

23
toinst
View File

@ -166,6 +166,8 @@ function parse_tomcat_users() {
action=deploy action=deploy
parse_tomcat_users= parse_tomcat_users=
parse_server= parse_server=
istmpdir=
tmpdir=
config= config=
tomcat_profile= tomcat_profile=
catalina_base= catalina_base=
@ -187,6 +189,7 @@ args=(
--help '$exit_with display_help' --help '$exit_with display_help'
--private-parse-server '$action=parse; parse_server=1' --private-parse-server '$action=parse; parse_server=1'
--private-parse-tomcat-users '$action=parse; parse_tomcat_users=1' --private-parse-tomcat-users '$action=parse; parse_tomcat_users=1'
--is-tmpdir '$istmpdir=1; tmpdir=.'
-c:,--config: config= -c:,--config: config=
-C:,--config-profile: tomcat_profile= -C:,--config-profile: tomcat_profile=
-d:,--catalina-base:,--catalina-home: catalina_base= -d:,--catalina-base:,--catalina-home: catalina_base=
@ -371,21 +374,23 @@ if [ $# -eq 0 ]; then
fi fi
srcs=() srcs=()
[ -n "$istmpdir" ] || ac_set_tmpdir tmpdir
for src in "$@"; do for src in "$@"; do
if [ -d "$src" ]; then if [ -f "$src" ] && is_archive "$src"; then
array_add srcs "$(abspath "$src")"
elif [ -f "$src" ]; then
setx waname=get_archive_appname "$src" setx waname=get_archive_appname "$src"
ac_set_tmpdir tmpdir wadir="$tmpdir/$waname"
tmpdir="$tmpdir/$waname" mkdir "$wadir"
mkdir "$tmpdir" if extract_archive "$src" "$wadir"; then
if extract_archive "$src" "$tmpdir"; then array_add srcs "$wadir"
array_add srcs "$tmpdir"
else else
eerror "$src: erreur lors de l'extraction de l'archive" eerror "$src: erreur lors de l'extraction de l'archive"
fi fi
elif [ -d "$src" ]; then
array_add srcs "$(abspath "$src")"
elif [ -e "$src" ]; then
eerror "$src: fichier invalide"
else else
eerror "$src: webapp introuvable" eerror "$src: fichier ou répertoire introuvable"
fi fi
done done
[ ${#srcs[*]} -gt 0 -o -n "$fake" ] || die [ ${#srcs[*]} -gt 0 -o -n "$fake" ] || die