Ecco una domanda di uno dei nostri lettori Praveen.
Domanda: Sto installando Openstack su una macchina CentOS seguendo la documentazione online da openstack.org. Ho installato il pacchetto keystone, ma ho riscontrato un errore durante la creazione di un utente amministratore per il cloud. Ho usato il comando seguente.
keystone user-create --name=admin --pass=<admin_password> --email=<admin_email>
Ma il comando precedente ha restituito un messaggio di errore:
An unexpected error prevented the server from fulfilling your request. (HTTP 500)
Qualcuno potrebbe aiutarmi?
Soluzione:
- Dovresti controllare il file di registro di keystone . Per impostazione predefinita, il file di registro keystone si trova in "/var/log/keystone/keystone.log ” e scopri cosa ha causato l'errore HTTP 500 .
- Controlla se ti riferisci al destra 'OS_SERVICE_ENDPOINT ' e OS_SERVICE_TOKEN .
Ad esempio :
#export OS_SERVICE_ENDPOINT=http://localhost:35357/v2.0 #export OS_SERVICE_TOKEN=<valid_token>
Dovresti anche confrontare "OS_SERVICE_ENDPOINT ' e 'OS_SERVICE_TOKEN' voci in ‘/etc/keystone/keystone.conf ' file.
- Controlla le credenziali MySQL per keystone è impostato correttamente.
#vi /etc/keystone/keystone.conf
e controlla le voci corrette in [database]
[database] connection = mysql://keystoneUsername:keystonePassword@controller-hostname/keystone
Nella maggior parte dei casi, le persone commettono errori durante la configurazione delle impostazioni di cui sopra. Nel caso, se le credenziali MySQL per keystone sono errate, dovresti vedere un messaggio di errore (/var/log/keystone/keystone.log) come quello mostrato di seguito.
OperationalError: (OperationalError) (2005, "Unknown MySQL server host 'controller' (1)") None None
- Verifica se il database keystone contiene le tabelle necessarie :Questo potrebbe essere uno dei motivi. Ad esempio, durante la configurazione di keystone, hai creato tabelle per il database keystone? Per verificare, accedi a mysql come di seguito.
#mysql -u keystone -p mysql>use keystone mysql>show tables
Se non trovi tabelle nel database keystone, dovresti prima crearlo. In questo caso, dovresti vedere un errore corrispondente nel file /var/log/keystone/keystone.log. L'errore di esempio è pubblicato di seguito:
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',)
Nel caso in cui visualizzi l'errore precedente, crea tabelle per il database keystone utilizzando il comando seguente.
# keystone-manage db_sync keystone
Ora verifica se le tabelle sono state create nel database keystone.
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)
Ora prova a creare un utente amministratore eseguendo il comando seguente
keystone user-create --name=admin --pass=<admin_password> --email=<admin_email>
CRITICAL keystone [-] ConfigFileNotFound:il file di configurazione di Keystone keystone-paste.ini non è stato trovato
# 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.
Soluzione:
Come dice il messaggio di errore, verifica se keystone-paste.ini esiste ed è identificato correttamente da keystone.conf file.
Apri /etc/keystone/keystone.conf e verifica se "file_config ' si riferisce al file keystone-paste.ini.
[paste_deploy] config_file=/usr/share/keystone/keystone-dist-paste.ini
Prova a riavviare il servizio.
#service openstack-keystone start
Potresti anche leggere : Elenco di errori comuni (e soluzioni) durante l'installazione e la configurazione di OpenStack Nova Service e Servizio sguardo