openstack(二)Keystone组件部署

一、环境简介:
OS:CentOS Linux release 7.7.1908 (Core)
openstack:train
环境有限当前只跑单台
mysql复用,rabbitmq和memcached

角色 ip地址 主机名
conroller1 192.168.39.239 controller.local
conroller1 192.168.39.239 controller.local
haproxy 192.168.39.241 haproxy.local vip 192.168.39.238
node1 192.168.39.240 node1.local
mysql 192.168.39.242 mysql.local

参考文档:
https://docs.openstack.org/

Keystone 中主要涉及到如下几个概念:User、Tenant、Role、Token:
User:使用 openstack 的用户。
Tenant:租户,可以理解为一个人、项目或者组织拥有的资源的合集。在一个租户中可以拥有
很多个用户,这些用户可以根据权限的划分使用租户中的资源。
Role:角色,用于分配操作的权限。角色可以被指定给用户,使得该用户获得角色对应的操
作权限。
Token:指的是一串比特值或者字符串,用来作为访问资源的记号。Token 中含有可访问资源
的范围和有效时间,token 是用户的一种凭证,需要使用正确的用户名和密码向 Keystone 服
务申请才能得到 token,如果用户每次都采用用户名/密码访问 OpenStack API,容易泄露用
户信息,带来安全隐患,所以 OpenStack 要求用户访问其 API 前,必须先获取 token,然后
用 token 作为用户凭据访问 OpenStack API。

一、前提条件:在安装和配置身份服务之前,必须创建数据库。

1、使用数据库访问客户端以root用户身份连接到数据库服务器

[root@mysql ~]# mysql -u root -p

2、创建keystone数据库:

MariaDB [(none)]> CREATE DATABASE keystone;

3、授予对keystone数据库的适当访问权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’
IDENTIFIED BY ‘keystone123’;

 在控制节点上测试:
[root@controller1 ~]# mysql -ukeystone -h 192.168.39.242 -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
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.
MariaDB [(none)]> 
二、安装和配置的部件

1、安装软件包

[root@controller1 ~]# yum install openstack-keystone httpd mod_wsgi

2、编辑/etc/keystone/keystone.conf文件并完成以下操作
可以把地址换成vip

#[database]
#connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
[database]
connection = mysql+pymysql://keystone:[email protected]/keystone

在该[token]部分中,配置Fernet令牌提供者:

[token]
provider = fernet
3、初始化数据库

[root@controller1 ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

在数据库上可以看到表:

MariaDB [keystone]> show tables;
+------------------------------------+
| Tables_in_keystone                 |
+------------------------------------+
| access_rule                        |
| access_token                       |
| application_credential             |
| application_credential_access_rule |
| application_credential_role        |
| assignment                         |
| config_register                    |
| consumer                           |
| credential                         |
| endpoint                           |
| endpoint_group                     |
| federated_user                     |
| federation_protocol                |
| group                              |
 ...........

4、初始化Fernet密钥存储库:
在这里插入图片描述

[root@controller1 ~]# ll /etc/keystone/
total 120
-rw-r----- 1 root     keystone   2303 Oct 16  2019 default_catalog.templates
-rw-r----- 1 root     keystone 104647 Apr 16 14:23 keystone.conf
-rw-r----- 1 root     keystone   1046 Oct 16  2019 logging.conf
-rw-r----- 1 root     keystone      3 Oct 16  2019 policy.json
-rw-r----- 1 keystone keystone    665 Oct 16  2019 sso_callback_template.html
[root@controller1 ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@controller1 ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
[root@controller1 ~]# ll /etc/keystone/
total 120
drwx------ 2 keystone keystone     24 Apr 16 14:28 credential-keys
-rw-r----- 1 root     keystone   2303 Oct 16  2019 default_catalog.templates
drwx------ 2 keystone keystone     24 Apr 16 14:28 fernet-keys
-rw-r----- 1 root     keystone 104647 Apr 16 14:23 keystone.conf
-rw-r----- 1 root     keystone   1046 Oct 16  2019 logging.conf
-rw-r----- 1 root     keystone      3 Oct 16  2019 policy.json
-rw-r----- 1 keystone keystone    665 Oct 16  2019 sso_callback_template.html

5、初始化服务组件
注意如果有vip则需要在haproxy上配置5000端口给服务器:

	listen openstack-keystone-5000
   mode tcp
   bind 192.168.39.238:5000
   server 192.168.39.239 192.168.39.239:5000 check inter 3 fall 3 rise 5
[root@controller1 ~]# keystone-manage bootstrap --bootstrap-password admin \
>   --bootstrap-admin-url http://openstack-vip.local:5000/v3/ \
>   --bootstrap-internal-url http://openstack-vip.local:5000/v3/ \
>   --bootstrap-public-url http://openstack-vip.local:5000/v3/ \
>   --bootstrap-region-id RegionOne
MariaDB [keystone]> MariaDB [keystone]> select * from user;
+----------------------------------+-------+---------+--------------------+---------------------+----------------+-----------+
| id                               | extra | enabled | default_project_id | created_at          | last_active_at | domain_id |
+----------------------------------+-------+---------+--------------------+---------------------+----------------+-----------+
| bba0eff010fd4dfabd8413dcb22766d8 | {
   }    |       1 | NULL               | 2020-04-16 06:40:45 | NULL           | default   |
+-----------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值