您的位置:首页 > 运维架构

Openstack-Mitaka Keystone 部署心得

2016-08-18 21:04 281 查看

Openstack-Mitaka Keystone 部署心得

标签 : Openstack

最近,开始学习 openstack,并尝试部署 keystone 认证模块,所用的版本为 Mitaka 版本。由于我完全是新手,而且官方文档有些细节没说清楚,或者有些出入,所以爬了一些坑,现在写个总结心得。

系统环境为 Centos 6.7。

把节点的 hostname 设置为 controller。

编辑
/etc/hosts
文件如下:

# controller
127.0.0.1       controller


keystone-client

安装
python-openstackclient
python-keystoneclient
,通过 CLI 命令进行交互。

1. openstack
适用于全局,可管理和查看各类信息。

2. keystone-manage
用于启动 keystone 模块数据、初始化数据库、生成 SSL 相关的证书和私钥。keystone 命令已废弃。

这些 client 不依赖于配置文件,但与环境变量、命令行参数有关。

keystone模块

首先,从 github 上把 keystone 模块克隆下来。

$ git clone https://git.openstack.org/openstack/keystone.git -b stable/mitaka
$ cd keystone

安装 keystone web 服务 (如有其它版本的
pip
可自行更换,例如
pip27
):

$ pip install .

该 keystone 模块依赖于配置文件,例如,
/etc/keystone/keystone.conf
,但与环境变量无关。

配置文件

你可以在
/etc
文件夹下找到以下配置文件:

keystone.conf
keystone-paste.ini
logging.conf
policy.json
default_catalog.templates

编辑
/etc/keystone/keystone.conf
, 并完成以下改动:

在 [DEFAULT] 部分中,定义初始管理员的令牌:

[DEFAULT]
...
admin_token = ADMIN_TOKEN

还没有建立其它 user时,
openstack
命令可加上
--os-token=ADMIN_TOKEN
来通过验证。

在 [database] 部分中,配置数据库连接:

[database]
...
connection = sqlite:///keystone.db (可自定义)


在 [token] 中,配置 Fernet 令牌提供者,也可选择 pki 的方式:

[token]
...
provider = fernet

初始化数据库:

keystone-manage db_sync

初始化 Fernet 私钥:

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

选择 pki 方式的话,就是:

# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

keystone-user
keystone-group
为实际用户及组。

运行

可通过
uwsgi
方式运行:

$ uwsgi --http 127.0.0.1:35357 --wsgi-file $(which keystone-wsgi-admin)
$ uwsgi --http 127.0.0.1:5000 --wsgi-file $(which keystone-wsgi-public)

也可通过
Apache HTTPD
的方式运行,具体见官网。

创建 admin 用户角色

keystone 可通过以下命令行来初始化:

$ keystone-manage bootstrap \
--bootstrap-password s3cr3t \
--bootstrap-username admin \
--bootstrap-project-name admin \
--bootstrap-role-name admin \
--bootstrap-service-name keystone \
--bootstrap-region-id RegionOne \
--bootstrap-admin-url http://localhost:35357 \
--bootstrap-public-url http://localhost:5000 \
--bootstrap-internal-url http://localhost:5000[/code] 然后就可以在 
openstack
命令行里使用
admin
账号登录了。

可通过以下方式,来测试是否已配置合理:

$ openstack project list --os-username admin --os-project-name admin \
--os-user-domain-id default --os-project-domain-id default \
--os-identity-api-version 3 --os-auth-url http://localhost:5000 \
--os-password s3cr3t


环境变量

$ export OS_AUTH_URL=http://controller:35357/v3
$ export OS_URL=http://controller:35357/v3
$ export OS_IDENTITY_API_VERSION=3
$ export OS_PROJECT_NAME=admin
$ export OS_USERNAME=admin
$ export OS_PASSWORD=admin

这是 Identity API 的 V3版本使用样例,V3将全面应用。

V2 版本即将废弃,仍需使用,将 URL中的
/v3
改成
/v2.0
,并将
OS_IDENTITY_API_VERSION
那行不用即可。

创建项目见官网。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: