Openstack云平台搭建课程三·认证服务Keystone

这是搭建Openstack云平台的第三堂课,主要讲解认证服务Keystone的配置过程。Keystone负责Openstack各个环节的认证服务,是极其重要的,只有先配置好Keystone后,才能继续以后的工作。

创建数据库用户

mysql -uroot -pMariadb123
create database keystone;
grant all privileges on keystone.* to 'keystone'@'localhost' identified by 'Keystone123';
grant all privileges on keystone.* to 'keystone'@'%' identified by 'Keystone123';
flush privileges;
exit

配置keystone

安装keystone

yum -y install openstack-keystone

配置keystone

修改配置/etc/keystone/keystone.conf

[cache]
backend = oslo_cache.memcache_pool
enabled = true
memcache_servers = controller:11211

[database]
connection = mysql+pymysql://keystone:Keystone123@controller/keystone

[token]
provider = fernet

同步keystone数据

su -s /bin/sh -c "keystone-manage db_sync" keystone
# mysql -ukeystone -pKeystone123 -e "use keystone;show tables;"

初始化fernet-keys

keystone-manage fernet_setup \
--keystone-user keystone \
--keystone-group keystone
keystone-manage credential_setup \
--keystone-user keystone \
--keystone-group keystone

引导身份认证服务(提前配置并重启httpd)

修改http服务配置/etc/httpd/conf/httpd.conf

Listen 10.10.100.150:80
ServerName controller

启动httpd服务:

systemctl enable httpd
systemctl start httpd

配置keystone服务:

keystone-manage bootstrap \
--bootstrap-password Admin123 \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne

输出环境变量

export OS_USERNAME=admin
export OS_PASSWORD=Admin123
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_DOMAIN_NAME=default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

修改配置/usr/share/keystone/wsgi-keystone.conf

Listen 10.10.100.150:5000
Listen 10.10.100.150:35357
...
<VirtualHost 10.10.100.150:5000>
...
<VirtualHost 10.10.100.150:35357>
...

创建keystone配置文件软链接:

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

重启httpd:

systemctl restart httpd

创建默认项目

Openstack中的nova、glance等各项服务默认使用公用项目service、角色admin,因此,为了方便后续操作,我们先创建其统一项目“service”。

在生产环境中,无需配置Demo环境。

查看Domain列表

openstack domain list

在本文后面有创建新Domain的方法,此处略。

创建默认project

openstack project create \
--domain default \
--description "Service Project" service

创建默认user

openstack user create \
--domain default \
--password-prompt demo

输入密码(Demo123)后继续创建默认role(可将以上命令最后一行改为“--password=Demo123 demo”)

openstack role create user

关联项目、用户和角色

openstack role add \
--project service \
--user demo user

其他相关命令:

openstack user list
openstack role list
openstack role assignment list

用户变量脚本

admin

# /opt/scripts/admin
# 登录控制面板前先执行:source /opt/scripts/admin

export OS_USERNAME=admin
export OS_PASSWORD=Admin123
export OS_PROJECT_NAME=admin
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

demo(生产环境不需要)

# /opt/scripts/demo
# 登录控制面板前先执行:source /opt/scripts/demo

export OS_USERNAME=demo
export OS_PASSWORD=Demo123
export OS_PROJECT_NAME=demo
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

至此,openstack的认证服务keystone已经配置完成。

验证操作

取消临时环境变量

unset OS_AUTH_URL OS_PASSWORD

admin请求认证令牌

openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin token issue

demo请求认证令牌

openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name demo --os-username demo token issue

查看认证令牌

openstack token issue

其他配置说明

每个项目的创建流程都是域、项目、用户、角色,最后关联,也可以直接登录Dashboard创建,具体流程可参考“创建测试项目”,因在以后各项服务中均涉及到该流程,故以此不多讲述。

创建新域

一般情况下,使用默认域即可,如果需要使用新域,则执行如下命令:

openstack domain create --description "New Domain" NewDomainName

查看配置信息

openstack [ assignment | catalog | endpoint | service | domain | project ] list

创建测试项目

测试项目非必要,尤其是生产环境中更没必要创建,这里只是举例。

openstack domain create \
--description "Test Domain" TestDomain
openstack project create \
--domain TestDomain \
--description "Demo Project" TestProject
openstack user create \
--domain TestDomain \
--password-prompt TestUser

输入密码(Test123)后继续:

openstack role create TestRole
openstack role add \
--project TestProject \
--user TestUser TestRole

原创文章禁止转载:技术学堂 » Openstack云平台搭建课程三·认证服务Keystone

精彩评论

9+3=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