Openstack-Queens双节点模式·认证服务Keystone

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

配置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

vi /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)

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

配置httpd

vi /etc/httpd/conf/httpd.conf

修改如下参数:

Listen 10.10.100.150:80
ServerName controller

修改keystone配置文件

vi /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 enable httpd

systemctl start 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

 

用户变量脚本

以下两个脚本各自存储在 /opt/scripts 目录中,需要时 source 即可。

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

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

其他配置说明

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

创建新域

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

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

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