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 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 à utiliser Cette option permet de spécifier le nom de la configuration locale de
pour effectuer la requête. Par défaut, utiliser le nom 'ruinst'" 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_HOSTS=()
__PARSED_FILES=() __PARSED_FILES=()
function parse_hostsfile() { function parse_hostsfile() {
@ -150,6 +124,33 @@ function fix_hosts() {
array_map hosts __dot_is_localhost 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 # Configuration de l'accès par clé aux hôtes
@ -218,15 +219,13 @@ fi
################################################################################ ################################################################################
# Déploiement # Déploiement
make_archive=
## Répertoire à déployer ## Répertoire à déployer
src="$1" if [ $# -eq 0 ] || [[ "$1" == -* ]] || [[ "$1" == *=* ]]; then
if [ -z "$src" ] || [[ "$src" == -* ]]; then
# pas d'argument, ou c'est une option (qui fait donc partie des arguments de uinst) # 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 else
# Enlever le répertoire à déployer. Le reste est pour uinst # Enlever le répertoire à déployer. Le reste est pour uinst
src="$1"
shift shift
fi fi
@ -248,6 +247,7 @@ array_isempty hosts && read_value "Entrez une liste d'hôtes séparés par ':'"
fix_hosts fix_hosts
## Création de l'archive? ## Création de l'archive?
make_archive=
if [ -n "$force_make_archive" ]; then if [ -n "$force_make_archive" ]; then
make_archive=1 make_archive=1
else else

80
rwoinst
View File

@ -10,20 +10,6 @@ USAGE
$scriptname [-H host] [-T tmproot] <file|archive|dir>... [-- options de woinst] $scriptname [-H host] [-T tmproot] <file|archive|dir>... [-- options de woinst]
OPTIONS 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 -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
@ -57,31 +43,6 @@ OPTIONS
pour effectuer la requête. Par défaut, utiliser le nom 'rwoinst'" 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_HOSTS=()
__PARSED_FILES=() __PARSED_FILES=()
function parse_hostsfile() { function parse_hostsfile() {
@ -145,25 +106,34 @@ function fix_hosts() {
array_map hosts __dot_is_localhost array_map hosts __dot_is_localhost
} }
################################################################################ action=deploy
# Configuration de l'accès par clé aux hôtes 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 : "${SSH:=ssh}"
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
## Bundle à déployer ## 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 # pas d'argument, ou c'est une option (qui fait donc partie des arguments de
# woinst) # 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 fi
## Hôtes sur lesquels faire le déploiement ## 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 fix_hosts
## Création de l'archive ## 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 ac_set_tmpdir workdir
bundles=() bundles=()
while [ -n "$1" ]; do while [ -n "$1" ]; do
@ -259,7 +229,7 @@ for host in "${hosts[@]}"; do
user=root user=root
fi fi
etitle -s "Déploiement sur $user@$host" etitle "Déploiement sur $user@$host"
estep "Copie de l'archive" estep "Copie de l'archive"
scp -S "$SSH" "$archive" "$user@$host:" || die scp -S "$SSH" "$archive" "$user@$host:" || die
estep "Lancement du script de déploiement" estep "Lancement du script de déploiement"