Sauvegarde automatique vers S3 ne se produit pas - la sauvegarde s'exécute mais ne télécharge pas à moins d'être effectuée manuellement via l'interface d'administration

Salut,

J’ai déployé Discourse dans un cluster EKS et j’utilise les rôles IAM pour les comptes de service afin d’autoriser l’accès à 2 buckets S3 - un pour les ressources et un pour les sauvegardes. L’indicateur s3_use_iam_profile est défini sur true.

Mes paramètres sont configurés de manière à ce que la sauvegarde soit quotidienne et qu’elle soit téléchargée dans le bucket de sauvegarde S3. Cependant, je vois la sauvegarde s’exécuter dans les logs, mais lorsqu’elle se termine et devrait être téléchargée sur S3, elle saute simplement cette étape comme si elle n’avait pas été configurée.

J’ai trouvé ce vieux post - Discourse does not support service account and IAM role for S3 backup - indiquant que l’utilisation d’IRSA ou d’un rôle IAM ne fonctionne pas. Maintenant, si j’exécute la sauvegarde manuellement via l’interface d’administration, elle se termine et se télécharge sur S3. Y a-t-il autre chose que je dois configurer pour que cela se produise automatiquement ?

Merci beaucoup,

Steve

Je ne sais pas. Voici ce que je vérifierais ensuite.

Votre EKS pourrait-il être arrêté avant que la sauvegarde ne soit compressée et envoyée à S3 ? Peut-être un manque d’espace ou quelque chose comme ça ?

Salut Jay,

Tout semble correct. Les journaux du pod montrent que la sauvegarde automatique se termine avec succès et se termine correctement. Il semble que la vérification de l’activation de la fonction distante renvoie incorrectement false.

Nous utilisons la version 3.0.1, construite à partir de ce commit : Commits · discourse/discourse · GitHub

En examinant le code, voici la ligne qui renvoie le résultat : discourse/lib/backup_restore/backuper.rb at 4571b10ee5a3c46249271b2870d6eaf37994460f · discourse/discourse · GitHub

J’ai trouvé 2 choses intéressantes :

1 - Lorsque j’exécute la sauvegarde manuellement dans l’interface d’administration, elle se termine avec succès et le fichier gzip compressé est téléchargé sur S3.
2- Il semble que la ligne de code ci-dessus ait changé depuis la version 3.0.1 - la ligne est passée de return unless @store.remote? à return unless store.remote? - mon Ruby n’est pas excellent, mais Google me dit qu’une @variable est une variable d’instance de self, donc y a-t-il un autre paramètre que je dois faire pour que cela fonctionne avec la version 3.0.1 ou dois-je passer à la version 3.0.2 ?

Merci encore.

Encore une fois, je ne sais pas, mais en règle générale, si vous avez un comportement étrange, une mise à niveau est généralement une bonne idée.

Il semble qu’il devrait appeler ceci :

Je ne sais pas pourquoi cela pourrait échouer.

Ok, merci Jay.

J’essaierai de mettre à niveau et de voir si cela aide. Je vous tiendrai au courant.

Steve

1 « J'aime »