maj doc ruinst et désactiver déploiement de clé par rwoinst

This commit is contained in:
Jephté Clain 2017-04-18 11:35:27 +04:00
parent 2991e63d5b
commit 836c933949
2 changed files with 59 additions and 89 deletions

68
ruinst
View File

@ -56,37 +56,11 @@ 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 à utiliser
pour effectuer la requête. Par défaut, utiliser le nom 'ruinst'"
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'"
}
set_defaults pubkeys
action=deploy
confuser=
uses_su=
tmproot=
SSH=
force_make_archive=
hosts=()
deploy_enable=1
deploy_confname=ruinst
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= \
-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= \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
: "${SSH:=ssh}"
__PARSED_HOSTS=()
__PARSED_FILES=()
function parse_hostsfile() {
@ -150,6 +124,33 @@ function fix_hosts() {
array_map hosts __dot_is_localhost
}
set_defaults pubkeys
action=deploy
confuser=
uses_su=
tmproot=
SSH=
force_make_archive=
hosts=()
deploy_enable=1
deploy_confname=ruinst
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= \
-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= \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
: "${SSH:=ssh}"
################################################################################
# Configuration de l'accès par clé aux hôtes
@ -218,15 +219,13 @@ fi
################################################################################
# Déploiement
make_archive=
## Répertoire à déployer
src="$1"
if [ -z "$src" ] || [[ "$src" == -* ]]; then
if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; 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 "."
read_value "Entrez le répertoire à déployer" src "." O
else
# Enlever le répertoire à déployer. Le reste est pour uinst
src="$1"
shift
fi
@ -248,6 +247,7 @@ array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'"
fix_hosts
## Création de l'archive?
make_archive=
if [ -n "$force_make_archive" ]; then
make_archive=1
else

80
rwoinst
View File

@ -10,20 +10,6 @@ USAGE
$scriptname [-H host] [-T tmproot] <file|archive|dir>... [-- options de woinst]
OPTIONS
-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
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
ce n'est pas possible de se connecter par mot de passe avec le user root
sur l'hôte distant, et qu'il existe un user sudoer sur l'hôte distant,
il est possible de faire la configuration avec '--configure root'. La
commande serait alors
$scriptname -H user@host --configure root
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
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
@ -57,31 +43,6 @@ OPTIONS
pour effectuer la requête. Par défaut, utiliser le nom 'rwoinst'"
}
set_defaults pubkeys
action=deploy
confuser=
uses_su=
tmproot=
SSH=
hosts=()
deploy_enable=1
deploy_confname=rwoinst
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= \
-S:,--ssh: SSH= \
-h:,-H:,--host: hosts \
--deploy deploy_enable=1 \
--no-deploy deploy_enable= \
-c:,--deploy-config deploy_confname= \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
SSH="${SSH:-ssh}"
__PARSED_HOSTS=()
__PARSED_FILES=()
function parse_hostsfile() {
@ -145,25 +106,34 @@ function fix_hosts() {
array_map hosts __dot_is_localhost
}
################################################################################
# Configuration de l'accès par clé aux hôtes
action=deploy
tmproot=
SSH=
hosts=()
deploy_enable=1
deploy_confname=rwoinst
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
-T:,--tmproot: tmproot= \
-S:,--ssh: SSH= \
-h:,-H:,--host: hosts \
--deploy deploy_enable=1 \
--no-deploy deploy_enable= \
-c:,--deploy-config deploy_confname= \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
if [ "$action" == "configure" ]; then
args=(${confuser:+--configure "$confuser"} ${uses_su:+--uses-su} -S "$SSH")
for host in "${hosts[@]}"; do
args=("${args[@]}" -H "$host")
done
exec "$scriptdir/ruinst" -C "${args[@]}"
fi
################################################################################
# Déploiement
: "${SSH:=ssh}"
## Bundle à déployer
if [ -z "$1" ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de
# woinst)
die "Vous devez spécifier le bundle à déployer"
case "$(dirname "$(pwd)")" in
*.woa|*.framework) bundle=.;;
*) bundle=;;
esac
read_value "Veuillez entrer le bundle à déployer" bundle "$bundle" O
set -- "$bundle" "$@"
fi
## Hôtes sur lesquels faire le déploiement
@ -184,7 +154,7 @@ array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'"
fix_hosts
## Création de l'archive
etitle -s "Création du répertoire de travail"
etitle "Création du répertoire de travail"
ac_set_tmpdir workdir
bundles=()
while [ -n "$1" ]; do
@ -259,7 +229,7 @@ for host in "${hosts[@]}"; do
user=root
fi
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
estep "Lancement du script de déploiement"