Keystone (OpenStack Identity Service) — это независимый модуль в OpenStack, обеспечивающий аутентификацию безопасности. Он в основном отвечает за аутентификацию личности пользователей openstack, управление токенами, каталог служб, обеспечивающий доступ к ресурсам, и контроль доступа на основе ролей пользователей.
Keystone аналогичен служебной шине или реестру всей инфраструктуры Openstack. Другие службы используют keystone для регистрации конечной точки своих служб (URL-адрес для доступа к службе). Для получения конечной точки любые вызовы между службами должны быть проверены Keystone. целевая служба, чтобы найти целевую службу.
Расположение сервиса Keystone в архитектуре Openstack:
В Openstack Ketstone отвечает за реализацию двух основных функций: аутентификацию пользователя и каталог служб. Он эквивалентен центру регистрации и имеет следующие основные функции:
Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.
Службы Keystone работают по всей архитектуре. Весь процесс служб аутентификации личности включает несколько важных концепций.
yum install -y mariadb mariadb-server python2-PyMySQL
Завершите установку. После этого мы добавляем конфигурацию базы данных MySQL для Openstack, создаем новый файл openstack.cnf в каталоге /etc/my.cnf.d/ и записываем следующий контент:
[mysqld]
bind-address = 192.168.136.101
default-storage-engine = innodb #Механизм хранения по умолчанию [innodb]
innodb_file_per_table # Использовать эксклюзивное табличное пространство
max_connections = 4096 #Максимальное количество подключений 4096 (по умолчанию 1024)
collation-server = utf8_general_ci #база данных Правила корректуры по умолчанию
character-set-server = utf8 #Набор символов по умолчанию
После этого нам нужно создать базу данных, необходимую для запуска Openstack, и предоставить соответствующие разрешения. После входа в MySQL выполните команду:
create database keystone;
grant all on keystone.* to 'keystone'@'localhost' identified by 'keystone';
grant all on keystone.* to 'keystone'@'%' identified by 'keystone';
create database glance;
grant all on glance.* to 'glance'@'%' identified by 'glance';
grant all on glance.* to 'glance'@'localhost' identified by 'glance';
create database nova;
grant all on nova.* to 'nova'@'localhost' identified by 'nova';
grant all on nova.* to 'nova'@'%' identified by 'nova';
create database nova_api;
grant all on nova_api.* to 'nova_api'@'localhost' identified by 'nova_api';
grant all on nova_api.* to 'nova_api'@'%' identified by 'nova_api';
create database neutron;
grant all on neutron.* to 'neutron'@'%' identified by 'neutron';
grant all on neutron.* to 'neutron'@'localhost' identified by 'neutron';
flush privileges;
В приведенной выше конфигурации keystone — это база данных службы аутентификации, glance — зеркальная база данных, nova — база данных виртуализации, а Neutron — база данных управления сетевыми ресурсами. Процесс выполнения приведенной выше команды выглядит следующим образом:
Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.
Установите напрямую с помощью YUM и выполните команду:
yum install -y openstack-keystone httpd mod_wsgi
После установки keystone нам все равно нужно настроить keystone. Но прежде чем настраивать keystone, нам нужно сгенерировать токен и выполнить команду:
openssl rand -hex 10
Будет сгенерирована строка строк. Выполнение этой команды происходит следующим образом:
Файл конфигурации keystone — /etc/keystone/keystone.conf. После входа в этот файл нам нужно изменить следующие 4 места:
[default]
модуль,Измените поле admin_token в этом модуле на только что созданную строку.[database]
модуль,Добавьте в этот модуль следующий контент:connection = mysql+pymysql://keystone:keystone@192.168.136.101/keystone
В приведенной выше конфигурации keystone:keystone представляет имя пользователя и пароль базы данных MySQL, а последний /keystone представляет базу данных MySQL. Мы можем гибко модифицировать его в соответствии с нашей фактической конфигурацией.
снова,мы нашли[token]
модуль,Добавьте в этот модуль следующий контент:
provider = fernet
driver = memcache
Указывает на использование метода предоставления токенов Fernet и базы memcache. хранилище данных. наконец,мы нашли[memcache]
модуль,Добавьте в этот модуль следующий контент:
servers = 192.168.136.101:11211
Наконец, после того, как мы завершим вышеуказанную настройку, фактическая полезная конфигурация будет следующей:
Таким образом, наша настройка трапецеидальных искажений завершена.
существоватьтрапецеидальная После завершения модификации нам еще предстоит выполнить keystone базу. инициализация данных Configuration.исполняемая команда:
su -s /bin/sh -c "keystone-manage db_sync" keystone
Дождавшись выполнения команды, проверим эффект от инициализации базы данных и выполним команду:
mysql -h 192.168.136.101 -ukeystone -pkeystone -e "use keystone;show tables;"
Результат выглядит следующим образом:
Как вы можете видеть на рисунке выше, наша ключевая задача по структуризации базы данных прошла успешно!
Наконец, нам также необходимо инициализировать ключи Fernet и выполнить команду:
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
Вы можете создать каталог Fernets-keys в каталоге /etc/keystone/, и сертификат Fernet линейного канала хранится в этом каталоге.
Прежде чем настраивать Keystone, нам необходимо сначала создать переменные среды, чтобы мы могли успешно подключиться к Keystone. Выполнить команду:
export OS_TOKEN=e4f523fef7082712e949
export OS_URL=http://192.168.136.101:35357/v3
export OS_IDENTITY_API_VERSION=3
Эти три переменные среды можно установить. Среди них первый OS_TOKEN — это значение admin_token, которое мы установили в файле конфигурации Keystone, а OS_URL — это IP-адрес локального компьютера. Вы можете изменить эти два параметра в соответствии с реальной ситуацией при их использовании.
Уведомление,Только после завершения создания этих трех переменных среды,Только после этого вы сможете перейти к следующему шагу,В противном случае Openstack сообщит об ошибке! Подробнее об услугах облачных вычислений Серия обучающих статей по Openstack,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.
В openstack используйте параметр --help для отображения справки по команде, например, выполните команду:
openstack --help
Может отображать все команды, связанные с OpenStack. Результаты выполнения (части) этой команды следующие:
Конечно, мы также можем просмотреть справку по команде для одного модуля и выполнить команду:
openstack user --help
Openstack может отображаться Сопутствующие команды пользовательского модуля, выполняющего Результат выглядит следующим образом:
Аналогично выполняем команду:
openstack service --help
Вы также можете отобразить связанные команды сервисного модуля, который выполняет Результат выглядит следующим образом:
так,Когда мы сталкиваемся с неизвестной нам командой openstack,Вы можете использовать параметр –help для просмотра конкретного использования. Следующий,Мы можем официально провести Keystone Создание доменов, проектов,пользователей и ролей Понятно。
Сначала мы создаем домен по умолчанию и выполняем команду:
openstack domain create --description "Default" Default
Вы можете создать домен по умолчанию. В приведенной выше команде за параметром –description следует описание домена, которое не имеет фактического эффекта. Результаты выполнения этой команды следующие:
Далее создаем административный проект в домене Default и выполняем команду:
openstack project create --domain Default --description "admin" admin
Результаты выполнения этой команды следующие:
Здесь наш административный проект — это проект, специально используемый для управления Openstack, с помощью которого можно управлять всеми облачными хостами в Openstack.
Далее пытаемся создать пользователя-администратора в домене Default и выполнить команду:
openstack user create --domain Default --password-prompt admin
Вы можете создать пользователя с именем admin. После выполнения этой команды пароль будет введен дважды в качестве пароля для входа пользователя. Выполнение команды следующее:
Далее нам нужно создать роль администратора и выполнить команду:
openstack role create admin
Эта команда выполняет Результат выглядит следующим образом:
После этого нам нужно добавить пользователя-администратора в проект admin и выполнить команду:
openstack role add --project admin --user admin admin
В приведенной выше команде параметр –project указывает имя проекта, параметр –user указывает имя пользователя, а последним администратором является роль, которую мы только что создали.
Таким образом настроен наш домен по умолчанию. Далее мы настраиваем демонстрационный домен практически таким же образом.
Сначала мы создаем демонстрационный домен и выполняем команду:
openstack project create --domain Default --description "Demo" demo
Выполнение команды следующее:
После этого создаем пользователя-демо в домене Default и выполняем команду:
openstacl user create --domain Default --password-prompt user-demo
Эта команда выполняет Результат выглядит следующим образом:
Далее мы создаем роль с именем user и выполняем команду:
openstack role create user
Эта команда выполняет Результат выглядит следующим образом:
Наконец, мы добавляем демонстрационного пользователя в демонстрационный проект, предоставляем ему права доступа и выполняем команду:
openstack role add --project demo --user user-demo user
Таким образом, наше Создание Keystone доменов, проектов, пользователей и ролей Только что закончил Понятно。Подробнее об услугах облачных вычислений Openstack Серия обучающих статей,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.
В Openstack каждая служба должна иметь доступ к Keystone, а доступ к Keystone требует аутентификации. Чтобы настроить аутентификацию доступа Keystone для каждого сервиса, нам необходимо создать пользователей для каждого сервиса, причем каждый пользователь также принадлежит проекту. Далее нам нужно создать этот проект Сервера и создать отдельного пользователя для каждого сервиса.
Сначала давайте создадим проект службы сервиса и выполним команду:
openstack project create --domain Default --description "Service" service
Эта команда выполняет Результат выглядит следующим образом:
Далее нам нужно создать пользователей для трех сервисов Glance, Nova и Neutron соответственно и авторизовать их.
Команда создания пользователя Glance выглядит следующим образом:
openstack user create --domain Default --password-prompt glance
Эта команда выполняет Результат выглядит следующим образом:
Команда для авторизации пользователя Glance выглядит следующим образом:
openstack role add --project service --user glance admin
Команды создания и авторизации пользователей Nova следующие:
openstack user create --domain Default --password-prompt nova
openstack role add --project service --user nova admin
Результаты выполнения двух вышеуказанных команд следующие:
Команды создания и авторизации пользователей Neutron следующие:
openstack user create --domian Default --password-prompt neutron
openstack role add --project service --user neutron admin
Результаты выполнения двух вышеуказанных команд следующие:
так,Мы сделаем это возможным ПонятноOpenstackиз Создание и авторизация пользователей Nova, Neutron и Glance в Краеугольный камень.
Сначала мы создаем службу идентификации, чтобы, когда другим службам потребуется зарегистрироваться, им нужно было искать созданную нами службу идентификации. Выполнить команду:
openstack service create keystone --description "Openstack Keystone" identity
Вы можете создать удостоверение с именем службы.,Эта команда выполняет Результат выглядит следующим образом:
Далее нам нужно создать конечную точку Keystone. Нам нужно создать конечные точки с публичными, частными и правами администратора. Команда создания общедоступной конечной точки выглядит следующим образом:
openstack endpoint create --region RegionOne identity http://192.168.136.101:5000/v3
Эта команда выполняет Результат выглядит следующим образом:
Команда создания внутренней конечной точки выглядит следующим образом:
openstack endpoint create --region RegionOne identity internal http://192.168.136.101:5000/v3
Эта команда выполняет Результат выглядит следующим образом:
Команда создания конечной точки администратора выглядит следующим образом:
openstack endpoint create --region RegionOne identity admin http://192.168.136.101:35357/v3
Обратите внимание, что в приведенной выше команде URL-адрес администратора отличается от внутреннего и общедоступного. URLиз Разделение,поэтомусуществовать Вот и портируем Конфигурациядля35357。Эта команда выполняет Результат выглядит следующим образом:
После выполнения вышеуказанных шагов наш Keystone был установлен. Далее давайте проверим результаты установки Keystone.
Сначала мы удаляем ранее установленные переменные среды OS_TOKEN и OS_URL. (Примечание: OS_TOKEN необходимо удалить, OS_URL удалять не нужно. Соответственно, в следующей команде параметр –os-auth-url можно опустить) Выполните команду:
unset OS_TOKEN OS_URL
Далее мы сначала тестируем пользователя-администратора и выполняем команду:
openstack --os-auth-url http://192.168.136.101:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue
Введите пароль во всплывающем диалоговом окне Результат. выглядит следующим образом:
Как видно на рисунке выше, наш администратор успешно установился! Далее мы тестируем пользователя user-demo и выполняем команду:
openstack --os-auth-url http://192.168.136.101:5000/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username user-demo token issue
Аналогичным образом введите пароль пользователя-демо-пользователя во всплывающем диалоговом окне Результат. выглядит следующим образом:
Как видно из картинки выше,Нашему пользователю-демо пользователю Установить удалось! Подробнее об услугах облачных вычислений Серия обучающих статей по Openstack,Видеть:Корпоративная платформа облачных вычислений Openstack, эта серия постоянно обновляется.
Наконец, чтобы нам было удобнее использовать Keystone, мы можем записать соответствующие параметры пользователя-администратора и пользователя-демо-пользователя в файлы сценариев, чтобы, когда мы захотим использовать этого пользователя для входа в openstack, мы могли выполнить команду сценарий и войдите в систему напрямую, что избавляет от необходимости выполнять приведенную выше очень длинную команду.
Содержимое файла сценария admin-openstack.sh для администратора следующее:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://192.168.136.101:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
После выполнения скрипта мы выполняем команду:
openstack token issue
Результат выглядит следующим образом:
Таким же образом мы также можем настроить файл сценария пользователя demo-openstack.sh, содержимое которого следующее:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=user-demo
export OS_PASSWORD=user-demo
export OS_AUTH_URL=http://192.168.136.101:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
После выполнения файла скрипта выполняем команду:
openstack token issue
осуществлять Результат выглядит следующим образом:
Из приведенных выше результатов мы видим, что сценарии нашего пользователя-администратора и пользователя-демо-пользователя успешно настроены!
Справочные статьи: https://blog.csdn.net/KY06_Xxy/article/details/110959473 https://blog.csdn.net/weixin_40228200/article/details/125079572 https://blog.csdn.net/weixin_40228200/article /подробности/125108273