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