Esta guía lo lleva a la segunda parte de la configuración del servicio de identidad de OpenStack en el nodo del controlador, también puede leer el artículo anterior sobre la configuración de KeyStone #1. Aquí cubriremos las creaciones de entidades de servicio y puntos finales de API.
Cree la entidad de servicio y el extremo de la API:
Para crear la entidad de servicio y el punto final de la API, tenemos que exportar las siguientes variables para pasar el valor del token de autenticación.
# export OS_TOKEN=43405b090eda983ddde2 ## Replace this token (43405b090eda983ddde2 ) with OS_TOEKEN value from keystone.conf file.
# export OS_URL=http://controller:35357/v2.0 ## Replace controller with your controller ip.
Cree la entidad de servicio para el servicio de identidad.
# openstack service create --name keystone --description "OpenStack Identity" identity +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Identity | | enabled | True | | id | c65841b4f8df478cbc19524c09fd9724 | | name | keystone | | type | identity | +-------------+----------------------------------+
Verificar el servicio.
# openstack service list +----------------------------------+----------+----------+ | ID | Name | Type | +----------------------------------+----------+----------+ | c65841b4f8df478cbc19524c09fd9724 | keystone | identity | +----------------------------------+----------+----------+
Cree el punto final de la API del servicio de identidad.
# openstack endpoint create \ --publicurl http://controller:5000/v2.0 \ --internalurl http://controller:5000/v2.0 \ --adminurl http://controller:35357/v2.0 \ --region RegionOne \ identity +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | adminurl | http://controller:35357/v2.0 | | id | f402a9389d474c13a97a78a30f13c6e5 | | internalurl | http://controller:5000/v2.0 | | publicurl | http://controller:5000/v2.0 | | region | RegionOne | | service_id | c65841b4f8df478cbc19524c09fd9724 | | service_name | keystone | | service_type | identity | +--------------+----------------------------------+
Verifique los detalles del punto final.
# openstack endpoint list +----------------------------------+-----------+--------------+--------------+ | ID | Region | Service Name | Service Type | +----------------------------------+-----------+--------------+--------------+ | f402a9389d474c13a97a78a30f13c6e5 | RegionOne | keystone | identity | +----------------------------------+-----------+--------------+--------------+
Crear proyectos, usuarios y roles:
Cree un proyecto de administrador, un usuario y un rol para la administración; usaremos el dominio predeterminado para simplificar.
Cree el proyecto de administración.
# openstack project create --description "Admin Project" admin +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Admin Project | | enabled | True | | id | 9b05e6bffdb94c8081d665561d05e31e | | name | admin | +-------------+----------------------------------+
Cree el usuario administrador.
# openstack user create --password-prompt admin User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | 127a9a6b822a4e3eba69fa54128873cd | | name | admin | | username | admin | +----------+----------------------------------+
Cree el rol de administrador.
# openstack role create admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Agregue el rol de administrador al proyecto y al usuario de administrador.
# openstack role add --project admin --user admin admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Cree el proyecto de servicio.
# openstack project create --description "Service Project" service +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Service Project | | enabled | True | | id | 39e1b9944e564ceb9e71c98623b676cd | | name | service | +-------------+----------------------------------+
Cree el proyecto de demostración para usar con el usuario normal.
# openstack project create --description "Demo Project" demo +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Demo Project | | enabled | True | | id | 909c4d7219c14a63aa0ef6f1ece18546 | | name | demo | +-------------+----------------------------------+
Cree el usuario de demostración.
# openstack user create --password-prompt demo User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | 453ce23fa9f347b5baa53210aff7f207 | | name | demo | | username | demo | +----------+----------------------------------+
Cree el rol de usuario.
# openstack role create user +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | fa78c101a7ed40b19de219e7d3eeda62 | | name | user | +-------+----------------------------------+
Agregue el rol de usuario al proyecto de demostración y al usuario.
# openstack role add --project demo --user demo user +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | fa78c101a7ed40b19de219e7d3eeda62 | | name | user | +-------+----------------------------------+
Verificar operación:
# openstack project list +----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 39e1b9944e564ceb9e71c98623b676cd | service | | 909c4d7219c14a63aa0ef6f1ece18546 | demo | | 9b05e6bffdb94c8081d665561d05e31e | admin | +----------------------------------+---------+
# openstack user list +----------------------------------+-------+ | ID | Name | +----------------------------------+-------+ | 127a9a6b822a4e3eba69fa54128873cd | admin | | 453ce23fa9f347b5baa53210aff7f207 | demo | +----------------------------------+-------+
# openstack role list +----------------------------------+-------+ | ID | Name | +----------------------------------+-------+ | 33af4f957aa34cc79451c23bf014af6f | admin | | fa78c101a7ed40b19de219e7d3eeda62 | user | +----------------------------------+-------+
Verifique la operación con acceso basado en roles, para hacerlo desactive las variables exportadas.
# unset OS_TOKEN OS_URL
Ejecute el siguiente comando para enumerar los roles como usuario administrador.
# openstack --os-auth-url http://controller:35357 --os-project-name admin --os-username admin --os-auth-type password role list Password: +----------------------------------+-------+ | ID | Name | +----------------------------------+-------+ | 33af4f957aa34cc79451c23bf014af6f | admin | | fa78c101a7ed40b19de219e7d3eeda62 | user | +----------------------------------+-------+
Ejecute el siguiente comando para enumerar los roles como usuario de demostración, debería obtener el siguiente error.
# openstack --os-auth-url http://controller:35357 --os-project-name demo --os-username demo --os-auth-type password role list Password: ERROR: openstack You are not authorized to perform the requested action: admin_required (HTTP 403) (Request-ID: req-143ee967-4a26-4474-bf88-0b660354869d)
Eso es todo, ha configurado correctamente KeyStone en Ubuntu 14.04.2