OpenStack3部署keystone组件

此文续接上一篇,openstack2节点通用组件安装,继续部署openstack,本节开始部署keystone组件

Keystone组件是一个身份认证服务,用于管理和验证用户、服务和端点的身份信息。它提供了认证、授权等功能,确保用户和服务能够安全地访问和使用OpenStack云环境。

Keystone 类似一个服务总线,或者说是整个OpenStack框架的注册表,Nova (计算)、Glance (镜像)、Swift (对象存储)、Cinder (块存储)、Neutron(网络),以及 Horizon ( Dashboard)等其他服务,都通过 Keystone 注册其服务端点 Endpoint(服务访问的 URL)。

注意:keystone组件部署在controller节点上

一、创库授权,创建OpenStack库

#这里我们登录mysql数据库,-u root指定root用户登录,-p提示输入密码。输入密码后我们就可以进入数据库了。(密码在openstack2节点通用组件安装设置过)

[root@controller my.cnf.d]# mysql -u root -p 
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.20-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

#创建keystone数据库

MariaDB [(none)]> create database keystone;

#将所有权限授予'keystone',该用户只能从本地主机连接,并使用密码'ks123'进行身份验证。执行成功后有Query OK, 0 rows affected (0.002 sec)提示

MariaDB [(none)]> grant all privileges on keystone .* to 'keystone'@'localhost' identified by 'ks123';
Query OK, 0 rows affected (0.002 sec)

 

#将所有权限授予'keystone',该用户可以从任何主机('%'通配符代表任何IP地址)连接,并使用密码'ks123'进行身份验证。

MariaDB [(none)]> grant all privileges on keystone .* to 'keystone'@'%' identified by 'ks123';
 

#重新加载权限表,确保最新的授权修改立即生效。

MariaDB [(none)]> flush privileges;

自此已经完成了,keystone的数据库创建以及授权。我们可以使用exit退出数据库。

二、权限查看(可选)

我们对刚刚创建的数据库查看是否已经授权
#执行"show grants for keystone;"命令,显示给用户"keystone"授予的权限列表。执行"select user,host from mysql.user;"命令,显示所有用户及其对应的主机信息。

我们使用exit退出数据库。

三、安装memcached

在OpenStack中,Memcached是一种内存缓存系统,用于提高OpenStack各个组件之间的性能和响应速度。

安装组件

yum install memcached python-memcached -y

编辑配置文件/etc/sysconfig/memcached在里面写入以下内容:

重启服务并使其开机自启

systemctl enable memcached;systemctl restart memcached

四、安装和配置组件

yum install openstack-keystone httpd mod_wsgi openstack-utils -y

修改配置文件/etc/keystone/keystone.conf,完成以下配置

通过vi或vim编辑器修改配置文件keystone.conf,定位到[database]部分加入框选中的内容,修改connection参数的值,其中对应的参数为:connection=mysql+pymysql://数据库用户名:密码@数据库主机地址/数据库名。

[token]部分包含用于配置Keystone令牌相关设置参数,provider=fernet表示用ferent加密算法生成和管理令牌。

配置完成后保存并退出,初始化数据库

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

-su是切换用户,-s /bin/sh指定要使用的shell,这里指定/bin/sh, -c "keystone-manage db_sync"切换用户后执行引号中的命令,末尾的Keystone表示切换指定的用户Keystone。

综上所述,这条命令以keystone的用户执行了keystone-manage db_sync的命令,用于初始化数据库,初始化后,将自动创建相关预定义表。

五、初始化Fernet keys

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

六、引导认证服务

keystone-manage bootstrap --bootstrap-password admin123 \
> --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

七、配置Apache HTTP服务

编辑/etc/httpd/conf/httpd.conf文件,加入ServerName controller

可以使用cat /etc/httpd/conf/httpd.conf | grep controller查看

创建配置链接

在Apache HTTP Server中添加一个软链接,将Keystone身份认证服务的WSGI配置文件wsgi-keystone.conf添加到HTTPD配置目录/etc/httpd/conf.d/中。

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

创建完成后重启httpd,设置开机自启,查看状态

systemctl restart httpd

systemctl enable httpd

systemctl status httpd

八、配置管理员环境变量

编辑admin-openrc文件,加入以下内容

export OS_PROJECT_DOMAIN_NAME=Defualt

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin123

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

这里我使用了cat命令查看了admin-openrc文件

export OS_PROJECT_DOMAIN_NAME=Default:设置项目域名为Default,用于身份认证。
export OS_USER_DOMAIN_NAME=Default:设置用户域名为Default,用于身份认证。
export OS_PROJECT_NAME=admin:设置项目名为admin,用于身份认证。
export OS_USERNAME=admin:设置用户名为admin,用于身份认证。
export OS_PASSWORD=admin123:设置密码为admin123,用于身份认证。
export OS_AUTH_URL=http://controller:5000/v3:设置认证URL为http://controller:5000/v3,用于身份认证。
export OS_IDENTITY_API_VERSION=3:身份认证API版本为3。
export OS_IMAGE_API_VERSION=2:镜像服务API版本为2。

给予admin-openrc文件权限,并运行。

chmod +x admin-openrc

source admin-openrc

注意如果在以后过程中关闭虚拟机,再次开启后务必重新执行source admin-openrc

九、验证token

openstack token issue

该命令将向OpenStack认证服务发送请求,以使用之前设置的用户名、密码和认证URL进行身份验证。如果身份验证成功,将返回包含访问令牌和其他相关信息的输出。

十、创建域、项目、用户、角色 

注意如果在创建时出现Missing value auth-url required for auth plugin password可以重新检查一下第八结的admin-openrc文件,并重新运行

创建项目service

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

查看项目

openstack project list

创建myproject项目

openstack project create --domain default --description "Demo Project" myproject

创建myuser账户,这里需要设置密码(自己设置即可),密码是不显示的。

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

创建myrole角色

openstack role create myrole

将myuser添加至myproject项目中并赋予myrole角色

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

十一、验证角色

经过一顿噼里啪里的操作,角色,项目是否已经创建,下面这些命令可以查看。

openstack role list

openstack project list

openstack user list

openstack role assignment list

十二、创建客户端环境脚本

vi myuser-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=myz123

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

保存退出后增加权限

chmod +x myuser-openrc 

  • 34
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值