feat : repertorie bug (WIP)

This commit is contained in:
2026-03-17 15:49:44 +01:00
parent fbefe3fb03
commit 12bbe6b1d9
3 changed files with 64 additions and 49 deletions

View File

@@ -318,28 +318,28 @@ ssh "${SSH_OPTS[@]}" "$REMOTE" "$REMOTE_SETUP_CMD" \
TMP_ENV_FILE="$(mktemp)"
cat >"$TMP_ENV_FILE" <<EOF
ENV_NAME=$(printf '%s\n' "$TARGET_ENV_NAME_VALUE")
PGHOST=$(printf '%s\n' "$TARGET_PGHOST_VALUE")
PGPORT=$(printf '%s\n' "$TARGET_PGPORT_VALUE")
PGUSER=$(printf '%s\n' "$TARGET_PGUSER_VALUE")
PGPASSWORD=$(printf '%s\n' "$TARGET_PGPASSWORD_VALUE")
DBS=$(printf '%s\n' "$TARGET_DBS_VALUE")
ENV_NAME=$(shell_quote "$TARGET_ENV_NAME_VALUE")
PGHOST=$(shell_quote "$TARGET_PGHOST_VALUE")
PGPORT=$(shell_quote "$TARGET_PGPORT_VALUE")
PGUSER=$(shell_quote "$TARGET_PGUSER_VALUE")
PGPASSWORD=$(shell_quote "$TARGET_PGPASSWORD_VALUE")
DBS=$(shell_quote "$TARGET_DBS_VALUE")
BACKUP_REMOTE_USER=$(printf '%s\n' "$TARGET_BACKUP_REMOTE_USER_VALUE")
BACKUP_REMOTE_HOST=$(printf '%s\n' "$TARGET_BACKUP_REMOTE_HOST_VALUE")
BACKUP_REMOTE_DIR=$(printf '%s\n' "$TARGET_BACKUP_REMOTE_DIR_VALUE")
BACKUP_REMOTE_SSH_PORT=$(printf '%s\n' "$TARGET_BACKUP_REMOTE_SSH_PORT_VALUE")
BACKUP_REMOTE_USER=$(shell_quote "$TARGET_BACKUP_REMOTE_USER_VALUE")
BACKUP_REMOTE_HOST=$(shell_quote "$TARGET_BACKUP_REMOTE_HOST_VALUE")
BACKUP_REMOTE_DIR=$(shell_quote "$TARGET_BACKUP_REMOTE_DIR_VALUE")
BACKUP_REMOTE_SSH_PORT=$(shell_quote "$TARGET_BACKUP_REMOTE_SSH_PORT_VALUE")
BACKUP_LOG_DIR=$(printf '%s\n' "$TARGET_BACKUP_LOG_DIR_VALUE")
LOCAL_RESTORE_BASE_DIR=$(printf '%s\n' "$TARGET_LOCAL_RESTORE_BASE_DIR_VALUE")
REMOTE_ROLES_DIR_NAME=$(printf '%s\n' "$TARGET_REMOTE_ROLES_DIR_NAME_VALUE")
SSH_KEY=$(printf '%s\n' "$TARGET_SSH_KEY_VALUE")
BACKUP_LOG_DIR=$(shell_quote "$TARGET_BACKUP_LOG_DIR_VALUE")
LOCAL_RESTORE_BASE_DIR=$(shell_quote "$TARGET_LOCAL_RESTORE_BASE_DIR_VALUE")
REMOTE_ROLES_DIR_NAME=$(shell_quote "$TARGET_REMOTE_ROLES_DIR_NAME_VALUE")
SSH_KEY=$(shell_quote "$TARGET_SSH_KEY_VALUE")
AUTO_INSTALL_POSTGRES=$(printf '%s\n' "$TARGET_AUTO_INSTALL_POSTGRES_VALUE")
AUTO_CREATE_PGUSER=$(printf '%s\n' "$TARGET_AUTO_CREATE_PGUSER_VALUE")
PGUSER_SUPERUSER=$(printf '%s\n' "$TARGET_PGUSER_SUPERUSER_VALUE")
AUTO_CONFIGURE_SUDOERS=$(printf '%s\n' "$TARGET_AUTO_CONFIGURE_SUDOERS_VALUE")
EXCLUDED_RESTORE_ROLES=$(printf '%s\n' "$TARGET_EXCLUDED_RESTORE_ROLES_VALUE")
AUTO_INSTALL_POSTGRES=$(shell_quote "$TARGET_AUTO_INSTALL_POSTGRES_VALUE")
AUTO_CREATE_PGUSER=$(shell_quote "$TARGET_AUTO_CREATE_PGUSER_VALUE")
PGUSER_SUPERUSER=$(shell_quote "$TARGET_PGUSER_SUPERUSER_VALUE")
AUTO_CONFIGURE_SUDOERS=$(shell_quote "$TARGET_AUTO_CONFIGURE_SUDOERS_VALUE")
EXCLUDED_RESTORE_ROLES=$(shell_quote "$TARGET_EXCLUDED_RESTORE_ROLES_VALUE")
EOF
log "Copie du .env cible"

View File

@@ -122,37 +122,37 @@ if [[ -f "$TARGET_FILE" && "$FORCE" != "yes" ]]; then
fi
cat >"$TARGET_FILE" <<EOF
TARGET_HOST=${HOST}
TARGET_PORT=${PORT}
TARGET_BOOTSTRAP_USER=${BOOTSTRAP_USER}
TARGET_BOOTSTRAP_SSH_KEY=${BOOTSTRAP_SSH_KEY}
TARGET_RUNTIME_USER=${RUNTIME_USER}
TARGET_HOST=$(printf '%q' "$HOST")
TARGET_PORT=$(printf '%q' "$PORT")
TARGET_BOOTSTRAP_USER=$(printf '%q' "$BOOTSTRAP_USER")
TARGET_BOOTSTRAP_SSH_KEY=$(printf '%q' "$BOOTSTRAP_SSH_KEY")
TARGET_RUNTIME_USER=$(printf '%q' "$RUNTIME_USER")
TARGET_ENABLE_BOOTSTRAP=${ENABLE_BOOTSTRAP}
TARGET_BOOTSTRAP_ALLOW_PASSWORDLESS_SUDO=${ALLOW_PASSWORDLESS_SUDO}
TARGET_ENABLE_BOOTSTRAP=$(printf '%q' "$ENABLE_BOOTSTRAP")
TARGET_BOOTSTRAP_ALLOW_PASSWORDLESS_SUDO=$(printf '%q' "$ALLOW_PASSWORDLESS_SUDO")
TARGET_REPO_DIR=${REPO_DIR}
TARGET_ENV_FILE=${ENV_FILE}
TARGET_REPO_DIR=$(printf '%q' "$REPO_DIR")
TARGET_ENV_FILE=$(printf '%q' "$ENV_FILE")
TARGET_ENV_NAME=${ENV_NAME}
TARGET_PGHOST=${PGHOST}
TARGET_PGPORT=${PGPORT}
TARGET_PGUSER=${PGUSER}
TARGET_PGPASSWORD=${PGPASSWORD}
TARGET_DBS=${DBS}
TARGET_ENV_NAME=$(printf '%q' "$ENV_NAME")
TARGET_PGHOST=$(printf '%q' "$PGHOST")
TARGET_PGPORT=$(printf '%q' "$PGPORT")
TARGET_PGUSER=$(printf '%q' "$PGUSER")
TARGET_PGPASSWORD=$(printf '%q' "$PGPASSWORD")
TARGET_DBS=$(printf '%q' "$DBS")
TARGET_BACKUP_SUBDIR=${BACKUP_SUBDIR}
TARGET_BACKUP_SUBDIR=$(printf '%q' "$BACKUP_SUBDIR")
TARGET_BACKUP_LOG_DIR=${BACKUP_LOG_DIR}
TARGET_LOCAL_RESTORE_BASE_DIR=${LOCAL_RESTORE_BASE_DIR}
TARGET_SSH_KEY=${SSH_KEY_TARGET_PATH}
TARGET_BACKUP_LOG_DIR=$(printf '%q' "$BACKUP_LOG_DIR")
TARGET_LOCAL_RESTORE_BASE_DIR=$(printf '%q' "$LOCAL_RESTORE_BASE_DIR")
TARGET_SSH_KEY=$(printf '%q' "$SSH_KEY_TARGET_PATH")
TARGET_REMOTE_ROLES_DIR_NAME=${REMOTE_ROLES_DIR_NAME}
TARGET_EXCLUDED_RESTORE_ROLES=${EXCLUDED_RESTORE_ROLES}
TARGET_AUTO_INSTALL_POSTGRES=${AUTO_INSTALL_POSTGRES}
TARGET_AUTO_CREATE_PGUSER=${AUTO_CREATE_PGUSER}
TARGET_PGUSER_SUPERUSER=${PGUSER_SUPERUSER}
TARGET_AUTO_CONFIGURE_SUDOERS=${AUTO_CONFIGURE_SUDOERS}
TARGET_REMOTE_ROLES_DIR_NAME=$(printf '%q' "$REMOTE_ROLES_DIR_NAME")
TARGET_EXCLUDED_RESTORE_ROLES=$(printf '%q' "$EXCLUDED_RESTORE_ROLES")
TARGET_AUTO_INSTALL_POSTGRES=$(printf '%q' "$AUTO_INSTALL_POSTGRES")
TARGET_AUTO_CREATE_PGUSER=$(printf '%q' "$AUTO_CREATE_PGUSER")
TARGET_PGUSER_SUPERUSER=$(printf '%q' "$PGUSER_SUPERUSER")
TARGET_AUTO_CONFIGURE_SUDOERS=$(printf '%q' "$AUTO_CONFIGURE_SUDOERS")
EOF
chmod 600 "$TARGET_FILE" || fail "chmod impossible sur $TARGET_FILE"

