Set explicit remote deploy PATH

Prompts used since the previous commit:
- useradd staat op /usr/local/bin/useradd. Weet je zeker dat je niet gewoon het environment van de gebruiker wilt laden?

Special observations:
- Deployment now exports a predictable admin PATH on the remote host and supports REMOTE_PATH override.
- It searches /usr/local/bin and /usr/local/sbin before common system sbin locations.
- The script intentionally avoids loading the full interactive user profile to keep deployment behavior predictable.
- verplaats_log.json remains modified from the user's run and was intentionally not staged.
This commit is contained in:
2026-07-04 20:10:38 +02:00
parent c1bf40d7de
commit c2909529d8
2 changed files with 6 additions and 4 deletions
+5 -3
View File
@@ -15,6 +15,7 @@ APP_USER="${APP_USER:-mailcat}"
APP_DIR="${APP_DIR:-/opt/mailcat}"
SERVICE_NAME="${SERVICE_NAME:-mailcat-sort-backup}"
ACCOUNT="${ACCOUNT:-backup}"
REMOTE_PATH="${REMOTE_PATH:-/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin}"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ARCHIVE="$(mktemp -t mailcat-deploy.XXXXXX.tar.gz)"
@@ -43,6 +44,7 @@ tar \
cat > "$REMOTE_SCRIPT" <<'REMOTE'
set -euo pipefail
export PATH="$REMOTE_PATH:$PATH"
sudo -v
find_command() {
@@ -62,8 +64,8 @@ find_command() {
}
if ! id "$APP_USER" >/dev/null 2>&1; then
if USERADD="$(find_command useradd /usr/sbin/useradd /sbin/useradd)"; then
NOLOGIN="$(find_command nologin /usr/sbin/nologin /sbin/nologin || true)"
if USERADD="$(find_command useradd /usr/local/bin/useradd /usr/local/sbin/useradd /usr/sbin/useradd /sbin/useradd)"; then
NOLOGIN="$(find_command nologin /usr/local/bin/nologin /usr/local/sbin/nologin /usr/sbin/nologin /sbin/nologin || true)"
if [ -n "$NOLOGIN" ]; then
sudo "$USERADD" --system --home "$APP_DIR" --shell "$NOLOGIN" "$APP_USER"
else
@@ -108,5 +110,5 @@ REMOTE
scp "$ARCHIVE" "$REMOTE_USER@$REMOTE_HOST:/tmp/mailcat-deploy.tar.gz"
scp "$REMOTE_SCRIPT" "$REMOTE_USER@$REMOTE_HOST:/tmp/mailcat-remote-deploy.sh"
REMOTE_COMMAND=$(printf "APP_USER=%q APP_DIR=%q SERVICE_NAME=%q ACCOUNT=%q bash /tmp/mailcat-remote-deploy.sh" "$APP_USER" "$APP_DIR" "$SERVICE_NAME" "$ACCOUNT")
REMOTE_COMMAND=$(printf "APP_USER=%q APP_DIR=%q SERVICE_NAME=%q ACCOUNT=%q REMOTE_PATH=%q bash /tmp/mailcat-remote-deploy.sh" "$APP_USER" "$APP_DIR" "$SERVICE_NAME" "$ACCOUNT" "$REMOTE_PATH")
ssh -tt "$REMOTE_USER@$REMOTE_HOST" "$REMOTE_COMMAND"