feat : correction bug scp (WIP)
This commit is contained in:
@@ -102,7 +102,7 @@ cleanup() {
|
|||||||
}
|
}
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
copy_file_to_remote() {
|
copy_file_to_remote_via_ssh() {
|
||||||
local local_file="$1"
|
local local_file="$1"
|
||||||
local remote_final_path="$2"
|
local remote_final_path="$2"
|
||||||
local remote_mode="$3"
|
local remote_mode="$3"
|
||||||
@@ -113,7 +113,7 @@ copy_file_to_remote() {
|
|||||||
[[ -r "$local_file" ]] || fail "fichier source non lisible : $local_file"
|
[[ -r "$local_file" ]] || fail "fichier source non lisible : $local_file"
|
||||||
|
|
||||||
remote_parent="$(dirname "$remote_final_path")"
|
remote_parent="$(dirname "$remote_final_path")"
|
||||||
remote_tmp="/tmp/$(basename "$remote_final_path").$$.$RANDOM.tmp"
|
remote_tmp="/tmp/bootstrap_copy.$$.$RANDOM.tmp"
|
||||||
|
|
||||||
ssh "${SSH_OPTS[@]}" "$REMOTE" "
|
ssh "${SSH_OPTS[@]}" "$REMOTE" "
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -122,8 +122,10 @@ copy_file_to_remote() {
|
|||||||
test -w $(shell_quote "$remote_parent")
|
test -w $(shell_quote "$remote_parent")
|
||||||
" >/dev/null 2>&1 || fail "dossier distant absent ou non inscriptible : $remote_parent"
|
" >/dev/null 2>&1 || fail "dossier distant absent ou non inscriptible : $remote_parent"
|
||||||
|
|
||||||
scp "${SSH_OPTS[@]}" "$local_file" "${REMOTE}:${remote_tmp}" >/dev/null 2>&1 \
|
cat "$local_file" | ssh "${SSH_OPTS[@]}" "$REMOTE" "
|
||||||
|| fail "échec de copie temporaire vers ${remote_tmp}"
|
set -euo pipefail
|
||||||
|
cat > $(shell_quote "$remote_tmp")
|
||||||
|
" >/dev/null 2>&1 || fail "échec de copie distante via SSH vers ${remote_tmp}"
|
||||||
|
|
||||||
ssh "${SSH_OPTS[@]}" "$REMOTE" "
|
ssh "${SSH_OPTS[@]}" "$REMOTE" "
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -229,7 +231,6 @@ to_bool_yes_no "$TARGET_BOOTSTRAP_ALLOW_PASSWORDLESS_SUDO_VALUE" >/dev/null || f
|
|||||||
ALLOW_PASSWORDLESS_SUDO="$(to_bool_yes_no "$TARGET_BOOTSTRAP_ALLOW_PASSWORDLESS_SUDO_VALUE")"
|
ALLOW_PASSWORDLESS_SUDO="$(to_bool_yes_no "$TARGET_BOOTSTRAP_ALLOW_PASSWORDLESS_SUDO_VALUE")"
|
||||||
|
|
||||||
require_cmd ssh
|
require_cmd ssh
|
||||||
require_cmd scp
|
|
||||||
require_cmd python3
|
require_cmd python3
|
||||||
|
|
||||||
SSH_OPTS=(
|
SSH_OPTS=(
|
||||||
@@ -321,17 +322,17 @@ EXCLUDED_RESTORE_ROLES=$(printf '%s\n' "$TARGET_EXCLUDED_RESTORE_ROLES_VALUE")
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
log "Copie du .env cible"
|
log "Copie du .env cible"
|
||||||
copy_file_to_remote "$TMP_ENV_FILE" "$TARGET_ENV_FILE_PATH" "600"
|
copy_file_to_remote_via_ssh "$TMP_ENV_FILE" "$TARGET_ENV_FILE_PATH" "600"
|
||||||
|
|
||||||
REMOTE_SSH_DIR="$(dirname "$TARGET_SSH_KEY_VALUE")"
|
REMOTE_SSH_DIR="$(dirname "$TARGET_SSH_KEY_VALUE")"
|
||||||
REMOTE_KNOWN_HOSTS="${REMOTE_SSH_DIR}/known_hosts"
|
REMOTE_KNOWN_HOSTS="${REMOTE_SSH_DIR}/known_hosts"
|
||||||
|
|
||||||
log "Copie de la clé privée backup sur la cible"
|
log "Copie de la clé privée backup sur la cible"
|
||||||
copy_file_to_remote "$TARGET_BACKUP_SOURCE_SSH_PRIVATE_KEY_VALUE" "$TARGET_SSH_KEY_VALUE" "600"
|
copy_file_to_remote_via_ssh "$TARGET_BACKUP_SOURCE_SSH_PRIVATE_KEY_VALUE" "$TARGET_SSH_KEY_VALUE" "600"
|
||||||
|
|
||||||
if [[ -n "$TARGET_BACKUP_SOURCE_SSH_PUBLIC_KEY_VALUE" ]]; then
|
if [[ -n "$TARGET_BACKUP_SOURCE_SSH_PUBLIC_KEY_VALUE" ]]; then
|
||||||
log "Copie de la clé publique backup sur la cible"
|
log "Copie de la clé publique backup sur la cible"
|
||||||
copy_file_to_remote "$TARGET_BACKUP_SOURCE_SSH_PUBLIC_KEY_VALUE" "${TARGET_SSH_KEY_VALUE}.pub" "644"
|
copy_file_to_remote_via_ssh "$TARGET_BACKUP_SOURCE_SSH_PUBLIC_KEY_VALUE" "${TARGET_SSH_KEY_VALUE}.pub" "644"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
REMOTE_SSH_PERMS_CMD="
|
REMOTE_SSH_PERMS_CMD="
|
||||||
|
|||||||
Reference in New Issue
Block a user