View File

@@ -5,6 +5,12 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG_DIR="${SCRIPT_DIR}/Config"
GLOBAL_ENV_FILE_DEFAULT="${CONFIG_DIR}/global.env"
TARGETS_DIR_DEFAULT="${CONFIG_DIR}/Targets"
GIT_TOPLEVEL="$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel 2>/dev/null || true)"
LOCAL_REPO_SUBDIR_DEFAULT=""
if [[ -n "$GIT_TOPLEVEL" && "$SCRIPT_DIR" == "$GIT_TOPLEVEL"/* ]]; then
LOCAL_REPO_SUBDIR_DEFAULT="${SCRIPT_DIR#"$GIT_TOPLEVEL"/}"
fi
GLOBAL_ENV_FILE="${GLOBAL_ENV_FILE:-$GLOBAL_ENV_FILE_DEFAULT}"
TARGETS_DIR="${TARGETS_DIR:-$TARGETS_DIR_DEFAULT}"
@@ -160,6 +166,7 @@ TARGET_SSH_KEY="${TARGET_BOOTSTRAP_SSH_KEY:-}"
TARGET_REPO_URL="${TARGET_REPO_URL:-${GLOBAL_REPO_URL:-}}"
TARGET_REPO_BRANCH="${TARGET_REPO_BRANCH:-${GLOBAL_REPO_BRANCH:-main}}"
TARGET_REPO_DIR="${TARGET_REPO_DIR:-}"
TARGET_REPO_SUBDIR="${TARGET_REPO_SUBDIR:-$LOCAL_REPO_SUBDIR_DEFAULT}"
TARGET_ENV_FILE="${TARGET_ENV_FILE:-}"
TARGET_ENABLE_BOOTSTRAP="${TARGET_ENABLE_BOOTSTRAP:-${GLOBAL_ENABLE_BOOTSTRAP:-yes}}"
@@ -175,6 +182,14 @@ TARGET_ENABLE_BOOTSTRAP="${TARGET_ENABLE_BOOTSTRAP:-${GLOBAL_ENABLE_BOOTSTRAP:-y
[[ -n "$TARGET_REPO_DIR" ]] || fail "TARGET_REPO_DIR manquante"
[[ -n "$TARGET_ENV_FILE" ]] || fail "TARGET_ENV_FILE manquante"
TARGET_REPO_SUBDIR="${TARGET_REPO_SUBDIR#/}"
TARGET_REPO_SUBDIR="${TARGET_REPO_SUBDIR%/}"
TARGET_SCRIPT_DIR="$TARGET_REPO_DIR"
if [[ -n "$TARGET_REPO_SUBDIR" && "$TARGET_REPO_DIR" != */"$TARGET_REPO_SUBDIR" ]]; then
TARGET_SCRIPT_DIR="${TARGET_REPO_DIR}/${TARGET_REPO_SUBDIR}"
fi
TARGET_ENABLE_BOOTSTRAP="$(to_bool_yes_no "$TARGET_ENABLE_BOOTSTRAP")" || fail "TARGET_ENABLE_BOOTSTRAP invalide"
BOOTSTRAP_SCRIPT_LOCAL="${SCRIPT_DIR}/bootstrap-target-host.sh"
@@ -248,16 +263,16 @@ SSH_OPTS=(
ssh "${SSH_OPTS[@]}" "${TARGET_USER}@${TARGET_HOST}" "exit 0" >/dev/null 2>&1 \
|| fail "connexion SSH impossible vers la cible ${TARGET_USER}@${TARGET_HOST}"
TARGET_CORE_SCRIPT="${TARGET_REPO_DIR}/rebuild-bdd-core.sh"
TARGET_CORE_SCRIPT="${TARGET_SCRIPT_DIR}/rebuild-bdd-core.sh"
REMOTE_BOOTSTRAP_CMD="
set -euo pipefail
REPO_DIR=$(shell_quote "$TARGET_REPO_DIR")
REPO_DIR=$(shell_quote "$TARGET_SCRIPT_DIR")
REPO_URL=$(shell_quote "$TARGET_REPO_URL")
REPO_BRANCH=$(shell_quote "$TARGET_REPO_BRANCH")
CORE_SCRIPT=$(shell_quote "$TARGET_CORE_SCRIPT")
PRECHECK_SCRIPT=$(shell_quote "${TARGET_REPO_DIR}/Checkup/check-target-readiness.sh")
PRECHECK_SCRIPT=$(shell_quote "${TARGET_SCRIPT_DIR}/Checkup/check-target-readiness.sh")
TARGET_ENV_FILE=$(shell_quote "$TARGET_ENV_FILE")
REQUESTED_DB=$(shell_quote "$REQUESTED_DB")
ALLOW_OVERWRITE=$(shell_quote "$ALLOW_OVERWRITE")