support deploydb et pffprofile
This commit is contained in:
parent
7356c1da73
commit
4535b67045
|
@ -36,7 +36,7 @@ if [ -z "$webinst" ]; then
|
|||
etitle "Calcul des instances à relancer" \
|
||||
compute_apps apps_to_restart appinfos "${apps_to_restart[@]}"
|
||||
|
||||
if [ -z "$bounce" ]; then
|
||||
if [ "$restart" == yes ]; then
|
||||
# Arrêter les instances
|
||||
disable_autorecover=1
|
||||
stop_apps -a apps_to_start "" "" "${apps_to_restart[@]}"
|
||||
|
@ -216,11 +216,11 @@ fi
|
|||
################################################################################
|
||||
|
||||
if [ -z "$webinst" ]; then
|
||||
if [ -z "$bounce" ]; then
|
||||
if [ "$restart" == yes ]; then
|
||||
# Démarrer les instances
|
||||
enable_autorecover=1
|
||||
start_apps "" "" "${apps_to_start[@]}"
|
||||
else
|
||||
elif [ "$restart" == bounce ]; then
|
||||
# Relancer les applications en mode bounce
|
||||
bounce_apps "" "" "${apps_to_restart[@]}"
|
||||
fi
|
||||
|
|
|
@ -55,6 +55,7 @@ function uinst() {
|
|||
local -a modes
|
||||
local -a root_scripts
|
||||
local uinst2s
|
||||
local ddb_enable ddb_profile ddb_conf
|
||||
|
||||
uinst_nolocal "$@"
|
||||
}
|
||||
|
@ -94,6 +95,28 @@ OPTIONS
|
|||
la valeur de destdir, forcer le déploiement distant avec ssh+rsync, même
|
||||
si l'hôte et l'utilisateur correspondent aux valeurs courantes. Cette
|
||||
option initialise la valeur destdir_force_remote
|
||||
--deploydb
|
||||
--nd, --no-deploydb
|
||||
Autoriser (respectivement interdire) l'utilisation de la configuration
|
||||
locale de déploiement pour identifier la source et/ou la destination
|
||||
s'ils ne sont pas spécifiés. Par défaut, la configuration locale de
|
||||
déploiement est utilisée.
|
||||
Cette option et toutes celles associées n'est utilisée que pour la
|
||||
méthode de déploiement uinst:rsync
|
||||
-p, --dp, --deploydb-profile PROFILENAME
|
||||
Spécifier un ou plusieurs profils séparés par des virgules pour le
|
||||
déploiement avec la configuration locale de déploiement. NONE est la
|
||||
valeur par défaut et signifie de ne sélectionner que les définitions
|
||||
sans profil. ALL signifie de ne pas tenir compte des profils dans les
|
||||
définitions.
|
||||
-A, --all-profiles
|
||||
-P, --prod
|
||||
-T, --test
|
||||
Raccourcis respectivement pour -pALL, -pprod et -ptest
|
||||
-c, --dc, --deploydb-config CONFNAME
|
||||
Cette option permet de spécifier un fichier de configuration ou le nom
|
||||
de la configuration locale de déploiement à utiliser pour effectuer la
|
||||
requête. Par défaut, utiliser le nom 'uinst.conf'
|
||||
-a, --auto
|
||||
Si la source n'est pas spécifiée, déterminer le répertoire à déployer
|
||||
automatiquement (c'est la valeur par défaut)
|
||||
|
@ -143,6 +166,9 @@ OPTIONS
|
|||
__uinst_init
|
||||
UINST_ACTION=
|
||||
UINST_AUTOSRCDIR=1
|
||||
ddb_enable='1'
|
||||
ddb_profile='NONE'
|
||||
ddb_conf='uinst.conf'
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with __uinst_display_help' \
|
||||
--is-tmpdir UINST_ISTMPDIR \
|
||||
|
@ -152,6 +178,13 @@ OPTIONS
|
|||
-h:,-H:,--host: '$__uinst_addvar destdir_override_userhost "$value_"' \
|
||||
-S:,--ssh: '$__uinst_addvar destdir_ssh "$value_"' \
|
||||
--force-remote '$__uinst_addvar destdir_force_remote 1' \
|
||||
--deploydb ddb_enable=1 \
|
||||
--nd,--no-deploydb ddb_enable= \
|
||||
-p:,--dp:,--deploydb-profile ddb_profile= \
|
||||
-A,--all-profiles ddb_profile=ALL \
|
||||
-P,--prod ddb_profile=prod \
|
||||
-T,--test ddb_profile=test \
|
||||
-c:,--dc:,--deploydb-config ddb_conf= \
|
||||
-a,--auto UINST_AUTOSRCDIR=1 \
|
||||
--no-auto UINST_AUTOSRCDIR= \
|
||||
--prefix UINST_AUTOPREFIX=1 \
|
||||
|
@ -229,7 +262,7 @@ function __uinst_init() {
|
|||
|
||||
UINST_CONFIG_VARS=()
|
||||
UINST_CONFIG_VARCMDS=()
|
||||
UINST_PROTECTED_VARS=(UINST_PROTECTED_VARS UINST_CONFIG_VARS UINST_CONFIG_VARCMDS)
|
||||
UINST_PROTECTED_VARS=(UINST_PROTECTED_VARS UINST_CONFIG_VARS UINST_CONFIG_VARCMDS UINST_STANDALONE)
|
||||
|
||||
__uinst_protectvars configure_variables \
|
||||
UINST_ORIGSRC UINST_SRCDIR \
|
||||
|
@ -921,6 +954,52 @@ function __uinst_check_rsync() {
|
|||
function __uinst_rsync() {
|
||||
# Déployer les fichiers de $srcdir avec rsync
|
||||
|
||||
# configuration locale de déploiement
|
||||
if [ -n "$ddb_enable" -a -n "$UINST_STANDALONE" ]; then
|
||||
local -a deploydb cmds tmpcmds
|
||||
deploydb=(
|
||||
"$scriptdir/lib/nulib/deploydb"
|
||||
--missing-ok
|
||||
${ddb_conf:+-c "$ddb_conf"}
|
||||
-m uinst
|
||||
--run -r uinst.query_xuinst "$script"
|
||||
)
|
||||
cmds=()
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$srcdir" "" "$ddb_profile" "$@")"
|
||||
array_extend cmds tmpcmds
|
||||
if [ ${#cmds[*]} -gt 0 ]; then
|
||||
if check_interaction -c; then
|
||||
if [ ${#cmds[*]} -eq 1 ]; then
|
||||
einfo "La commande suivante va être lancée:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[0]}"; do
|
||||
eecho " ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
else
|
||||
einfo "Les commandes suivantes seront lancées:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[@]}"; do
|
||||
eecho " ... ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
fi
|
||||
read -p "Confirmez ou attendez 4 secondes [On] " -t 4 r
|
||||
if [ $? -gt 128 ]; then
|
||||
echo # cosmetic
|
||||
elif [ $? -le 128 -a -n "$r" ]; then
|
||||
is_yes "$r" || die
|
||||
fi
|
||||
fi
|
||||
r=0
|
||||
for cmd in "${cmds[@]}"; do
|
||||
einfo "$cmd"
|
||||
eval "$cmd" || r=1
|
||||
done
|
||||
exit $r
|
||||
elif [ "$ddb_profile" != "ALL" ]; then
|
||||
ewarn "Aucune configuration locale de déploiement n'a été trouvée pour le profil $ddb_profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
# initialiser les valeurs par défaut, mais penser à restaurer srcdir
|
||||
force_rsync_options=(-av --exclude CVS --exclude .svn --exclude /.git/)
|
||||
rsync_options=()
|
||||
|
|
|
@ -416,13 +416,17 @@ OPTIONS
|
|||
une liste de préfixes valides
|
||||
--no-prefix
|
||||
Ne jamais corriger un chemin.
|
||||
--bundle
|
||||
Déployer le bundle entier. C'est l'option par défaut.
|
||||
-W, --webres
|
||||
Ne déployer que les resources web. Implique -n
|
||||
Ne déployer que les resources web. Implique --no-tag
|
||||
--tag
|
||||
Tagger les bundles déployés avec un numéro de version. L'utilisateur est
|
||||
invité à compléter des informations telles que n° de version et date de
|
||||
release si ces informations ne sont pas disponible. C'est l'option par
|
||||
défaut.
|
||||
-n, --no-tag
|
||||
Ne pas tagger les bundles déployés avec un numéro de version. En temps
|
||||
normal, l'utilisateur est invité à compléter des informations telles que
|
||||
n° de version et date de release si ces informations ne sont pas
|
||||
disponible.
|
||||
Ne pas tagger les bundles déployés avec un numéro de version.
|
||||
-d, --active-dbconfig DBCONFIG
|
||||
Spécifier le profil de connexion à utiliser par défaut pour tous les
|
||||
eomodels du bundle. S'il faut un profil différent en fonction de l'eomodel, utiliser l'option -m
|
||||
|
@ -437,24 +441,28 @@ OPTIONS
|
|||
défaut.
|
||||
-b, --bounce
|
||||
Redémarrer les instances en mode bounce.
|
||||
--no-restart
|
||||
Ne pas redémarrer les instances
|
||||
-x, --exec CMD
|
||||
Exécuter la commande CMD après avoir effectué le déploiement"
|
||||
}
|
||||
|
||||
local istmpdir tmpdir autoprefix=1 bounce webinst notag default_dbconfig
|
||||
local istmpdir tmpdir autoprefix=1 restart=yes webinst notag default_dbconfig
|
||||
local -a dbconfigs scripts
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with __woinst_display_help' \
|
||||
--is-tmpdir '$istmpdir=1; tmpdir=.' \
|
||||
--prefix autoprefix=1 \
|
||||
--no-prefix autoprefix= \
|
||||
--bundle webinst= \
|
||||
-W,--webres webinst=1 \
|
||||
--tag notag= \
|
||||
-n,--no-tag notag=1 \
|
||||
-d:,--active-dbconfig: default_dbconfig= \
|
||||
-m:,--active-dbconfig-map: dbconfigs \
|
||||
--stop-start bounce= \
|
||||
-b,--bounce bounce=1 \
|
||||
--stop-start restart=yes \
|
||||
-b,--bounce restart=bounce \
|
||||
-no-restart restart=no \
|
||||
-x:,--exec: scripts \
|
||||
@ args -- "$@" &&
|
||||
set -- "${args[@]}" || {
|
||||
|
@ -643,7 +651,7 @@ dans NEXT_ROOT = ${NEXT_ROOT:-/}
|
|||
# Faire le déploiement
|
||||
local configfile variable
|
||||
ac_set_tmpfile configfile
|
||||
for variable in "${variables[@]}" bounce webinst ULIBDIR __estack __tlevel; do
|
||||
for variable in "${variables[@]}" restart webinst ULIBDIR __estack __tlevel; do
|
||||
echo_setv "$variable" "${!variable}" >>"$configfile"
|
||||
done
|
||||
for array in variables scripts applications frameworks; do
|
||||
|
|
185
rtoinst
185
rtoinst
|
@ -7,14 +7,14 @@ function display_help() {
|
|||
uecho "$scriptname: Déploiement distant avec toinst
|
||||
|
||||
USAGE
|
||||
$scriptname [-h host] [-T tmproot] <archive|dir> [-- options de toinst]
|
||||
$scriptname [-h host] [-G tmproot] <archive|dir> [-- options de toinst]
|
||||
|
||||
note: à cause d'une limitation de makeself, les options de toinst ne devraient
|
||||
pas contenir d'espaces ni de caractères spéciaux. L'échappement de ces
|
||||
caractères n'est pas garanti.
|
||||
|
||||
OPTIONS
|
||||
-T, --tmproot TMPROOT
|
||||
-G, --tmproot TMPROOT
|
||||
Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
|
||||
/var/tmp. Cette option est utile pour les vservers, qui ont par défaut
|
||||
un /tmp minuscule de 16 Mo.
|
||||
|
@ -34,20 +34,45 @@ OPTIONS
|
|||
user@host, e.g -h user@host
|
||||
La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
|
||||
hostsfile, à raison d'un hôte par ligne.
|
||||
--deploy
|
||||
--no-deploy
|
||||
--deploydb
|
||||
--nd, --no-deploydb
|
||||
Autoriser (respectivement interdire) l'utilisation de la configuration
|
||||
locale de déploiement pour identifier la destination si aucun hôte n'est
|
||||
spécifié.
|
||||
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
|
||||
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é."
|
||||
locale de déploiement pour identifier la source et/ou la destination
|
||||
s'ils ne sont pas spécifiés. Par défaut, la configuration locale de
|
||||
déploiement est utilisée.
|
||||
-p, --dp, --deploydb-profile PROFILENAME
|
||||
Spécifier un ou plusieurs profils séparés par des virgules pour le
|
||||
déploiement avec la configuration locale de déploiement. NONE est la
|
||||
valeur par défaut et signifie de ne sélectionner que les définitions
|
||||
sans profil. ALL signifie de ne pas tenir compte des profils dans les
|
||||
définitions.
|
||||
-A, --all-profiles
|
||||
-P, --prod
|
||||
-T, --test
|
||||
Raccourcis respectivement pour -pALL, -pprod et -ptest
|
||||
-l, --select-pffprofile PFFPROFILE
|
||||
Spécifier un ou plusieurs profils pff séparés par des virgules pour le
|
||||
déploiement avec la configuration locale de déploiement. NONE signifie
|
||||
de ne sélectionner que les définitions sans profil pff. ALL est la
|
||||
valeur par défaut et signifie de ne pas tenir compte des profils pff
|
||||
dans les définitions.
|
||||
Cette option est indépendante des options --pffprofile / --no-pffprofile
|
||||
--pffprofile-support
|
||||
--no-pffprofile-support
|
||||
Activer le support du profil pff (resp. le désactiver). Par défaut, le
|
||||
support est activé.
|
||||
-j, --ensure-pffprofile
|
||||
Si le support du profil pff est activé, s'assurer que la webapp est dans
|
||||
le profil pff spécifié dans la configuration locale de déploiement avant
|
||||
le déploiement. C'est la valeur par défaut.
|
||||
-e, --set-pffprofile
|
||||
Si le support du profil pff est activé, forcer le basculement vers le
|
||||
profil spécifié dans la configuration locale de déploiement avant le
|
||||
déploiement.
|
||||
-c, --dc, --deploydb-config CONFNAME
|
||||
Cette option permet de spécifier un fichier de configuration ou le nom
|
||||
de la configuration locale de déploiement à utiliser pour effectuer la
|
||||
requête. Par défaut, utiliser le nom 'toinst.conf'"
|
||||
}
|
||||
|
||||
__PARSED_HOSTS=()
|
||||
|
@ -117,67 +142,120 @@ action=deploy
|
|||
tmproot=
|
||||
SSH=
|
||||
hosts=()
|
||||
deploy_enable=1
|
||||
deploy_confname=rtoinst
|
||||
deploy_profile=
|
||||
ddb_enable=1
|
||||
ddb_profile=NONE
|
||||
ddb_conf=toinst.conf
|
||||
ddb_pffprofile=ALL
|
||||
pff_enable=1
|
||||
pff_support=ensure
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
-T:,--tmproot: tmproot= \
|
||||
-G:,--tmproot: tmproot= \
|
||||
-S:,--ssh: SSH= \
|
||||
-h:,-H:,--host: hosts \
|
||||
--deploy deploy_enable=1 \
|
||||
--no-deploy deploy_enable= \
|
||||
-c:,--deploy-config: deploy_confname= \
|
||||
-p:,--deploy-profile: deploy_profile= \
|
||||
--deploydb ddb_enable=1 \
|
||||
--nd,--no-deploydb ddb_enable= \
|
||||
-p:,--dp:,--deploydb-profile ddb_profile= \
|
||||
-A,--all-profiles ddb_profile=ALL \
|
||||
-P,--prod ddb_profile=prod \
|
||||
-T,--test ddb_profile=test \
|
||||
-l:,--select-pffprofile: ddb_pffprofile= \
|
||||
--pffprofile-support pff_enable=1 \
|
||||
--no-pffprofile-support pff_enable= \
|
||||
-j,--ensure-pffprofile pff_support=ensure \
|
||||
-e,--set-pffprofile pff_support=set \
|
||||
-c:,--dc:,--deploydb-config ddb_conf= \
|
||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||
|
||||
: "${SSH:=ssh}"
|
||||
|
||||
## webapp à déployer et hôtes sur lesquels faire le déploiement
|
||||
confirm_webapp=
|
||||
|
||||
# quels informations avons-nous?
|
||||
array_isempty hosts && has_hosts= || has_hosts=1
|
||||
|
||||
if [ $# -eq 0 ] || [[ "$1" == -* ]]; then
|
||||
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
|
||||
[ -d WEB-INF ] && webapp=. || webapp=
|
||||
confirm_webapp=1
|
||||
has_webapp=
|
||||
else
|
||||
webapp="$1"
|
||||
has_webapp=1
|
||||
shift
|
||||
fi
|
||||
|
||||
toinst_options=()
|
||||
if array_isempty hosts && [ -n "$deploy_enable" -a -n "$webapp" ]; then
|
||||
urequire deploy
|
||||
deploy_setconf "$deploy_confname"
|
||||
if deploy_loadconf; then
|
||||
setxx waname=abspath "$webapp" // basename --
|
||||
if eval "$(deploy_query -v host,wamap,protect DEST webapp rtoinst_deploy "$deploy_profile" shell "$waname")"; then
|
||||
msg="$waname: cette webapp sera déployée vers les hôtes suivants:
|
||||
$(array_to_lines host "" " ")"
|
||||
if [ -n "$wamap" -o -n "$protect" ]; then
|
||||
msg="$msg
|
||||
avec le(s) paramètre(s) suivant(s):"
|
||||
[ -n "$wamap" ] && msg="$msg
|
||||
--wamap $(qval "$wamap")"
|
||||
[ -n "$protect" ] && msg="$msg
|
||||
--protect $(qval "$protect")"
|
||||
# configuration locale de déploiement
|
||||
if [ -n "$ddb_enable" ]; then
|
||||
args=()
|
||||
if [ -n "$pff_enable" ]; then
|
||||
array_add args "pffprofile_support%=$pff_support"
|
||||
else
|
||||
array_add args "pffprofile_support%=false"
|
||||
fi
|
||||
|
||||
deploydb=(
|
||||
"$scriptdir/lib/nulib/deploydb"
|
||||
--missing-ok
|
||||
${ddb_conf:+-c "$ddb_conf"}
|
||||
-m toinst
|
||||
--run -r toinst.query_rtoinst "$script"
|
||||
)
|
||||
cmds=()
|
||||
if [ -n "$has_hosts" ]; then
|
||||
fix_hosts
|
||||
for host in "${hosts[@]}"; do
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$webapp" "$host" "$ddb_profile" "$ddb_pffprofile" "${args[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
done
|
||||
elif [ -n "$has_webapp" ]; then
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$webapp" "" "$ddb_profile" "$ddb_pffprofile" "${args[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
elif [ -d WEB-INF ]; then
|
||||
read_value "Veuillez entrer le chemin de la webapp à déployer" webapp . O
|
||||
has_webapp=1
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$webapp" "" "$ddb_profile" "$ddb_pffprofile" "${args[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
fi
|
||||
if [ ${#cmds[*]} -gt 0 ]; then
|
||||
[ $# -gt 0 ] && ewarn "Les arguments supplémentaires '$*' seront ignorés"
|
||||
if check_interaction -c; then
|
||||
if [ ${#cmds[*]} -eq 1 ]; then
|
||||
einfo "La commande suivante va être lancée:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[0]}"; do
|
||||
eecho " ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
else
|
||||
einfo "Les commandes suivantes seront lancées:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[@]}"; do
|
||||
eecho " ... ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
fi
|
||||
check_interaction -c && einfo "$msg"
|
||||
ask_any "Voulez-vous continuer?" Oq || die
|
||||
array_copy hosts host
|
||||
[ -n "$wamap" ] && array_add toinst_options --wamap "$wamap"
|
||||
[ -n "$protect" ] && array_add toinst_options --protect "$protect"
|
||||
if [ -n "$confirm_webapp" ]; then
|
||||
confirm_webapp=
|
||||
set -- "$webapp" "$@"
|
||||
read -p "Confirmez ou attendez 4 secondes [On] " -t 4 r
|
||||
if [ $? -gt 128 ]; then
|
||||
echo # cosmetic
|
||||
elif [ $? -le 128 -a -n "$r" ]; then
|
||||
is_yes "$r" || die
|
||||
fi
|
||||
fi
|
||||
r=0
|
||||
for cmd in "${cmds[@]}"; do
|
||||
einfo "$cmd"
|
||||
eval "$cmd" || r=1
|
||||
done
|
||||
exit $r
|
||||
elif [ "$ddb_profile" != "ALL" ]; then
|
||||
ewarn "Aucune configuration locale de déploiement n'a été trouvée pour le profil $ddb_profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$confirm_webapp" ]; then
|
||||
if [ -z "$has_webapp" ]; then
|
||||
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de toinst)
|
||||
read_value "Veuillez entrer la webapp à déployer" webapp "$webapp" O
|
||||
set -- "$webapp" "$@"
|
||||
[ -d WEB-INF ] && webapp=.
|
||||
read_value "Veuillez entrer le chemin de la webapp à déployer" webapp "$webapp" O
|
||||
has_webapp=1
|
||||
fi
|
||||
[ -n "$has_webapp" ] && set -- "$webapp" "$@"
|
||||
|
||||
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
|
||||
fix_hosts
|
||||
|
@ -222,6 +300,7 @@ estep "Copie de l'environnement de déploiement"
|
|||
mkdir "$workdir/lib"
|
||||
ulibsync "$workdir/lib"
|
||||
cp "$scriptdir/toinst" "$workdir"
|
||||
cp "$scriptdir/pff" "$workdir"
|
||||
chmod +x "$workdir/toinst"
|
||||
|
||||
eend
|
||||
|
|
150
ruinst
150
ruinst
|
@ -7,7 +7,7 @@ function display_help() {
|
|||
uecho "$scriptname: Déploiement distant avec uinst
|
||||
|
||||
USAGE
|
||||
$scriptname [-h host] [-T tmproot] <file|archive|dir> [-- options de uinst]
|
||||
$scriptname [-h host] [-G tmproot] <file|archive|dir> [-- options de uinst]
|
||||
|
||||
note: à cause d'une limitation de makeself, les options de uinst ne devraient
|
||||
pas contenir d'espaces ni de caractères spéciaux. L'échappement de ces
|
||||
|
@ -28,7 +28,7 @@ OPTIONS
|
|||
Si l'hôte distant n'a pas sudo ou si sudo n'est pas configuré, il faut
|
||||
rajouter l'option --uses-su, e.g:
|
||||
$scriptname -h user@host --configure root --uses-su
|
||||
-T, --tmproot TMPROOT
|
||||
-G, --tmproot TMPROOT
|
||||
Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
|
||||
/var/tmp. Cette option est utile pour les vservers, qui ont par défaut
|
||||
un /tmp minuscule de 16 Mo.
|
||||
|
@ -48,17 +48,26 @@ OPTIONS
|
|||
user@host, e.g -h user@host
|
||||
La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
|
||||
hostsfile, à raison d'un hôte par ligne.
|
||||
--deploy
|
||||
--no-deploy
|
||||
--deploydb
|
||||
--nd, --no-deploydb
|
||||
Autoriser (respectivement interdire) l'utilisation de la configuration
|
||||
locale de déploiement pour identifier la destination si aucun hôte n'est
|
||||
spécifié.
|
||||
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 'ruinst'"
|
||||
locale de déploiement pour identifier la source et/ou la destination
|
||||
s'ils ne sont pas spécifiés. Par défaut, la configuration locale de
|
||||
déploiement est utilisée.
|
||||
-p, --dp, --deploydb-profile PROFILENAME
|
||||
Spécifier un ou plusieurs profils séparés par des virgules pour le
|
||||
déploiement avec la configuration locale de déploiement. NONE est la
|
||||
valeur par défaut et signifie de ne sélectionner que les définitions
|
||||
sans profil. ALL signifie de ne pas tenir compte des profils dans les
|
||||
définitions.
|
||||
-A, --all-profiles
|
||||
-P, --prod
|
||||
-T, --test
|
||||
Raccourcis respectivement pour -pALL, -pprod et -ptest
|
||||
-c, --dc, --deploydb-config CONFNAME
|
||||
Cette option permet de spécifier un fichier de configuration ou le nom
|
||||
de la configuration locale de déploiement à utiliser pour effectuer la
|
||||
requête. Par défaut, utiliser le nom 'uinst.conf'"
|
||||
}
|
||||
|
||||
__PARSED_HOSTS=()
|
||||
|
@ -133,20 +142,25 @@ tmproot=
|
|||
SSH=
|
||||
force_make_archive=
|
||||
hosts=()
|
||||
deploy_enable=1
|
||||
deploy_confname=ruinst
|
||||
ddb_enable=1
|
||||
ddb_profile=NONE
|
||||
ddb_conf=uinst.conf
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
-C,--configure-user action=configure \
|
||||
--configure: '$set@ confuser;action=configure' \
|
||||
--uses-su uses_su=1 \
|
||||
-T:,--tmproot: tmproot= \
|
||||
-G:,--tmproot: tmproot= \
|
||||
-S:,--ssh: SSH= \
|
||||
--force-make-archive force_make_archive=1 \
|
||||
-h:,-H:,--host: hosts \
|
||||
--deploy deploy_enable=1 \
|
||||
--no-deploy deploy_enable= \
|
||||
-c:,--deploy-config deploy_confname= \
|
||||
--deploydb ddb_enable=1 \
|
||||
--nd,--no-deploydb ddb_enable= \
|
||||
-p:,--dp:,--deploydb-profile ddb_profile= \
|
||||
-A,--all-profiles ddb_profile=ALL \
|
||||
-P,--prod ddb_profile=prod \
|
||||
-T,--test ddb_profile=test \
|
||||
-c:,--dc:,--deploydb-config ddb_conf= \
|
||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||
|
||||
: "${SSH:=ssh}"
|
||||
|
@ -208,7 +222,7 @@ if [ "$action" == "configure" ]; then
|
|||
IPKS=
|
||||
[ -n "$confuser" ] && prepare_pubkey_access
|
||||
|
||||
etitle -s "Configuration de l'accès par clé ssh"
|
||||
etitle "Configuration de l'accès par clé ssh"
|
||||
for host in "${hosts[@]}"; do
|
||||
etitle "$host" check_pubkey_access "$host" "$confuser" "$IPKS" "$uses_su"
|
||||
done
|
||||
|
@ -219,36 +233,96 @@ fi
|
|||
################################################################################
|
||||
# Déploiement
|
||||
|
||||
## Répertoires à déployer et hôtes sur lesquels faire le déploiement
|
||||
confirm_src=
|
||||
# quels informations avons-nous?
|
||||
array_isempty hosts && has_hosts= || has_hosts=1
|
||||
|
||||
if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
|
||||
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de uinst)
|
||||
src=.
|
||||
confirm_src=1
|
||||
has_src=
|
||||
else
|
||||
# Enlever le répertoire à déployer. Le reste est pour uinst
|
||||
src="$1"
|
||||
has_src=1
|
||||
shift
|
||||
fi
|
||||
|
||||
if array_isempty hosts && [ -n "$deploy_enable" -a -n "$src" ]; then
|
||||
urequire deploy
|
||||
deploy_setconf "$deploy_confname"
|
||||
if deploy_loadconf; then
|
||||
setxx srcname=abspath "$src" // basename --
|
||||
if eval "$(deploy_query -v host DEST module ruinst_deploy "" shell "$srcname")"; then
|
||||
check_interaction -c && einfo "$srcname: ce module sera déployé vers les hôtes suivants:
|
||||
$(array_to_lines host "" " ")"
|
||||
ask_any "Voulez-vous continuer?" Oq || die
|
||||
array_copy hosts host
|
||||
confirm_src=
|
||||
# configuration locale de déploiement
|
||||
if [ -n "$ddb_enable" ]; then
|
||||
# filtrer les options... elles seront ignorées si on passe finalement par
|
||||
# deploydb
|
||||
vars=()
|
||||
options=()
|
||||
for arg in "$@"; do
|
||||
if [[ "$arg" == *=* ]]; then
|
||||
array_add vars "$arg"
|
||||
else
|
||||
array_add options "$arg"
|
||||
fi
|
||||
done
|
||||
|
||||
deploydb=(
|
||||
"$scriptdir/lib/nulib/deploydb"
|
||||
--missing-ok
|
||||
${ddb_conf:+-c "$ddb_conf"}
|
||||
-m uinst
|
||||
--run -r uinst.query_xuinst "$script"
|
||||
)
|
||||
cmds=()
|
||||
if [ -n "$has_hosts" ]; then
|
||||
fix_hosts
|
||||
for host in "${hosts[@]}"; do
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$src" "$host" "$ddb_profile" "${vars[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
done
|
||||
elif [ -n "$has_src" ]; then
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$src" "" "$ddb_profile" "${vars[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
else
|
||||
read_value "Entrez le répertoire à déployer" src . O
|
||||
has_src=1
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$src" "" "$ddb_profile" "${vars[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
fi
|
||||
if [ ${#cmds[*]} -gt 0 ]; then
|
||||
[ ${#options[*]} -gt 0 ] && ewarn "Les options supplémentaires '${options[*]}' seront ignorées"
|
||||
if check_interaction -c; then
|
||||
if [ ${#cmds[*]} -eq 1 ]; then
|
||||
einfo "La commande suivante va être lancée:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[0]}"; do
|
||||
eecho " ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
else
|
||||
einfo "Les commandes suivantes seront lancées:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[@]}"; do
|
||||
eecho " ... ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
fi
|
||||
read -p "Confirmez ou attendez 4 secondes [On] " -t 4 r
|
||||
if [ $? -gt 128 ]; then
|
||||
echo # cosmetic
|
||||
elif [ $? -le 128 -a -n "$r" ]; then
|
||||
is_yes "$r" || die
|
||||
fi
|
||||
fi
|
||||
r=0
|
||||
for cmd in "${cmds[@]}"; do
|
||||
einfo "$cmd"
|
||||
eval "$cmd" || r=1
|
||||
done
|
||||
exit $r
|
||||
elif [ "$ddb_profile" != "ALL" ]; then
|
||||
ewarn "Aucune configuration locale de déploiement n'a été trouvée pour le profil $ddb_profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$confirm_src" ]; then
|
||||
## Répertoires à déployer et hôtes sur lesquels faire le déploiement
|
||||
|
||||
if [ -z "$has_src" ]; then
|
||||
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de uinst)
|
||||
read_value "Entrez le répertoire à déployer" src "$src" O
|
||||
read_value "Entrez le répertoire à déployer" src . O
|
||||
has_src=1
|
||||
fi
|
||||
|
||||
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
|
||||
|
@ -286,7 +360,7 @@ rinteraction=$__interaction
|
|||
|
||||
for host in "${hosts[@]}"; do
|
||||
if [ "$host" == "localhost" ]; then
|
||||
etitle -s "Déploiement sur l'hôte local"
|
||||
etitle "Déploiement sur l'hôte local"
|
||||
if [ -n "$force_make_archive" ]; then
|
||||
"$archive" ${tmproot:+--tmproot "$tmproot"} -- "$@"
|
||||
else
|
||||
|
@ -297,7 +371,7 @@ for host in "${hosts[@]}"; do
|
|||
splituserhost "$host" user host
|
||||
[ -n "$user" ] || user=root
|
||||
|
||||
etitle -s "Déploiement sur $user@$host"
|
||||
etitle "Déploiement sur $user@$host"
|
||||
|
||||
estep "Copie de l'archive"
|
||||
scp -S "$SSH" "$archive" "$user@$host:" || die
|
||||
|
|
187
rwoinst
187
rwoinst
|
@ -1,20 +1,20 @@
|
|||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
||||
source "$(dirname -- "$0")/lib/ulib/ulib" || exit 1
|
||||
urequire DEFAULTS woinst
|
||||
|
||||
function display_help() {
|
||||
uecho "$scriptname: Déploiement distant avec woinst
|
||||
|
||||
USAGE
|
||||
$scriptname [-H host] [-T tmproot] <file|archive|dir>... [-- options de woinst]
|
||||
$scriptname [-H host] [-G tmproot] <archive|dir>... [-- options de woinst]
|
||||
|
||||
note: à cause d'une limitation de makeself, les options de toinst ne devraient
|
||||
pas contenir d'espaces ni de caractères spéciaux. L'échappement de ces
|
||||
caractères n'est pas garanti.
|
||||
|
||||
OPTIONS
|
||||
-T, --tmproot TMPROOT
|
||||
-G, --tmproot TMPROOT
|
||||
Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
|
||||
/var/tmp. Cette option est utile pour les vservers, qui ont par défaut
|
||||
un /tmp minuscule de 16 Mo.
|
||||
|
@ -45,19 +45,26 @@ OPTIONS
|
|||
Il est possible de spécifier en une seule invocation --host et --whost
|
||||
pour déployer l'application sur un hôte et les resources web sur un
|
||||
autre.
|
||||
--deploy
|
||||
--no-deploy
|
||||
--deploydb
|
||||
--nd, --no-deploydb
|
||||
Autoriser (respectivement interdire) l'utilisation de la configuration
|
||||
locale de déploiement pour identifier la destination si aucun hôte n'est
|
||||
spécifié.
|
||||
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 à utiliser
|
||||
pour effectuer la requête. Par défaut, utiliser le nom 'rwoinst'
|
||||
-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é."
|
||||
locale de déploiement pour identifier la source et/ou la destination
|
||||
s'ils ne sont pas spécifiés. Par défaut, la configuration locale de
|
||||
déploiement est utilisée.
|
||||
-p, --dp, --deploydb-profile PROFILENAME
|
||||
Spécifier un ou plusieurs profils séparés par des virgules pour le
|
||||
déploiement avec la configuration locale de déploiement. NONE est la
|
||||
valeur par défaut et signifie de ne sélectionner que les définitions
|
||||
sans profil. ALL signifie de ne pas tenir compte des profils dans les
|
||||
définitions.
|
||||
-A, --all-profiles
|
||||
-P, --prod
|
||||
-T, --test
|
||||
Raccourcis respectivement pour -pALL, -pprod et -ptest
|
||||
-c, --dc, --deploydb-config CONFNAME
|
||||
Cette option permet de spécifier un fichier de configuration ou le nom
|
||||
de la configuration locale de déploiement à utiliser pour effectuer la
|
||||
requête. Par défaut, utiliser le nom 'woinst.conf'"
|
||||
}
|
||||
|
||||
__PARSED_HOSTS=()
|
||||
|
@ -169,94 +176,118 @@ tmproot=
|
|||
SSH=
|
||||
hosts=()
|
||||
whosts=()
|
||||
deploy_enable=1
|
||||
deploy_confname=rwoinst
|
||||
deploy_profile=
|
||||
ddb_enable=1
|
||||
ddb_profile=NONE
|
||||
ddb_conf=woinst.conf
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
-T:,--tmproot: tmproot= \
|
||||
-G:,--tmproot: tmproot= \
|
||||
-S:,--ssh: SSH= \
|
||||
-h:,-H:,--host: hosts \
|
||||
-w:,-W:,--whost: whosts \
|
||||
--deploy deploy_enable=1 \
|
||||
--no-deploy deploy_enable= \
|
||||
-c:,--deploy-config deploy_confname= \
|
||||
-p:,--deploy-profile: deploy_profile= \
|
||||
--deploydb ddb_enable=1 \
|
||||
--nd,--no-deploydb ddb_enable= \
|
||||
-p:,--dp:,--deploydb-profile ddb_profile= \
|
||||
-A,--all-profiles ddb_profile=ALL \
|
||||
-P,--prod ddb_profile=prod \
|
||||
-T,--test ddb_profile=test \
|
||||
-c:,--dc:,--deploydb-config ddb_conf= \
|
||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||
|
||||
: "${SSH:=ssh}"
|
||||
|
||||
## Bundle à déployer et hôtes sur lesquels faire le déploiement
|
||||
confirm_bundle=
|
||||
|
||||
# quels informations avons-nous?
|
||||
array_isempty hosts && has_hosts= || has_hosts=1
|
||||
|
||||
if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
|
||||
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de woinst)
|
||||
case "$(basename -- "$(pwd)")" in
|
||||
*.woa|*.framework) bundle=.;;
|
||||
*) bundle=;;
|
||||
esac
|
||||
confirm_bundle=1
|
||||
has_bundle=
|
||||
else
|
||||
bundle="$1"
|
||||
has_bundle=1
|
||||
shift
|
||||
fi
|
||||
|
||||
woinst_options=()
|
||||
if array_isempty hosts && [ -n "$deploy_enable" -a -n "$bundle" ]; then
|
||||
urequire deploy
|
||||
deploy_setconf "$deploy_confname"
|
||||
if deploy_loadconf; then
|
||||
setxx bundlename=abspath "$bundle" // basename --
|
||||
host=(); bounce=; notag=; exec=; dbconfig=; dbconfigmap=
|
||||
if eval "$(deploy_query -v host,bounce,notag,exec,dbconfig,dbconfigmap DEST wobundle rwoinst_bundle "$deploy_profile" shell "$bundlename")"; then
|
||||
array_copy deploy_hosts host
|
||||
deploy_options=()
|
||||
[ -n "$bounce" ] && array_add deploy_options -b
|
||||
[ -n "$notag" ] && array_add deploy_options -n
|
||||
if [ -n "$exec" ]; then
|
||||
for x in "${exec[@]}"; do
|
||||
array_add deploy_options -x "$x"
|
||||
# configuration locale de déploiement
|
||||
if [ -n "$ddb_enable" ]; then
|
||||
# filtrer les options... elles seront ignorées si on passe finalement par
|
||||
# deploydb
|
||||
vars=()
|
||||
options=()
|
||||
for arg in "$@"; do
|
||||
if [[ "$arg" == *=* ]]; then
|
||||
array_add vars "$arg"
|
||||
else
|
||||
array_add options "$arg"
|
||||
fi
|
||||
done
|
||||
|
||||
deploydb=(
|
||||
"$scriptdir/lib/nulib/deploydb"
|
||||
--missing-ok
|
||||
${ddb_conf:+-c "$ddb_conf"}
|
||||
-m woinst
|
||||
--run -r woinst.query_rwoinst "$script"
|
||||
)
|
||||
cmds=()
|
||||
myname="$(basename "$(pwd)")"
|
||||
if [ -n "$has_hosts" ]; then
|
||||
fix_hosts
|
||||
for host in "${hosts[@]}"; do
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$bundle" "$host" "$ddb_profile" "${vars[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
done
|
||||
elif [ -n "$has_bundle" ]; then
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$bundle" "" "$ddb_profile" "${vars[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
elif [[ "$myname" == *.woa ]] || [[ "$myname" == *.framework ]]; then
|
||||
read_value "Veuillez entrer le chemin du bundle à déployer" bundle . O
|
||||
has_bundle=1
|
||||
array_from_lines tmpcmds "$("${deploydb[@]}" "$bundle" "" "$ddb_profile" "${vars[@]}")"
|
||||
array_extend cmds tmpcmds
|
||||
fi
|
||||
if [ ${#cmds[*]} -gt 0 ]; then
|
||||
[ ${#options[*]} -gt 0 ] && ewarn "Les options supplémentaires '${options[*]}' seront ignorées"
|
||||
if check_interaction -c; then
|
||||
if [ ${#cmds[*]} -eq 1 ]; then
|
||||
einfo "La commande suivante va être lancée:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[0]}"; do
|
||||
eecho " ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
else
|
||||
einfo "Les commandes suivantes seront lancées:"
|
||||
eecho "\$ $script --no-deploydb \\"
|
||||
for cmd in "${cmds[@]}"; do
|
||||
eecho " ... ${cmd#$script --no-deploydb }"
|
||||
done
|
||||
fi
|
||||
[ -n "$dbconfig" ] && array_add deploy_options -d "$dbconfig"
|
||||
if [ -n "$dbconfigmap" ]; then
|
||||
for m in "${dbconfigmap[@]}"; do
|
||||
array_add deploy_options -m "$m"
|
||||
done
|
||||
fi
|
||||
deploy_whosts=()
|
||||
host=(); destdir=
|
||||
if eval "$(deploy_query -v host,destdir DEST wobundle rwoinst_webres "$deploy_profile" shell "$bundlename")"; then
|
||||
for wh in "${host[@]}"; do
|
||||
array_add deploy_whosts "$wh:$destdir"
|
||||
done
|
||||
fi
|
||||
msg="$bundlename: ce bundle sera déployé vers les hôtes suivants:
|
||||
$(array_to_lines deploy_hosts "" " ")"
|
||||
if [ ${#deploy_whosts[*]} -gt 0 -o ${#deploy_options[*]} -gt 0 ]; then
|
||||
msg="$msg
|
||||
avec le(s) paramètre(s) suivant(s):"
|
||||
[ ${#deploy_whosts[*]} -gt 0 ] && msg="$msg
|
||||
$(array_to_lines deploy_whosts "" " --whost ")"
|
||||
[ ${#deploy_options[*]} -gt 0 ] && msg="$msg
|
||||
$(qvals "${deploy_options[@]}")"
|
||||
fi
|
||||
check_interaction -c && einfo "$msg"
|
||||
ask_any "Voulez-vous continuer?" Oq || die
|
||||
array_extend hosts deploy_hosts
|
||||
array_extend woinst_options deploy_options
|
||||
array_extend whosts deploy_whosts
|
||||
if [ -n "$confirm_bundle" ]; then
|
||||
confirm_bundle=
|
||||
set -- "$bundle" "$@"
|
||||
read -p "Confirmez ou attendez 4 secondes [On] " -t 4 r
|
||||
if [ $? -gt 128 ]; then
|
||||
echo # cosmetic
|
||||
elif [ $? -le 128 -a -n "$r" ]; then
|
||||
is_yes "$r" || die
|
||||
fi
|
||||
fi
|
||||
r=0
|
||||
for cmd in "${cmds[@]}"; do
|
||||
einfo "$cmd"
|
||||
eval "$cmd" || r=1
|
||||
done
|
||||
exit $r
|
||||
elif [ "$ddb_profile" != "ALL" ]; then
|
||||
ewarn "Aucune configuration locale de déploiement n'a été trouvée pour le profil $ddb_profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$confirm_bundle" ]; then
|
||||
if [ -z "$has_bundle" ]; then
|
||||
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de woinst)
|
||||
read_value "Veuillez entrer la bundle à déployer" bundle "$bundle" O
|
||||
set -- "$bundle" "$@"
|
||||
read_value "Veuillez entrer le chemin du bundle à déployer" bundle "$bundle" O
|
||||
has_bundle=1
|
||||
fi
|
||||
[ -n "$has_bundle" ] && set -- "$bundle" "$@"
|
||||
|
||||
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
|
||||
fix_hosts
|
||||
|
|
29
toinst
29
toinst
|
@ -60,6 +60,12 @@ OPTIONS
|
|||
déployée. Ce compte doit avoir le rôle manager-script à partir de Tomcat
|
||||
6.0.30, et le rôle manager-gui dans les version antérieurs. Par défaut,
|
||||
le fichier tomcat-users.xml est consulté pour avoir cette information.
|
||||
-j, --ensure-pffprofile PFFPROFILE
|
||||
Vérifier que les webapps sont dans le profil pff spécifié. Arrêter le
|
||||
déploiement si ce n'est pas le cas.
|
||||
Si la webapp n'est pas gérée par pff, cette option est ignorée.
|
||||
-e, --set-pffprofile PFFPROFILE
|
||||
Forcer le basculement vers le profil pff spécifié avant le déploiement.
|
||||
-m, --wamap WAMAPS
|
||||
Ajouter un ou plusieurs mappings de la forme src:dest. Avec ce mapping,
|
||||
la webapp src est déployée avec le nom dest. Plusieurs mappings peuvent
|
||||
|
@ -251,6 +257,8 @@ args=(%
|
|||
-g:,--manager-url: manager_url=
|
||||
-u:,--user: manager_user=
|
||||
-p:,--password: manager_password=
|
||||
-j:,--ensure-pffprofile: ensure_pffprofile=
|
||||
-e:,--set-pffprofile: set_pffprofile=
|
||||
-m:,--wamap: wamaps
|
||||
--exclude: excludes
|
||||
--replace-excludes: replace_excludes
|
||||
|
@ -483,6 +491,27 @@ for src in "${srcs[@]}"; do
|
|||
fi
|
||||
done
|
||||
|
||||
if [ -n "$will_deploy" ]; then
|
||||
ko=
|
||||
for src in "${srcs[@]}"; do
|
||||
if [ -f "$src/.pff.conf" -a -d "$src/pff" ]; then
|
||||
# géré par pff
|
||||
if [ -n "$set_pffprofile" ]; then
|
||||
"$scriptdir/pff" -s "$set_pffprofile" "$src" || die
|
||||
fi
|
||||
if [ -L "$src/pff/.Current" -a -n "$ensure_pffprofile" ]; then
|
||||
actual_pffprofile="$(readlink "$src/pff/.Current")"
|
||||
if [ "$actual_pffprofile" != "$ensure_pffprofile" ]; then
|
||||
[ -z "$ko" ] && eimportant "Ce déploiement requière le profil pff '$ensure_pffprofile'"
|
||||
eerror "$(basename "$src"): le profil pff actuel est '$actual_pffprofile'"
|
||||
ko=1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
[ -n "$ko" ] && die
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# Maintenant, nous pouvons faire les actions
|
||||
|
||||
|
|
Loading…
Reference in New Issue