diff --git a/CLAUDE.md b/CLAUDE.md index 09eb93b..e062e81 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -139,4 +139,8 @@ Dillo alla persona, invece di farle scoprire un rosso inspiegabile: correggerlo; - **alcuni progetti non hanno ancora tutti i segreti su SSM**: in locale qualcosa può mancare; -- la produzione nuova non esiste ancora: in `~/.ssh/config` c'è quella vecchia. +- **le produzioni sono due** finché i siti non sono migrati tutti: in + `~/.ssh/config` ci sono `oto-production` (la macchina nuova, dietro la VPN + come staging, utente `admin.produzione`) e `oto-production-old` (quella + dove girano ancora i siti). Chi ha il ruolo di rilascio entra in tutte e + due; per gli altri sono gialle tutte e due, ed è normale. diff --git a/comune.sh b/comune.sh index a71cef0..bb8a574 100755 --- a/comune.sh +++ b/comune.sh @@ -14,15 +14,20 @@ TOKEN_GITEA_FILE="$HOME/.config/oto/gitea.token" CHIAVE_SSH="$HOME/.ssh/oto_ed25519" CARTELLA_PROGETTI="${CARTELLA_PROGETTI:-$HOME/Work/workspace/oto}" -# I server, con i nomi che usano gli script dei progetti. Staging sta su rete -# privata: senza VPN non risponde. La produzione di oggi e' quella vecchia, -# oto-production-old: oto-production resta per la macchina nuova, e quando -# arriva la si aggiunge qui e si rilancia configura.sh. +# I server, con i nomi che usano gli script dei progetti. Staging e la +# produzione nuova stanno su rete privata: senza VPN non rispondono. Le +# produzioni sono due finche' i siti non sono migrati tutti: oto-production +# e' la macchina nuova (dal 05/10/2026), oto-production-old quella dove +# girano ancora i siti. Sulla nuova l'utente non e' admin. STAGING_NOME="oto-staging" STAGING_HOST="10.110.185.10" -PRODUZIONE_NOME="oto-production-old" -PRODUZIONE_HOST="vps-production.oto-farm.com" -UTENTE_SERVER="admin" +STAGING_UTENTE="admin" +PRODUZIONE_NOME="oto-production" +PRODUZIONE_HOST="10.110.137.20" +PRODUZIONE_UTENTE="admin.produzione" +PRODUZIONE_VECCHIA_NOME="oto-production-old" +PRODUZIONE_VECCHIA_HOST="vps-production.oto-farm.com" +PRODUZIONE_VECCHIA_UTENTE="admin" # Un parametro che ogni ruolo di sviluppo puo' leggere: serve a verifica.sh # per sapere se l'accesso AWS arriva davvero alla cassaforte. diff --git a/configura.sh b/configura.sh index de33b69..ccd56a6 100755 --- a/configura.sh +++ b/configura.sh @@ -182,7 +182,9 @@ FUORI="$(awk -v i="$INIZIO" -v f="$FINE_BLOCCO" '$0 == i {dentro=1; next} $0 == # /c/Users/..., che l'OpenSSH di Windows (quello di VS Code) non capisce. CHIAVE_CONFIG="~${CHIAVE_SSH#"$HOME"}" BLOCCO="$INIZIO" -for VOCE in "$STAGING_NOME $STAGING_HOST" "$PRODUZIONE_NOME $PRODUZIONE_HOST" ; do +for VOCE in "$STAGING_NOME $STAGING_HOST $STAGING_UTENTE" \ + "$PRODUZIONE_NOME $PRODUZIONE_HOST $PRODUZIONE_UTENTE" \ + "$PRODUZIONE_VECCHIA_NOME $PRODUZIONE_VECCHIA_HOST $PRODUZIONE_VECCHIA_UTENTE" ; do set -- $VOCE if printf '%s\n' "$FUORI" | grep -qE "^Host[[:space:]]+$1([[:space:]]|\$)" ; then attento "$1 e' gia' definito in $CONFIG: lo lascio com'e'" @@ -191,7 +193,7 @@ for VOCE in "$STAGING_NOME $STAGING_HOST" "$PRODUZIONE_NOME $PRODUZIONE_HOST" ; BLOCCO="$BLOCCO Host $1 HostName $2 - User $UTENTE_SERVER + User $3 IdentitiesOnly yes IdentityFile $CHIAVE_CONFIG " @@ -200,7 +202,7 @@ BLOCCO="$BLOCCO$FINE_BLOCCO" { printf '%s\n' "$FUORI" | sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' ; echo ; printf '%s\n' "$BLOCCO" ; } > "$CONFIG.nuovo" \ && mv "$CONFIG.nuovo" "$CONFIG" && chmod 600 "$CONFIG" -ok "ssh $STAGING_NOME e ssh $PRODUZIONE_NOME: configurati" +ok "ssh $STAGING_NOME, ssh $PRODUZIONE_NOME e ssh $PRODUZIONE_VECCHIA_NOME: configurati" # -------------------------------------------------------------------------- titolo "Fatto" diff --git a/verifica.sh b/verifica.sh index 8670e59..e0c4b24 100755 --- a/verifica.sh +++ b/verifica.sh @@ -78,10 +78,22 @@ if porta_aperta "$STAGING_HOST" 22 ; then else rosso "staging non raggiungibile: la VPN e' accesa?" fi -if ssh -o BatchMode=yes -o ConnectTimeout=8 "$PRODUZIONE_NOME" true 2> /dev/null ; then - ok "entri in produzione ($PRODUZIONE_NOME)" +# Le produzioni sono due finche' i siti non sono migrati tutti. La nuova sta +# dietro la stessa VPN di staging. Un tentativo solo per macchina: la nuova +# chiude le porte per un po' a chi sbaglia il login piu' volte di fila. +if porta_aperta "$PRODUZIONE_HOST" 22 ; then + if ssh -o BatchMode=yes -o ConnectTimeout=8 "$PRODUZIONE_NOME" true 2> /dev/null ; then + ok "entri in produzione ($PRODUZIONE_NOME)" + else + attento "produzione ($PRODUZIONE_NOME): non entri (normale se non hai il ruolo di rilascio, o se la tua chiave non e' ancora stata aggiunta)" + fi else - attento "produzione: non entri (normale se non hai il ruolo di rilascio, o se la tua chiave non e' ancora stata aggiunta)" + attento "produzione ($PRODUZIONE_NOME): non raggiungibile (sta dietro la VPN, come staging)" +fi +if ssh -o BatchMode=yes -o ConnectTimeout=8 "$PRODUZIONE_VECCHIA_NOME" true 2> /dev/null ; then + ok "entri nella produzione vecchia ($PRODUZIONE_VECCHIA_NOME)" +else + attento "produzione vecchia ($PRODUZIONE_VECCHIA_NOME): non entri (normale se non hai il ruolo di rilascio, o se la tua chiave non e' ancora stata aggiunta)" fi titolo "Risultato"