GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie behebt man den Keystone-Authentifizierungsfehler von OpenStack – HTTP 500?

Hier ist eine Frage von einem unserer Leser, Praveen.

Frage: Ich installiere Openstack auf einem CentOS-Computer, indem ich der Online-Dokumentation von openstack.org folge. Ich habe das Keystone-Paket installiert, aber beim Erstellen eines Administratorbenutzers für die Cloud trat ein Fehler auf. Ich habe den folgenden Befehl verwendet.

keystone user-create --name=admin --pass=<admin_password> --email=<admin_email>

Aber der obige Befehl hat eine Fehlermeldung zurückgegeben :

An unexpected error prevented the server from fulfilling your request. (HTTP 500)

Kann mir jemand weiterhelfen?

Lösung:

  • Sie sollten die Keystone-Protokolldatei überprüfen . Standardmäßig befindet sich die Keystone-Protokolldatei unter „/var/log/keystone/keystone.log “ und sehen Sie, was den HTTP 500-Fehler verursacht hat .
  • Überprüfen Sie, ob Sie sich auf das Recht 'OS_SERVICE_ENDPOINT beziehen ‘ und OS_SERVICE_TOKEN .

Zum Beispiel:

#export OS_SERVICE_ENDPOINT=http://localhost:35357/v2.0
#export OS_SERVICE_TOKEN=<valid_token>

Sie sollten auch „OS_SERVICE_ENDPOINT vergleichen ‘ und ‚OS_SERVICE_TOKEN‘  Einträge in ‚/etc/keystone/keystone.conf ‘ Datei.

  • Prüfen Sie, ob MySQL-Anmeldeinformationen für Keystone vorliegen richtig eingestellt ist.
#vi /etc/keystone/keystone.conf

und überprüfen Sie die korrekten Einträge unter [Datenbank]

[database]
connection = mysql://keystoneUsername:keystonePassword@controller-hostname/keystone

In den meisten Fällen machen Benutzer Fehler beim Konfigurieren der oben genannten Einstellungen. Falls die MySQL-Anmeldeinformationen für Keystone falsch sind, sollten Sie eine Fehlermeldung (/var/log/keystone/keystone.log) wie die unten gezeigte sehen.

OperationalError: (OperationalError) (2005, "Unknown MySQL server host 'controller' (1)") None None
  • Überprüfen Sie, ob die Keystone-Datenbank die erforderlichen Tabellen enthält :Das könnte ein Grund sein. Haben Sie beispielsweise beim Konfigurieren von Keystone Tabellen für die Keystone-Datenbank erstellt? Melden Sie sich zur Überprüfung wie unten bei mysql an.
#mysql -u keystone -p
mysql>use keystone
mysql>show tables

Wenn Sie keine Tabellen in der Keystone-Datenbank finden, sollten Sie sie zuerst erstellen. In diesem Fall sollten Sie einen entsprechenden Fehler in der Datei /var/log/keystone/keystone.log sehen. Der Beispielfehler wird unten gepostet:

ProgrammingError: (ProgrammingError) (1146, "Table 'keystone.domain' doesn't exist") 'SELECT domain.id AS domain_id, domain.name AS domain_name, domain.enabled AS domain_enabled, domain.extra AS domain_extra \nFROM domain \nWHERE domain.id = %s' ('default',)

Falls Sie den obigen Fehler sehen, erstellen Sie mit dem folgenden Befehl Tabellen für die Keystone-Datenbank.

# keystone-manage db_sync keystone

Überprüfen Sie nun, ob die Tabellen in der Keystone-Datenbank erstellt wurden.

mysql> show tables;
+------------------------+
| Tables_in_keystone |
+------------------------+
| credential |
| domain |
| ec2_credential |
| endpoint_v2 |
| endpoint_v3 |
| metadata |
| migrate_version |
| policy |
| role |
| service |
| tenant |
| token |
| user |
| user_domain_metadata |
| user_tenant_membership |
+------------------------+
15 rows in set (0.00 sec)

Versuchen Sie nun, einen Administratorbenutzer zu erstellen, indem Sie den folgenden Befehl ausführen

keystone user-create --name=admin --pass=<admin_password> --email=<admin_email>

CRITICAL keystone [-] ConfigFileNotFound:Die Keystone-Konfigurationsdatei keystone-paste.ini konnte nicht gefunden werden

# service openstack-keystone start
Stopping keystone:                                         [FAILED]
#tailf /var/log/keystone/keystone.log
CRITICAL keystone [-] ConfigFileNotFound: The Keystone configuration file keystone-paste.ini could not be found.
TRACE keystone Traceback (most recent call last):
TRACE keystone   File "/usr/bin/keystone-all", line 113, in 
TRACE keystone     paste_config = config.find_paste_config()
TRACE keystone   File "/usr/lib/python2.6/site-packages/keystone/config.py", line 90, in find_paste_config
TRACE keystone     raise exception.ConfigFileNotFound(config_file=paste_config_value)
TRACE keystone ConfigFileNotFound: The Keystone configuration file keystone-paste.ini could not be found.

Lösung:

Überprüfen Sie, wie in der Fehlermeldung angegeben, ob keystone-paste.ini Datei existiert und von der keystone.conf korrekt identifiziert wird Datei.

Öffnen Sie /etc/keystone/keystone.conf und prüfen Sie, ob „config_file ‘ bezieht sich auf die Datei keystone-paste.ini.

[paste_deploy]
config_file=/usr/share/keystone/keystone-dist-paste.ini

Versuchen Sie, den Dienst erneut zu starten.

#service openstack-keystone start

Vielleicht möchten Sie auch lesen: Liste häufiger Fehler (und Lösungen) beim Installieren und Konfigurieren von OpenStack Nova Service und Glance-Dienst

Und der Bonus ist da...

    Kostenloses E-Book zur Installation von OpenStack Icehouse herunterladen! OpenStack Command Line Interface Cheat Sheet herunterladen! – Am häufigsten verwendete Befehle

Linux
  1. So beheben Sie den Rust-Fehler „Linker ‚cc‘ nicht gefunden“ unter Linux

  2. So beheben Sie den Fehler „gpg:Empfang des Schlüsselservers fehlgeschlagen:Kein Dirmngr“.

  3. So beheben Sie einen Befehl nicht gefunden-Fehler in Linux

  4. Wie behebt man den Cron-Authentifizierungsfehler unter Linux?

  5. So beheben Sie den Fehler apt-get Failed to Fetch in nicht unterstützten Ubuntu-Versionen

So beheben Sie Konvertierungsfehler mit Calibre

So beheben Sie den Busybox Initramfs-Fehler unter Ubuntu

So beheben Sie den fehlenden Flash Player-Fehler in Midori [Kurztipp]

Wie man Worker-Verbindungen repariert, ist nicht genug Fehler auf Nginx

So beheben Sie Fehler 403

So beheben Sie einen Datenbankverbindungsfehler