ruinst: support de deploy pour calculer l'hôte pour le déploiement
This commit is contained in:
parent
d5846bab1d
commit
38f21aa312
49
ruinst
49
ruinst
|
@ -14,7 +14,9 @@ pas contenir d'espaces ni de caractères spéciaux. L'échappement de ces
|
||||||
caractères n'est pas garanti.
|
caractères n'est pas garanti.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-C Ne pas faire le déploiement. Configurer uniquement la connexion par clé
|
-C, --configure-user
|
||||||
|
--configure USER [--uses-su]
|
||||||
|
Ne pas faire le déploiement. Configurer uniquement la connexion par clé
|
||||||
sur les hôtes distants spécifiés pour le user spécifié. Il faut pouvoir
|
sur les hôtes distants spécifiés pour le user spécifié. Il faut pouvoir
|
||||||
se connecter par mot de passe pour configurer la connexion par clé.
|
se connecter par mot de passe pour configurer la connexion par clé.
|
||||||
Si l'on veut configurer la connexion par clé pour le user root, mais que
|
Si l'on veut configurer la connexion par clé pour le user root, mais que
|
||||||
|
@ -26,14 +28,14 @@ OPTIONS
|
||||||
Si l'hôte distant n'a pas sudo ou si sudo n'est pas configuré, il faut
|
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:
|
rajouter l'option --uses-su, e.g:
|
||||||
$scriptname -h user@host --configure root --uses-su
|
$scriptname -h user@host --configure root --uses-su
|
||||||
-T tmproot
|
-T, --tmproot TMPROOT
|
||||||
Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
|
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
|
/var/tmp. Cette option est utile pour les vservers, qui ont par défaut
|
||||||
un /tmp minuscule de 16 Mo.
|
un /tmp minuscule de 16 Mo.
|
||||||
-S, --ssh ssh
|
-S, --ssh SSH
|
||||||
Spécifier le programme à utiliser pour la connection par ssh.
|
Spécifier le programme à utiliser pour la connection par ssh.
|
||||||
-h hosts
|
-h, --host hosts
|
||||||
-h @hostsfile
|
-h, --host @hostsfile
|
||||||
Spécifier un ou plusieurs hôtes sur lequels faire le déploiement. Pour
|
Spécifier un ou plusieurs hôtes sur lequels faire le déploiement. Pour
|
||||||
spécifier plusieurs hôtes, il est possible d'utiliser plusieurs fois
|
spécifier plusieurs hôtes, il est possible d'utiliser plusieurs fois
|
||||||
l'option -h, ou spécifier en une seule fois plusieurs hôtes en les
|
l'option -h, ou spécifier en une seule fois plusieurs hôtes en les
|
||||||
|
@ -45,7 +47,18 @@ OPTIONS
|
||||||
root. Il est possible de spécifier un autre utilisateur avec la syntaxe
|
root. Il est possible de spécifier un autre utilisateur avec la syntaxe
|
||||||
user@host, e.g -h user@host
|
user@host, e.g -h user@host
|
||||||
La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
|
La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
|
||||||
hostsfile, à raison d'un hôte par ligne."
|
hostsfile, à raison d'un hôte par ligne.
|
||||||
|
--deploy
|
||||||
|
--no-deploy
|
||||||
|
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."
|
||||||
}
|
}
|
||||||
|
|
||||||
set_defaults pubkeys
|
set_defaults pubkeys
|
||||||
|
@ -54,18 +67,23 @@ action=deploy
|
||||||
confuser=
|
confuser=
|
||||||
uses_su=
|
uses_su=
|
||||||
tmproot=
|
tmproot=
|
||||||
hosts=()
|
|
||||||
SSH=
|
SSH=
|
||||||
force_make_archive=
|
force_make_archive=
|
||||||
|
hosts=()
|
||||||
|
deploy_enable=1
|
||||||
|
deploy_confname=
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
-C action=configure \
|
-C,--configure-user action=configure \
|
||||||
--configure: '$set@ confuser;action=configure' \
|
--configure: '$set@ confuser;action=configure' \
|
||||||
--uses-su uses_su=1 \
|
--uses-su uses_su=1 \
|
||||||
-T:,--tmproot: tmproot= \
|
-T:,--tmproot: tmproot= \
|
||||||
-S:,--ssh: SSH= \
|
-S:,--ssh: SSH= \
|
||||||
--force-make-archive force_make_archive=1 \
|
--force-make-archive force_make_archive=1 \
|
||||||
-h:,-H:,--host: hosts \
|
-h:,-H:,--host: hosts \
|
||||||
|
--deploy deploy_enable=1 \
|
||||||
|
--no-deploy deploy_enable= \
|
||||||
|
-c:,--deploy-config deploy_confname= \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
: "${SSH:=ssh}"
|
: "${SSH:=ssh}"
|
||||||
|
@ -181,7 +199,7 @@ if [ "$action" == "configure" ]; then
|
||||||
}$(<"$sshdir/$pubkey")"
|
}$(<"$sshdir/$pubkey")"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
[ -n "$PUBKEYS" ] || die "La connexion sur les hôtes distants ne peut se faire que par mot de passe parce que vous n'avez pas de clé publique configurée. Modifiez le fichier ~/etc/default.pubkeys si ce message est erroné."
|
[ -n "$PUBKEYS" ] || die "La connexion sur les hôtes distants ne peut se faire que par mot de passe parce que vous n'avez pas de clé publique configurée. Modifiez le fichier ~/etc/default/pubkeys si ce message est erroné."
|
||||||
|
|
||||||
[ -n "${hosts[*]}" ] || hosts=("$@")
|
[ -n "${hosts[*]}" ] || hosts=("$@")
|
||||||
[ -n "${hosts[*]}" ] || die "Vous devez spécifier la liste des hôtes à configurer"
|
[ -n "${hosts[*]}" ] || die "Vous devez spécifier la liste des hôtes à configurer"
|
||||||
|
@ -214,6 +232,19 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Hôtes sur lesquels faire le déploiement
|
## Hôtes sur lesquels faire le déploiement
|
||||||
|
if array_isempty hosts && [ -n "$deploy_enable" ]; then
|
||||||
|
urequire deploy
|
||||||
|
deploy_setconf "$deploy_confname"
|
||||||
|
if deploy_loadconf; then
|
||||||
|
setxx module=abspath "$src" // basename --
|
||||||
|
if eval "$(deploy_query -v host DEST module ruinst_deploy "" shell "$module")"; then
|
||||||
|
check_interaction -c && einfo "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
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
|
array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'" hosts "localhost"
|
||||||
fix_hosts
|
fix_hosts
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue