cenos7.1 安装openstack kilo 心得之六 添加身份认证服务

来源:互联网 发布:apk格式软件下载 编辑:程序博客网 时间:2024/06/10 16:30

注意:该部分只在控制节点

一、安装和配置
这一章描述了怎样在控制结点安装和配置Openstack身份认证服务
配置前的准备
在你配置 OpenStack 身份认证服务前,你必须创建一个数据库和管理员令牌。
1. 完成下面的步骤以创建数据库:
   a. 以 root 用户身份通过数据库客户端连接到数据库服务:
       $ mysql -u root -p

     b. 创建 keystone 数据库:
         CREATE DATABASE keystone;
    c. 为 keystone 数据库赋予恰当的访问权限:
        GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
        GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
        将 KEYSTONE_DBPASS 替换为实际的密码。
    d. 退出数据库客户端。

          quit;
2. 生成一个随机值在初始的配置中作为管理员的令牌。
    $ openssl rand -hex 10
二、安装和配置组件
1. 运行以下命令来安装包。
   # yum install openstack-keystone python-keystoneclient
2. 编辑 /etc/keystone/keystone.conf ,并完成
下列操作:
    a. 在 [DEFAULT] 段中,对管理员令牌进行配置。
        [DEFAULT]
         ...
        admin_token = ADMIN_TOKEN
        将 ADMIN_TOKEN 替换为上一步中生成的随机字符串。
    b. 在 [database] 段,配置数据库访问相关参数:
       [database]
        ...
       connection = mysql://keystone:KEYSTONE_DBPASS@控制器/keystone
       将 KEYSTONE_DBPASS 替换为实际的数据库用户的密码。
    c. 在 [token] 部分,设置 UUID 令牌的提供者和 SQL 驱动。
       [token]
       ...
       provider = keystone.token.providers.uuid.Provider
      driver = keystone.token.persistence.backends.sql.Token
    d. 在 [revoke] 部分,配置 SQL 的撤回驱动:
      [revoke]
      ...
      driver = keystone.contrib.revoke.backends.sql.Revoke

   e. (可选配置)可以在 [DEFAULT] 段中开启详细日志配置,为后期的故障排除提供帮助:

      [DEFAULT]
      ...
     verbose = True

3. 生成通用的证书和私钥文件,并修改这些文件的访问权限:
# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
# chown -R keystone:keystone /var/log/keystone
# chown -R keystone:keystone /etc/keystone/ssl
# chmod -R o-rwx /etc/keystone/ssl

4. 初始化身份认证服务的数据库:

#keystone-manage db_sync

三、完成安装
1. 启动身份认证服务,并将该服务配为系统启动时自动启动:
# systemctl enable openstack-keystone.service
# systemctl start openstack-keystone.service
2. 身份认证服务默认的情况会永久保存已经过期的身份凭证。过期凭证的累积会增加数据
库的体积甚至减低整个服务的性能,特别是在那些资源紧缺的环境中。
建议使用 cron 配置计划任务每个小时定时清理过期的身份凭证:
# (crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log  \

2>&1' >> /var/spool/cron/keystone

四、创建租户、用户和角色

1. 配置管理员令牌:
$ export OS_SERVICE_TOKEN=ADMIN_TOKEN
将其中的 ADMIN_TOKEN 替换为您在 “安装和配置”一节 [30] 中生成的管理员令牌。例
如:
$ export OS_SERVICE_TOKEN=294a4c8a8a475f9b9836

2. 配置入口点:
$ export OS_SERVICE_ENDPOINT=http://控制器:35357/v2.0

创建租户、用户和角色
1. 创建管理员租户、用户和角色以在您的环境中执行管理员操作:
a. 创建 admin 租户:
$ keystone tenant-create --name admin --description "Admin Tenant"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Admin Tenant |
| enabled | True |
| id | 6f4c1e4cbfef4d5a8a1345882fbca110 |
| name | admin |
+-------------+----------------------------------+

b. 创建 admin 用户:
$ keystone user-create --name admin --pass ADMIN_PASS --email EMAIL_ADDRESS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | admin@example.com |
| enabled | True |
| id | ea8c352d253443118041c9c8b8416040 |
| name | admin |
| username | admin |
+----------+----------------------------------+
将其中的 ADMIN_PASS 替换为您要设置的一个合适的密码,其中的 EMAIL_ADDRESS
替换为合适的 e-mail 地址。

