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

23
toinst
View File

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