web-dev-qa-db-fra.com

Récupération Openstack Mass / Juju

J'ai créé Openstack basé sur MAAS en utilisant juju. J'ai créé des instances, des projets, etc. J'ai fait des sauvegardes de la base de données et des fichiers de configuration openstack. J'essaie de tester la récupération en détruisant et en supprimant le service clé de voûte, juste pour voir s'il était récupérable. Je laisse également tomber la base de données clé de voûte. (il est sauvegardé) Donc, avec juju, je détruis la vieille clé de voûte qui était cassée et déploie une nouvelle clé de voûte. En fait, cela me fait recommencer, sauf que tous les projets (locataires) ont disparu et que les instances n'appartiennent à aucun projet. Donc je restaure la base de données Keystone mais sans les jetons mais quand je le fais, j'obtiens une erreur d'horizon me disant que Keystone n'autorisera pas le client.

Quelle serait la meilleure façon de restaurer un nœud de clé de voûte cassé ...? Il semble que lorsque vous refaites la clé de voûte avec juju, vous obtenez de nouveaux jetons. juju peut-il en quelque sorte injecter les anciens dans la nouvelle clé de voûte?

5
Julius

Le problème que vous rencontrez est que le charme de clé de voûte stocke des informations en dehors de la base de données de clé de voûte; en particulier, les noms d'utilisateur et les mots de passe des services sont stockés localement sur le disque de sorte que lorsque des unités de service supplémentaires liées à la distorsion trapézoïdale, le service de distorsion trapézoïdale peut remettre le mot de passe correct pour l'utilisateur demandé au service associé.

Vous rencontrerez également des problèmes si vous n'avez pas fourni de configuration de mot de passe administrateur et de jeton d'administration lors du déploiement de la clé de voûte; les unités de service Keystone les généreront de manière aléatoire si elles ne sont pas explicitement configurées - elles changeront donc lorsque vous supprimez puis ajoutez une nouvelle unité de service Keystone.

Vous vous retrouvez avec un ensemble de mots de passe hachés dans la base de données (créés par la première unité de service) qui ne correspondent pas aux mots de passe générés sur le disque dans la deuxième unité de service clé de voûte.

Idéalement, nous corrigerions cela par une sorte de fonctionnalité générique de stockage d'objets dans juju (pensez à object-put/object-get) mais ce n'est pas une fonctionnalité prise en charge.

Tout le stockage sur disque des mots de passe et des jetons a lieu dans/var/lib/keystone; vous pourrez peut-être les sélectionner dans le cadre d'une sauvegarde de l'unité de service clé en main elle-même; cependant, vous atteindrez des races lorsque vous ajouterez la nouvelle unité de service, car les relations de service se déclencheront avant que vous puissiez restaurer ces fichiers.

En tant que l'un des mainteneurs de charme d'OpenStack, je vais y réfléchir un peu plus et voir si nous pouvons trouver quelque chose de plus élégant.

1
jamespage