Installazione e configurazione del servizio Identity (Keystone)
Installazione Keystone
Server designato per l'installazione: hostname1.domain.
- Installare Keystone tramite il gestore di pacchetti
yum
:
# yum install openstack-utils openstack-keystone python-keystoneclient
- Installare il server
mysql
:
# yum install mysql mysql-server MySQL-python
- Permettere che il servizio
mysqld
venga avviato di default al riavvio del server ed avviare il servizio:
# chkconfig mysqld on
# service mysqld start
- Inserire la password di
root
:
# mysqladmin -u root password *******
Configurazione keystone
- Rimuovere, se esiste, il file
/var/lib/keystone/keystone.db
(cioè il DB sqlite). Verrà utilizzato MySQL che permette a più Keystone di utilizzare lo stesso DB e al DB stesso di essere replicato utilizzando le feature di MySQL.
Creazione di tenant, utente e ruolo per l'amministratore e del tenant per i servizi
Per comodità in questa sezione si utilizzeranno delle variabili d'ambiente settate come segue:
# export ADMIN_TOKEN=<ADMIN_TOKEN_VALUE>
export OS_USERNAME=adminUser
export OS_PASSWORD=<PASSWORD>
export OS_TENANT_NAME=adminTenant
export ENDPOINT=http://openstack-01.cnaf.infn.it:35357/v2.0/
export OS_AUTH_URL=http://openstack-01.cnaf.infn.it:5000/v2.0/
Dove <ADMIN_TOKEN_VALUE> è il valore del parametro
admin_token
contenuto nel file
/etc/keystone/keystone.conf
.
Creazione del tenant "adminTenant"
Definizione di tenant:
Un tenant è un contenitore usato per raggruppare risorse o utenti.
Creazione dell'utente "adminUser"
- Creare l'utente lanciando il seguente comando:
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $ADMIN_TENANT_ID --name $OS_USERNAME --pass $OS_PASSWORD --enabled true
+----------+-------------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+----------+-------------------------------------------------------------------------------------------------------------------------+
| email | None |
| enabled | True |
| id | 7d6a3a42c37948b88e2fa692b63587cd |
| name | adminUser |
| password | $6$rounds=40000$NxZyxUfO8VRj3gR.$zt9GJKwMDOUMDHCMhqAqJje3JAJmqqTXADZkXll.usGHEsEpAMgKsnZEfF0itF75ooyY1/tjxXBJq9MaQXnfo. |
| tenantId | db2cf825309c49989595fc2ff915dc7e |
+----------+-------------------------------------------------------------------------------------------------------------------------+
Dove <ADMIN_TENANT_ID> è l'ID del tenant appena creato, mentre <ADMIN_PASSWORD> è la password scelta per l'utente "adminUser".
Creazione del ruolo "admin"
- Creare il ruolo lanciando il seguente comando:
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT role-create --name admin
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | 2f196d11ff954c67befc3f190195f47c |
| name | admin |
+----------+----------------------------------+
# export ADMIN_ROLE_ID=2f196d11ff954c67befc3f190195f47c
Assegnazione del ruolo "admin" all'utente "AdminUser"
Dove <ADMIN_USER_ID> e <ADMIN_TENANT_ID> sono rispettivamente gli ID di user e tenant appena creati. $ADMIN_ROLE_ID è invece l'id del ruolo "admin" esportato nell'istruzione precedente.
Nota bene: non viene visualizzato nulla se il comando ha successo.
Creazione del tenant "service":
Questo tenant conterrà tutti gli utenti dei servizi che si desidera far conoscere al service catalog.
Creazione ed inserimento degli utenti associati ai servizi
Una volta creato il "Service Tenant", si andrà ad inserire al suo interno un utente per ogni servizio che si vuole aggiungere.
Creazione ed inserimento dell'utente associato a Glance
- Creare l'utente tramite il seguente comando:
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name glance --pass <GLANCE_PASSWORD> --enabled=true
+----------+-------------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+----------+-------------------------------------------------------------------------------------------------------------------------+
| email | None |
| enabled | True |
| id | 90ee5ac051eb4d1eaa543243987968a6 |
| name | glance |
| password | $6$rounds=40000$LApm.pXGC43cDMhN$J1mDpXad5r2YYNoMKK/P5t0VwXQidKauP/oHaVH5Nm9E7zGQLYamwa1Xxvh0FRcjOvhDtTSZ97CToKV6pWFPA1 |
| tenantId | 73016aa2c9ca4aeba3736cf44cc8433b |
+----------+-------------------------------------------------------------------------------------------------------------------------+
export GLANCE_USER_ID=90ee5ac051eb4d1eaa543243987968a6
Dove <GLANCE_PASSWORD> è la password che si desidera associare all'utente del servizio Glance.
Nota bene: non viene visualizzato nulla se il comando ha successo.
Creazione ed inserimento dell'utente associato a Nova
Dove <NOVA_PASSWORD> è la password che si desidera associare all'utente del servizio Nova.
- Assegnare il ruolo tramite il seguente comando:
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $NOVA_USER_ID --tenant_id $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID
Nota bene: non viene visualizzato nulla se il comando ha successo.
Definizione dei servizi
Keystone agisce anche come catalogo dei servizi per permettere alle altre componenti OpenStack di conoscere quali sono gli endpoint dei vari servizi OpenStack.
Definizione del servizio identity (Keystone)
Definizione del servizio compute (Nova)
Il servizio compute richiede un endpoint specifico per ogni tenant. La stringa
%(tenant_id)s
ed i singoli apici che racchiudono i valori di
publicurl
,
internalurl
e
adminurl
devono essere digitati esattamente come mostrato sia per l'endpoint
compute che per l'endpoint
volume e l'endpoint
object storage (paragrafi successivi).
Definizione del servizio volume (Volume)
Il servizio volume richiede un endpoint specifico per ogni tenant.
Definizione del servizio image (Glance)
Troubleshooting
- Per le principali operazioni di troubleshooting riferirsi alla guida
.
[root@clstr-09 ~]# keystone tenant-list
+----------------------------------+-------------+---------+
| id | name | enabled |
+----------------------------------+-------------+---------+
| 8f74bb88623e41619a4c020baed3caa0 | adminTenant | True |
| d6e9133d43b5440eae0db744c00bbca7 | service | True |
+----------------------------------+-------------+---------+
[root@clstr-09 ~]# keystone user-list
+----------------------------------+-----------+---------+-------+
| id | name | enabled | email |
+----------------------------------+-----------+---------+-------+
| 30fc09b098b0451f8ec3861cf96f3422 | nova | True | |
| 71228944d88b477188528c47942bcdb8 | adminUser | True | |
| 7f3e370e94b54d8fa6ddbb02d5903f43 | glance | True | |
+----------------------------------+-----------+---------+-------+
[root@clstr-09 ~]# keystone service-list
+----------------------------------+----------+----------+---------------------------+
| id | name | type | description |
+----------------------------------+----------+----------+---------------------------+
| 11279e60f5054500a1a0a4ea99016721 | glance | image | Glance Image Service |
| 25197e8149da4bc199fc3e8476f4c5ba | volume | volume | Nova Volume Service |
| 990589efda944f379888edc97f17cb75 | keystone | identity | Keystone Identity Service |
| dbe9d50403c541f9b277e1c26b6e7946 | nova | compute | Nova Compute Service |
+----------------------------------+----------+----------+---------------------------+
[root@clstr-09 ~]# keystone endpoint-list
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
| id | region | publicurl | internalurl | adminurl | service_id |
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
| 20fef2ceae314842aade705eb6c3ed17 | RegionOne | http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s | dbe9d50403c541f9b277e1c26b6e7946 |
| 8868e9748ad4481cac64ab0e3d33e614 | RegionOne | http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s | 25197e8149da4bc199fc3e8476f4c5ba |
| 8953d51657d8482a9037671db111f718 | RegionOne | http://clstr-09.cnaf.infn.it:5000/v2.0 | http://clstr-09.cnaf.infn.it:5000/v2.0 | http://clstr-09.cnaf.infn.it:35357/v2.0/ | 990589efda944f379888edc97f17cb75 |
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
[root@clstr-09 ~]# keystone catalog
Service: volume
+-------------+-----------------------------------------------------------------------+
| Property | Value |
+-------------+-----------------------------------------------------------------------+
| adminURL | http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0 |
| id | 8868e9748ad4481cac64ab0e3d33e614 |
| internalURL | http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0 |
| publicURL | http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0 |
| region | RegionOne |
+-------------+-----------------------------------------------------------------------+
Service: compute
+-------------+-----------------------------------------------------------------------+
| Property | Value |
+-------------+-----------------------------------------------------------------------+
| adminURL | http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0 |
| id | 20fef2ceae314842aade705eb6c3ed17 |
| internalURL | http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0 |
| publicURL | http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0 |
| region | RegionOne |
+-------------+-----------------------------------------------------------------------+
Service: identity
+-------------+------------------------------------------+
| Property | Value |
+-------------+------------------------------------------+
| adminURL | http://clstr-09.cnaf.infn.it:35357/v2.0/ |
| id | 8953d51657d8482a9037671db111f718 |
| internalURL | http://clstr-09.cnaf.infn.it:5000/v2.0 |
| publicURL | http://clstr-09.cnaf.infn.it:5000/v2.0 |
| region | RegionOne |
+-------------+------------------------------------------+
--
MatteoManzali - 2012-10-10