Keystone v3: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 152: | Строка 152: | ||
** создать домен |
** создать домен |
||
+ | ===/keystone.ldaptest.conf=== |
||
− | |||
==openstack клиент== |
==openstack клиент== |
Версия 14:26, 16 августа 2016
Заметки о кейстоун v3
Задача:
- сконфигурировать отдельно-стоящий кейстоун, другие сервисы опенстека не нужны.
- Пользователи в LDAP (LDAP поставить локально для теста)
- выдавать токены
- OS - CentOS7
Apache
Кейстоун это WSGI-приложение и деплоить его нужно соответственно под apache (другие варианты не пробовал)
ДУмаю что это не слишком безопасная настройка с DocumentRoot "/usr/bin" но для тестового сервера вполне.
/etc/httpd/conf.d/keystone.conf
<VirtualHost 0.0.0.0:35357> ServerName node-1.domain.tld DocumentRoot "/usr/bin" <Directory "/usr/bin"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> ErrorLog "/var/log/httpd/keystone_wsgi_admin_error.log" ServerSignature Off CustomLog "/var/log/httpd/keystone_wsgi_admin_access.log" "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" WSGIApplicationGroup apache WSGIDaemonProcess keystone_admin display-name=keystone-admin group=keystone processes=1 threads=3 user=keystone WSGIProcessGroup keystone_admin WSGIScriptAlias / "/usr/bin/keystone-wsgi-admin" WSGIPassAuthorization On LimitRequestFieldSize 81900 </VirtualHost> <VirtualHost 0.0.0.0:5000> ServerName node-1.domain.tld ## Vhost docroot DocumentRoot "/usr/bin" <Directory "/usr/bin"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> ErrorLog "/var/log/httpd/keystone_wsgi_main_error.log" ServerSignature Off CustomLog "/var/log/httpd/keystone_wsgi_main_access.log" "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" WSGIApplicationGroup apache WSGIDaemonProcess keystone_main display-name=keystone-main group=keystone processes=1 threads=3 user=keystone WSGIProcessGroup keystone_main WSGIScriptAlias / "/usr/bin/keystone-wsgi-public" WSGIPassAuthorization On LimitRequestFieldSize 81900 </VirtualHost>
Для убунты как минимум пути и имена бинарников будут отличаться
keystone.conf
Настройки близки к минимальным
# cat /etc/keystone/keystone.conf | grep -v '#' | grep -v '^$' [DEFAULT] admin_token = z5Oq8GDTtFAvdGsld55WO6os admin_endpoint = http://172.17.35.25:35357 max_project_tree_depth = 5 debug = True verbose = True log_file = keystone.log log_dir = /var/log/keystone [assignment] [auth] [cache] [catalog] [cors] [cors.subdomain] [credential] [database] connection = mysql://keystone:keystone@127.0.0.1/keystone?charset=utf8&read_timeout=60 [domain_config] driver = sql [endpoint_filter] [endpoint_policy] [eventlet_server] [eventlet_server_ssl] [federation] [fernet_tokens] [identity] default_domain_id = default domain_specific_drivers_enabled = true domain_configurations_from_database = false domain_config_dir = /etc/keystone/domains driver = sql [identity_mapping] [kvs] [ldap] [matchmaker_redis] [memcache] [oauth1] [os_inherit] [oslo_messaging_amqp] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_middleware] [oslo_policy] [paste_deploy] [policy] [resource] [revoke] [role] [saml] [shadow_users] [signing] [ssl] [token] [tokenless_auth] [trust]
Основаня магия доменов это здесь:
[identity] default_domain_id = default domain_specific_drivers_enabled = true domain_configurations_from_database = false domain_config_dir = /etc/keystone/domains driver = sql
Эти настройки значат:
- искать домен-специфичные настройки в каталоге /etc/keystone/domains, имя файла должно быть keystone.<domain_name>.conf, например для моего домена ldaptest: /etc/keystone/domains/keystone.ldaptest.conf
- разрешить использовать разные бекенды для доменов.
На этом этапе подстерегает некоторое число засад
- ни под каким соусом у меня не заработал файл с бекендом SQL - вероятно нельзя создать домен с конфигурацией идентичной дефолтной.
- создавать надо строго в определенном порядке
- включить опцию domain_specific_drivers_enabled = true
- подложить файл конфигурации с указаным бекендом (но можно без опций этого бекенда)
- рестартовать кейстоун
- создать домен
/keystone.ldaptest.conf
openstack клиент
начиная с какого-то момента кейстоун (особенно v3) использует openstack клиент (вместо утилиты keysone)
cat /etc/openstack/clouds.yaml clouds: test: identity-api-version: 3 auth: auth_url: http://172.17.35.25:35357/v3/ project_name: admin username: admin password: admin project_domain_id: default user_domain_id: default region_name: RegionOne
openstack --os-identity-api-version 3 domain create --description "Test sql backend Domain" sql +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Test sql backend Domain | | enabled | True | | id | 107c679c80264cc080c439a784d95466 | | name | sql | +-------------+----------------------------------+
openstack --os-identity-api-version 3 domain create --description "Test ldap backend Domain" ldap +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Test ldap backend Domain | | enabled | True | | id | 0799329296c64c3192d3479cd2c18614 | | name | ldap | +-------------+----------------------------------+
openstack --debug --os-cloud test domain list +----------------------------------+---------+---------+-----------------------------+ | ID | Name | Enabled | Description | +----------------------------------+---------+---------+-----------------------------+ | 0799329296c64c3192d3479cd2c18614 | ldap | True | Test ldap backend Domain | | 107c679c80264cc080c439a784d95466 | sql | True | Test sql backend Domain | | a9ec41aca45b4c5691068a81bb259592 | test1 | True | Test 1 Domain | | default | Default | True | The default domain | +----------------------------------+---------+---------+-----------------------------+
Ссылки
- https://ask.openstack.org/en/question/57508/why-my-openstackclient-doesnt-work-with-keystone-v3-api/
- http://docs.openstack.org/mitaka/install-guide-obs/keystone-users.html
- http://docs.openstack.org/admin-guide/keystone-integrate-assignment-backend-ldap.html
- http://www.ibm.com/developerworks/cloud/library/cl-ldap-keystone/
- http://docs.openstack.org/admin-guide/keystone-integrate-identity-backend-ldap.html
- http://docs.openstack.org/admin-guide/keystone-integrate-with-ldap.html
- http://www.ibm.com/developerworks/cloud/library/cl-ldap-keystone/