Backup automatico su S3 non avviene - Il backup viene eseguito ma non carica a meno che non venga eseguito manualmente tramite l'interfaccia di amministrazione

Ciao,

Ho Discourse distribuito in un cluster EKS e utilizzo i Ruoli IAM per gli Account di Servizio per consentire l’accesso a 2 bucket S3: uno per gli asset e uno per i backup. Il flag s3_use_iam_profile è impostato su true.

Le mie impostazioni sono configurate in modo che il backup sia giornaliero e debba caricarsi nel bucket di backup S3. Tuttavia, vedo il backup in esecuzione nei log, ma quando finisce e dovrebbe caricarsi su S3, salta semplicemente quel passaggio come se non fosse stato impostato.

Ho trovato questo vecchio post - Discourse does not support service account and IAM role for S3 backup - secondo cui l’utilizzo di IRSA o di un profilo IAM non funziona. Ora, se eseguo il backup manualmente tramite l’interfaccia utente di amministrazione, questo viene completato e caricato su S3, quindi c’è qualcos’altro che devo impostare per far sì che ciò accada automaticamente?

Molte grazie,

Steve

Non lo so. Ecco cosa controllerei dopo.

Potrebbe essere che il tuo EKS venga terminato prima che il backup venga compresso e inviato a S3? Forse esaurimento dello spazio o qualcosa del genere?

Ciao Jay,

Tutto sembra a posto. I log del pod mostrano che il backup automatico viene completato con successo e termina correttamente. Sembra che il controllo sull’abilitazione del remoto stia restituendo false in modo errato.

Stiamo eseguendo la versione v3.0.1, che è stata creata da questo commit: Commits · discourse/discourse · GitHub

Guardando il codice, questa è la riga che restituisce: discourse/lib/backup_restore/backuper.rb at 4571b10ee5a3c46249271b2870d6eaf37994460f · discourse/discourse · GitHub

Ho trovato 2 cose interessanti:

1 - Quando eseguo il backup manualmente nell’interfaccia di amministrazione, viene completato con successo e il file gzip compresso viene caricato su S3.
2 - Sembra che la riga di codice sopra sia cambiata rispetto alla v3.0.1: la riga è passata da return unless @store.remote? a return unless store.remote?. Il mio Ruby non è eccezionale, ma Google mi dice che una @variabile è una variabile di istanza di self, quindi c’è un’altra impostazione che devo fare per far funzionare questo con la v3.0.1 o dovrei aggiornare alla v3.0.2?

Grazie ancora.

Di nuovo, non lo so, ma come regola generale, se hai un comportamento strano, l’aggiornamento è di solito una buona idea.

Sembra che dovrebbe chiamare questo:

Non so perché potrebbe fallire.

Ok, grazie Jay.

Proverò ad aggiornare e vedrò se aiuta. Ti farò sapere.

Steve

1 Mi Piace