2.部署Keystone服务

在OpenStack的框架体系中Keystone的作用类似于一个服务总线,为OpenStack提供身份管理服务,包括用户认证,服务认证和口令认证,其他服务通过Keystone来注册服务的Endpoint(端点),针对服务的任何调动都要通过Keystone的身份认证,并获得Endpoint(端点)来进行访问。

部署顺序

keystone组件是第一个要安装的组件,其他组件之间通信都是需要通过keystone进行认证

然后,glance组件负责镜像管理,启动实例时提供镜像服务,可存储各个不同操作系统的镜像;

然后,placement组件,负责为nova提供资源的监控的功能;

然后,nova组件负责管理实例,创建、删除、管理等操作;

最后,neutron组件负责网络,二层和三层网络,通过linuxbridge网桥来镜像连接;

dashboard提供一个图形界面,在web页面可以启动实例,创建网络等等操作;

cinder组件提供一个额外的volume存储卷,启动实例的时候可以创建卷给他绑定上去,自己搭建练习,有没有都行;

keystone数据库配置

controller节点

在安装和配置keystone身份服务之前,必须创建服务对应的数据库用于存储相关数据

然后授权keystone用户本地访问和远程访问两种访问权限

mysql -u root -p123456
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123';

 

 keystone服务安装配置

安装keystone、httpd、mod_wsgi软件(mod_wsgi会提供一个对外的api接口用于接收请求)

yum -y install openstack-keystone httpd mod_wsgi
修改 keystone.conf 配置文件
#查看文件属性
ll /etc/keystone/keystone.conf
-rw-r----- 1 root keystone 140415 6月12 2023 /etc/keystone/keystone.conf
#提前备份配置文件
cp /etc/keystone/keystone.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf

/etc/keystone/keystone.conf
#修改文件内容
vim /etc/keystone/keystone.conf
[database]
#配置keystone访问数据库的密码
connection =
mysql+pymysql://keystone:123@controller/keystone
[token]
#配置Fernet令牌,方便其他程序通过令牌来连接keyston进行验证
provider = fernet

 初始化数据库,keystone服务会向数据库中导入表结构

su -s /bin/sh -c "keystone-manage db_sync" keystone

 查看数据库验证

mysql -u keystone -p123
use keystone
show tables;

 初始化Fernet密钥存储库

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone--keystone-group keystone
引导身份服务,使得 keystone 可以在所有网卡的 5000 端口上运行,这里的 ADMIN_PASS (管理员密码)改为: 123
keystone-manage bootstrap --bootstrap-password 123 \
--bootstrap-admin-url http://controller:5000/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne

配置HTTP服务

 配置 ServerName选项为控制器节点名称

vim /etc/httpd/conf/httpd.conf

 创建文件链接,这个文件是keystone给生成好的,用于访问keystone的5000端口

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

设置开机启动并启动 http 服务
systemctl enable httpd.service && systemctl start httpd.service
http 服务正常启动, keystone 5000 端口已经打开

netstat -tunpl | grep httpd
配置 admin 管理员环境变量,定义 admin 管理员的密码为 123
export OS_USERNAME=admin
export OS_PASSWORD=123
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3

创建认证账号

keystone OpenStack 提供身份验证功能, 身份验证使用域 (domain),项目(project),用户(user),角色(Role)的组合。
User 用户 User 就是用户,它代表可以通过 keystone 进行访问的人或者程序;
Role 角色 Role 代表一组用户可以访问的资源权限,用户可以使用角色从而获得该角色的权限;
project 项目:他是各个服务中一些可以访问的资源集合,例如:镜像,存储,网络等资源; domain 域 Domain 的概念实现真正的多租户架构。
云服务的客户是 Domain 的所有者,他们可以在自己的 Domain 中创建多个 Projects、 Users Groups Roles

controller节点

首先创建 domain 域:域名称 example
openstack domain create --description "An Example Domain"  example

#查看域列表
openstack domain list

查看对于域可进行的操作如下:

[root@controller ~]# openstack domain --help

#查看指定域详细信息
openstack domain show default
+-------------+--------------------+
| Field | Value |
+-------------+--------------------+
| description | The default domain |
| enabled | True |
| id | default |
| name | Default |
| options | {} |
| tags | [] |
+-------------+--------------------+

创建project项目:项目名称service,并指定放在default域中

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

#查看项目列表
openstack project list

 

#查看指定项目详细信息
openstack project show service
创建一个 project 项目:项目名称 myproject ,并指定放在 default 域中
openstack project create --domain default \
--description "Demo Project" myproject

 创建非特权user用户:用户名称myuser ,用户的密码:123

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

#查看用户列表
openstack user list
admin 是openstack自带的管理员用户

#查看可进行的操作
openstack user list

#查看指定用户详细信息
openstack user show myuser
创建 role 角色:角色名称为 myrole
openstack role create myrole

#查看指定角色详细信息
openstack role show myrole

 

 角色绑定:myrole角色绑定到myuser用户与myproject项目上

openstack role add --project myproject --user myuser
myrole

 取消环境变量

unset OS_AUTH_URL OS_PASSWORD
keyston 获取 token 令牌,如果能成功获取那么说明 keyston 服务就是没有问题的了
#以admin用户获取token令牌
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name
Default \
--os-project-name admin --os-username admin token issue

注意:这里要输入密码

 

#以myuser用户获取token令牌
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name
Default \
--os-project-name myproject --os-username myuser token
issue

创建环境变量脚本

OpenStack 环境中执行命令的时候需要验证用户身份,而用户身份在Open Stack中通过环境变量的方式来定义与切换,但是这些参数是非常多而且长的,每次输入一次命令就要加上这些参数
为了简化,可以将变量写入脚本,使用的时候只需要执行不同的脚本就可以切换用户身份,方便!
#admin用户脚本(用户密码:123)
vim admin-openrc

 

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
#myuser用户脚本(用户密码:123)
vim demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
切换用户身份只需执行脚本即可
source admin-openrc
#查看自己的token令牌
openstack token issue
source demo-openrc
#查看自己token令牌
openstack token issue

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵唯一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值