c. 创建 admin 角色:
$ keystone role-create --name admin
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | bff3a6083b714fa29c9344bf8930d199 |
| name | admin |
+----------+----------------------------------+

d. 将 admin 角色赋予给 admin 租户和用户:
$ keystone user-role-add --user admin --tenant admin --role admin

2. 创建一个 demo 租户和用户,用于环境中的一般操作:
a. 创建 demo 租户:

$ keystone tenant-create --name demo --description "Demo Tenant"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Demo Tenant |
| enabled | True |
| id | 4aa51bb942be4dd0ac0555d7591f80a6 |
| name | demo |
+-------------+----------------------------------+

b. 在 demo 租户下创建 demo 用户:
$ keystone user-create --name demo --tenant demo --pass DEMO_PASS --email EMAIL_ADDRESS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | demo@example.com |
| enabled | True |
| id | 7004dfa0dda84d63aef81cf7f100af01 |
| name | demo |
| tenantId | 4aa51bb942be4dd0ac0555d7591f80a6 |
| username | demo |
+----------+----------------------------------+
将其中的 DEMO_PASS 替换为您要设置的一个合适的密码,其中的 EMAIL_ADDRESS 替
换为合适的 e-mail 地址。

3. OpenStack 服务也需要租户、用户和角色来与其他服务交互。每个服务一般需要在
service 租户下创建一个或多个用户,并赋予 admin 的角色。
• 创建 service 租户:

$ keystone tenant-create --name service --description "Service Tenant"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Service Tenant |
| enabled | True |
| id | 6b69202e1bf846a4ae50d65bc4789122 |
| name | service |
+-------------+----------------------------------+

创建服务实体和 API 端点
创建好租户、用户和角色后,您必须为身份认证服务创建 service 实体和 API 端点。
配置前的准备
• 如 “创建租户、用户和角色”一节 [32] 中所描述的内容,设置 OS_SERVICE_TOKEN 和
OS_SERVICE_ENDPOINT 环境变量。
创建服务实体和 API 端点
1. 身份认证服务管理了一个关于您 OpenStack 环境中的服务的目录。服务使用这个目录来
查找您环境中的其他服务。
创建服务实体和身份认证服务:

$ keystone service-create --name keystone --type identity --description "OpenStack Identity"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Identity |
| enabled | True |
| id | 15c11a23667e427e91bc31335b45f4bd |
| name | keystone |
| type | identity |
+-------------+----------------------------------+

2. 身份认证服务管理了一个与您环境相关的 API 端点的目录。服务使用这个目录来决定如
何与您环境中的其他服务进行通信。

创建身份认证服务的 API 端点:
$ keystone endpoint-create --service-id $(keystone service-list | awk '/ identity / {print $2}') --publicurl http://控制器:5000/v2.0 --internalurl http://控制器:5000/v2.0 \
--adminurl http://控制器:35357/v2.0 --region regionOne
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://controller:35357/v2.0 |
| id | 11f9c625a3b94a3f8e66bf4e5de2679f |
| internalurl | http://controller:5000/v2.0 |
| publicurl | http://controller:5000/v2.0 |
| region | regionOne |
| service_id | 15c11a23667e427e91bc31335b45f4bd |
+-------------+----------------------------------+

验证操作
这个部分描述如何验证身份认证服务的操作。
1. 取消 OS_SERVICE_TOKEN 和 OS_SERVICE_ENDPOINT 临时环境变量的设置:
$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
2. 使用admin 租户和用户,需要一个认证的令牌:
$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS--os-auth-url http://controller:35357/v2.0 token-get
+-----------+----------------------------------+
| Property | Value |
+-----------+----------------------------------+
| expires | 2014-10-10T12:50:12Z |
| id | 8963eb5ccd864769a894ec316ef8f7d4 |
| tenant_id | 6f4c1e4cbfef4d5a8a1345882fbca110 |
| user_id | ea8c352d253443118041c9c8b8416040 |
+-----------+----------------------------------+
将其中的 ADMIN_PASS 替换为您在身份认证服务中为 admin 用户设置的密码。如果包含
特殊字符,您可能需要使用单引号 (') 将密码引用。

3. 使用 admin 租户和用户,列出租户以验证 admin 租户和用户能够执行只有管理员才能执
行的命令行,且身份认证服务包含您在 “创建租户、用户和角色”一节 [32] 中创建的
租户:
$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller:35357/v2.0 tenant-list

+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| 6f4c1e4cbfef4d5a8a1345882fbca110 | admin | True |
| 4aa51bb942be4dd0ac0555d7591f80a6 | demo | True |
| 6b69202e1bf846a4ae50d65bc4789122 | service | True |
+----------------------------------+----------+---------+

4. 使用 admin 租户和用户,列出用户以验证身份认证服务包含您在 “创建租户、用户和
角色”一节 [32] 中创建的用户:

$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS \
--os-auth-url http://controller:35357/v2.0 user-list
+----------------------------------+---------+---------+---------------------+
| id | name | enabled | email |
+----------------------------------+---------+---------+---------------------+
| ea8c352d253443118041c9c8b8416040 | admin | True | admin@example.com |
| 7004dfa0dda84d63aef81cf7f100af01 | demo | True | demo@example.com |
+----------------------------------+---------+---------+---------------------+
5. 使用 admin 租户和用户,列出角色以验证 身份认证服务包含您在 “创建租户、用户和
角色”一节 [32] 中创建的角色:

$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS \
--os-auth-url http://controller:35357/v2.0 role-list
+----------------------------------+----------+
| id | name |
+----------------------------------+----------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| bff3a6083b714fa29c9344bf8930d199 | admin |
+----------------------------------+----------+

将其中的 DEMO_PASS 替换为您在身份认证服务中为 demo 用户所设置的密码。

7. 使用 demo 租户和用户,尝试列出用户以验证您不能执行只有管理员才能执行的命令
行:

$ keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS \
--os-auth-url http://controller:35357/v2.0 user-list
You are not authorized to perform the requested action, admin_required. (HTTP 403)

创建 OpenStack 客户端环境脚本

1. 编辑 admin-openrc.sh 文件并添加下列内容:
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://控制器:35357/v2.0

将其中的 ADMIN_PASS 替换为您在身份认证服务中为 admin 用户设置的密码。
2. 编辑 demo-openrc.sh 文件并添加下列内容:
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://控制器:5000/v2.0

将其中的 DEMO_PASS 替换为您在身份认证服务中为 demo 用户设置的密码。

加载客户端环境脚本
• 使用特定租户和用户运行客户端,您可以在运行之前简单地加载相关客户端脚本。例
如,加载身份认证服务的位置和 admin 租户及用户的凭证:
$ source admin-openrc.sh

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 腰椎间盘突出吃什么好 腰椎间盘突出严重吗 腰椎间盘突出的疗法 腰椎间盘突出与膨出 腰椎间盘膨出的原因 腰椎间盘突出初期症状 腰椎间盘突出症的锻炼 腰椎间盘突出的锻炼 腰椎间盘突出的护理 腰椎间盘突出按摩手法 腰椎间盘突出和脱出 腰椎间盘突出如何保养 腰椎间盘突出的保养 腰椎间盘突出有何症状 腰椎间盘突出医院好 得了腰椎间盘突出怎么办 腰椎间盘突出的锻炼方法 腰椎间盘为什么会突出 腰椎间盘突出要注意哪些 腰椎间盘突出吃中药 腰椎间盘突出的腰带 腰椎间盘突出按摩器 腰椎间盘突出新疗法 腰椎间盘突出费用多少 腰椎间盘突出微创多少钱 腰椎间盘突出哪里医院好 腰椎间盘突出怎样按摩 腰椎间盘突出哪个医院好 腰椎间盘突出适合什么运动 腰椎间盘突出能自愈吗 腰椎间盘突出能复位吗 腰椎间盘突出手法复位 腰椎间盘突出能做瑜伽吗 霍华德腰椎间盘突出 腰椎间盘突出拍片能看出来吗 腰椎间盘突出去那家医院好 腰椎间盘突出能用按摩器吗 腰椎间盘突出专业医院 腰椎间盘突出应该看什么科 腰椎间盘突出要住院吗 腰椎间盘突出的微创疗法