optenstack配置keystone

安装和配置 Identity service(身份服务)keystone

本章节介绍在 Controller node(管理节点)安装和配置身份服务。

先决条件

在安装配置 OpenStack 身份服务前,你必须创建一个数据库和管理员令牌。

1. 创建数据库,并完成下列操作

A. 使用数据库命令行客户端,以 root 身份登录数据库服务器

# mysql -u root -p123

B. 创建 keystone 数据库

MariaDB [(none)]> CREATE DATABASEkeystone;

C. 授予数据库用户 keystone 访问 keystone 数据库的权限。

MariaDB [(none)]> GRANT ALL PRIVILEGESON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123';

MariaDB [(none)]> GRANT ALL PRIVILEGESON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123';

替换123 为一个合适的密码。

安装并配置组件

1. 安装软件包

# yum install openstack-keystone httpdmod_wsgi –y

2. 编辑/etc/keystone/keystone.conf文件并完成下列操作:

注:

默认配置文件在各发行版本中可能不同。你可能需要添加这些部分和选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...)表示默认的配置选项你应该保留。

A. 在[database]小节,配置数据库访问:

[database]

# ...

connection =mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

替换 KEYSTONE_DBPASS 为合适的密码。

B. 在[token]小节,配置使用Fernet 技术提供令牌。

[token]

# ...

provider = fernet

3. 初始化身份服务数据库:

# su -s /bin/sh -c "keystone-managedb_sync" keystone

4. 初始化 Fernet key 仓库:

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

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

5. 引导身份服务,创建管理员。

# keystone-manage bootstrap--bootstrap-password 123456\

 --bootstrap-admin-urlhttp://controller:35357/v3/ \

 --bootstrap-internal-urlhttp://controller:5000/v3/ \

 --bootstrap-public-urlhttp://controller:5000/v3/ \

 --bootstrap-region-id RegionOne

替换 ADMIN_PASS 为合适的密码。

配置 Apache HTTP 服务

1. 编辑/etc/httpd/conf/httpd.conf文件并配置 ServerName 配置项

为管理节点的主机名:

ServerName controller

2. 创建到文件/usr/share/keystone/wsgi-keystone.conf的链接:

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

完成安装

1. 启动 Apache HTTP 服务并设置开机自动启动:

# systemctl enable httpd.service

# systemctl start httpd.service

2. 配置管理账号

# export OS_USERNAME=admin

# export OS_PASSWORD=ADMIN_PASS

# export OS_PROJECT_NAME=admin

# export OS_USER_DOMAIN_NAME=Default

# export OS_PROJECT_DOMAIN_NAME=Default

# exportOS_AUTH_URL=http://controller:35357/v3

# export OS_IDENTITY_API_VERSION=3

配置 ADMIN_PASS 为 keystone-manage bootstrap 命令中使用的密码

创建域,项目,用户和角色

身份服务为每一个 OpenStack 服务提供认证服务。认证服务使用一个 domain(域),projects(项目(tenants(租户))),users(用户)和roles(角色)的组合。

1. 在 openstack 环境中创建一个包含其他服务唯一账号的 service 项目,创建 service 项目:

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

2. 日常(非管理员)任务一般使用一个非特权项目和用户。在本手册中,创建 demo 项目和用户:

A. 创建 demo 项目:

# openstack project create --domain default--description "Demo Project" demo

 

B. 创建 demo 用户:

# openstack user create --domain default--password-prompt demo

C. 创建 user 角色:

# openstack role create user

D. 添加 user 角色到 demo 项目和用户:

# openstack role add --project demo --userdemo user

验证操作

在安装其他服务前,验证身份服务是否正常。

1. 由于安全的原因,关闭临时认证令牌机制。

编辑/etc/keystone/keystone-paste.ini 文件并移除[pipeline:public_api],[pipeline:admin_api], 和[pipeline:api_v3]小节的 admin_token_auth 项。‘

 

[pipeline:public_api]

# The last item in this pipeline must bepublic_service or an equivalent

# application. It cannot be a filter.

pipeline = healthcheck cors sizelimithttp_proxy_to_wsgi osprofiler url_normalize request_id build_auth_contexttoken_auth json_body ec2_extension public_service

 

[pipeline:admin_api]

# The last item in this pipeline must beadmin_service or an equivalent

# application. It cannot be a filter.

pipeline = healthcheck cors sizelimithttp_proxy_to_wsgi osprofiler url_normalize request_id build_auth_contexttoken_auth json_body ec2_extension s3_extension admin_service

2. 删除临时环境变量 OS_AUTH_URL 和 OS_PASSWORD:

# unset OS_AUTH_URL OS_PASSWORD

3. 使用 admin 用户,请求认证令牌

#openstack --os-auth-url http://controller:35357/v3 --os-project-domain-namedefault --os-user-domain-name default --os-project-name admin --os-usernameadmin token issue

4. 使用 demo 用户,请求认证令牌:

# openstack --os-auth-urlhttp://controller:5000/v3 --os-project-domain-name default--os-user-domain-name default --os-project-name demo --os-username demo tokenissue

创建 OpenStack 客户端环境脚本

为 admin 和 demo 项目和用户创建客户端环境脚本。本手册后续部分将使用这些脚本加载用户凭据。

1. 编辑 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=ADMIN_PASS

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

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

替换 ADMIN_PASS 为身份服务中 admin 用户的密码。

2. 编辑 demo-openrc 文件,并添加下列内容:

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=demo

export OS_USERNAME=demo

export OS_PASSWORD=DEMO_PASS

exportOS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

替换 DEMO_PASS 为身份服务中 demo 用户的密码。

使用脚本

1. 加载 admin-openrc 文件用来填充身份服务中admin 项目和用户的

用户凭据到环境变量:

# . admin-openrc

2. 请求认证令牌

# openstack token issue

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值