Openstack-Mitaka Keystone 部署心得

Openstack-Mitaka Keystone 部署心得

標籤 : Openstackpython


最近,開始學習 openstack,並嘗試部署 keystone 認證模塊,所用的版本爲 Mitaka 版本。因爲我徹底是新手,並且官方文檔有些細節沒說清楚,或者有些出入,因此爬了一些坑,如今寫個總結心得。git

系統環境爲 Centos 6.7。
把節點的 hostname 設置爲 controller。
編輯 /etc/hosts文件以下:github

# controller
127.0.0.1       controller

keystone-client

安裝 python-openstackclientpython-keystoneclient,經過 CLI 命令進行交互。web

1. openstack
    適用於全局,可管理和查看各種信息。

2. keystone-manage
    用於啓動 keystone 模塊數據、初始化數據庫、生成 SSL 相關的證書和私鑰。keystone 命令已廢棄。

這些 client 不依賴於配置文件,但與環境變量、命令行參數有關。sql


keystone模塊

首先,從 github 上把 keystone 模塊克隆下來。數據庫

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

安裝 keystone web 服務 (若有其它版本的 pip 可自行更換,例如 pip27 ):json

$ pip install .

該 keystone 模塊依賴於配置文件,例如,/etc/keystone/keystone.conf,但與環境變量無關。bootstrap


配置文件

你能夠在 /etc 文件夾下找到如下配置文件:api

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

編輯 /etc/keystone/keystone.conf, 並完成如下改動:bash

  • 在 [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-userkeystone-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

而後就能夠在 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那行不用便可。

建立項目見官網。

相關文章
相關標籤/搜索