Questa guida ti porta alla seconda parte della configurazione del servizio di identità OpenStack sul nodo controller, puoi anche leggere l'articolo precedente sulla configurazione di KeyStone #1. Qui tratteremo la creazione di entità di servizio e di endpoint API.
Crea l'entità del servizio e l'endpoint API:
Per creare l'entità del servizio e l'endpoint API, dobbiamo esportare sotto le variabili per passare il valore del token di autenticazione.
# export OS_TOKEN=43405b090eda983ddde2 ## Replace this token (43405b090eda983ddde2 ) with OS_TOEKEN value from keystone.conf file.
# export OS_URL=http://controller:35357/v3 ## Replace controller with your controller ip.
Configura la versione dell'API di identità.
# export OS_IDENTITY_API_VERSION=3
Crea l'entità del servizio per il servizio Identity.
# openstack service create --name keystone --description "OpenStack Identity" identity +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Identity | | enabled | True | | id | ced1e3e2bfe449eeba6a0f19bad90caf | | name | keystone | | type | identity | +-------------+----------------------------------+
Verifica il servizio.
# openstack service list +----------------------------------+----------+----------+ | ID | Name | Type | +----------------------------------+----------+----------+ | ced1e3e2bfe449eeba6a0f19bad90caf | keystone | identity | +----------------------------------+----------+----------+
Crea l'endpoint dell'API del servizio di identità.
# openstack endpoint create --region RegionOne identity public http://controller:5000/v2.0 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 0fdd1aa5fe414213b3b3b616157debfc | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ced1e3e2bfe449eeba6a0f19bad90caf | | service_name | keystone | | service_type | identity | | url | http://controller:5000/v2.0 | +--------------+----------------------------------+ # openstack endpoint create --region RegionOne identity internal http://controller:5000/v2.0 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | f825a8526c2c4924a74f3e6acfd199c0 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ced1e3e2bfe449eeba6a0f19bad90caf | | service_name | keystone | | service_type | identity | | url | http://controller:5000/v2.0 | +--------------+----------------------------------+ # openstack endpoint create --region RegionOne identity admin http://controller:35357/v2.0 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 35496d62fddd4fe188f384a61bf36d24 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ced1e3e2bfe449eeba6a0f19bad90caf | | service_name | keystone | | service_type | identity | | url | http://controller:35357/v2.0 | +--------------+----------------------------------+
Verifica i dettagli dell'endpoint.
# openstack endpoint list +----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------+ | ID | Region | Service Name | Service Type | Enabled | Interface | URL | +----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------+ | 0fdd1aa5fe414213b3b3b616157debfc | RegionOne | keystone | identity | True | public | http://controller:5000/v2.0 | | 35496d62fddd4fe188f384a61bf36d24 | RegionOne | keystone | identity | True | admin | http://controller:35357/v2.0 | | f825a8526c2c4924a74f3e6acfd199c0 | RegionOne | keystone | identity | True | internal | http://controller:5000/v2.0 | +----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------+
Crea progetti, utenti e ruoli:
Crea un progetto amministratore, un utente e un ruolo per l'amministrazione, useremo il dominio predefinito per semplicità.
Crea il progetto di amministrazione.
# openstack project create --domain default --description "Admin Project" admin +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Admin Project | | domain_id | default | | enabled | True | | id | fe858f6a43f84c26b994f0be74c928e6 | | is_domain | False | | name | admin | | parent_id | None | +-------------+----------------------------------+
Crea l'utente amministratore.
# openstack user create --domain default --password-prompt admin User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | 19be37de9db146f8a6b282eb1dbbee14 | | name | admin | +-----------+----------------------------------+
Crea il ruolo di amministratore.
# openstack role create admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 6741bf6d8cb94ddbb45de71ad6c2a07a | | name | admin | +-------+----------------------------------+
Aggiungi il ruolo di amministratore al progetto di amministratore e all'utente.
# openstack role add --project admin --user admin admin
Crea il progetto di servizio.
# openstack project create --domain default --description "Service Project" service +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Service Project | | domain_id | default | | enabled | True | | id | 3745819894644e95b72c2693ff4ea34f | | is_domain | False | | name | service | | parent_id | None | +-------------+----------------------------------+
Crea il progetto demo da utilizzare per l'utente normale.
# openstack project create --domain default --description "Demo Project" demo +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Demo Project | | domain_id | default | | enabled | True | | id | b558b39292b247b7a346678b80ed71e0 | | is_domain | False | | name | demo | | parent_id | None | +-------------+----------------------------------+
Crea l'utente demo.
# openstack user create --domain default --password-prompt demo User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | 69f8896c14a940619839443271aa9d05 | | name | demo | +-----------+----------------------------------+
Crea il ruolo utente.
# openstack role create user +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | db27eefc8e8047c499fb822d9ad6f630 | | name | user | +-------+----------------------------------+
Aggiungi il ruolo utente al progetto demo e all'utente.
# openstack role add --project demo --user demo user
Verifica operazione:
# openstack project list +----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 3745819894644e95b72c2693ff4ea34f | service | | b558b39292b247b7a346678b80ed71e0 | demo | | fe858f6a43f84c26b994f0be74c928e6 | admin | +----------------------------------+---------+
# openstack user list +----------------------------------+-------+ | ID | Name | +----------------------------------+-------+ | 19be37de9db146f8a6b282eb1dbbee14 | admin | | 69f8896c14a940619839443271aa9d05 | demo | +----------------------------------+-------+
# openstack role list +----------------------------------+-------+ | ID | Name | +----------------------------------+-------+ | 6741bf6d8cb94ddbb45de71ad6c2a07a | admin | | db27eefc8e8047c499fb822d9ad6f630 | user | +----------------------------------+-------+
Per motivi di sicurezza, disabilita il meccanismo del token di autenticazione temporaneo:
Modifica /etc/keystone/keystone-paste.ini file e rimuovi admin_token_auth dalla [pipeline:public_api] , [pipeline:admin_api] e [pipeline:api_v3] sezioni.
Verifica l'operazione con l'accesso basato sui ruoli, per farlo disimposta le variabili esportate.
# unset OS_TOKEN OS_URL
Esegui il comando seguente per elencare i ruoli come utente amministratore.
# openstack --os-auth-url http://controller:35357/v3 --os-project-domain-id default --os-user-domain-id default --os-project-name admin --os-username admin --os-auth-type password token issue Password: +------------+----------------------------------+ | Field | Value | +------------+----------------------------------+ | expires | 2015-11-02T11:25:53.930932Z | | id | 7b614d616e964ab7880e82643c0b1659 | | project_id | fe858f6a43f84c26b994f0be74c928e6 | | user_id | 19be37de9db146f8a6b282eb1dbbee14 | +------------+----------------------------------+
Come utente demo, richiedi un token di autenticazione.
# openstack --os-auth-url http://controller:5000/v3 --os-project-domain-id default --os-user-domain-id default --os-project-name demo --os-username demo --os-auth-type password token issue Password: +------------+----------------------------------+ | Field | Value | +------------+----------------------------------+ | expires | 2015-11-02T11:29:28.174824Z | | id | d42d40e47fe84f64a6bd9ecdf1ff240e | | project_id | b558b39292b247b7a346678b80ed71e0 | | user_id | 69f8896c14a940619839443271aa9d05 | +------------+----------------------------------+
Questo è tutto, hai configurato correttamente KeyStone su Ubuntu 14.04.