Openstack 雲計算(二):openstack rocky 二: keystone 部署與驗證

Openstack 雲計算(二): Openstack Rocky部署二 keystone 部署與驗證

標籤(空格分隔):openstack系列python


  • 一: keystone認證服務
  • 二: keystone的部署

一: keystone 認證服務

Keystone(OpenStack Identity Service)是 OpenStack 框架中負責管理身份驗證、服務規則和服務令牌功能的模塊。用戶訪問資源須要驗證用戶的身份與權限,服務執行操做也須要進行權限檢測,這些都須要經過 Keystone 來處理。Keystone相似一個服務總線, 或者說是整個Openstack框架的註冊表, 其餘服務經過keystone來註冊其服務的Endpoint(服務訪問的URL),任何服務之間相互的調用, 須要通過Keystone的身份驗證, 來得到目標服務的Endpoint來找到目標服務。

1)用戶與認證:用戶權限與用戶行爲跟蹤

User          用戶
Tenant        租戶
Token         令牌
Role          角色

2)服務目錄:提供一個服務目錄,包括全部服務項與相關API的端點

Service       服務
Endpoint      端點

二: keystone的部署

2.1 在控制節點建立keystone相關數據庫並受權

mysql -uroot -pflyfish225

CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY  'keystone';

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY  'keystone';

flush privileges;

show databases;

select user,host from mysql.user;

image_1d8llli4l1lo92go8bpum519uq9.png-183.4kB

2.2.在控制節點安裝keystone相關軟件包

yum install openstack-keystone httpd mod_wsgi -y
yum install openstack-keystone python-keystoneclient openstack-utils -y

image_1d8lmb1ui1uqsttn1fu9vqc1teom.png-177.2kB

image_1d8lmc5441e07e221cbb13bj1c5613.png-173.1kB

2.3 keystone 文件配置

openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:keystone@controller/keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet

grep '^[a-z]' /etc/keystone/keystone.conf

image_1d8lmn0qsa751eqtgd3g031au71g.png-31.9kB

su -s /bin/sh -c "keystone-manage db_sync" keystone

mysql -uroot -pflyfish225

use keystone; 

show tables;

image_1d8lmr9i2n043ba1m6t185519nt1t.png-154.8kB

2.4 初始化Fernet令牌庫

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

image_1d8lmvl5pvco1nv0156detd6q62a.png-44.7kB

2.5 定義訪問端點

keystone-manage bootstrap --bootstrap-password admin \
  --bootstrap-admin-url http://controller:5000/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

image_1d8ln65mu1jkl1pkpqo1vuu2a22n.png-50.6kB

2.6 配置httpd 服務

vim /etc/httpd/conf/httpd.conf

---
ServerName controller
---

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

service httpd start 

chkconfig httpd on

3.png-27.9kB

image_1d8lnfl3f9qr1n91mre1o471gsm3g.png-130.8kB

image_1d8lnguqp191q16c31tbnsub11m13t.png-72.5kB

臨時配置管理員帳戶的相關變量進行管理

export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3

image_1d8lnl8c4rug1rkrjea1qjg1dvk4d.png-77.4kB

env |grep OS_

image_1d8lnmi4b4i019fsfqcrlv9va4q.png-65.6kB

查看命令

openstack endpoint list
openstack project list
openstack user list

image_1d8lnpahupumdb7e6jaqr14lr57.png-123.9kB

2.7 建立keystone的通常實例

# 如下命令會在project表中建立名爲example的項目

openstack domain create --description "An Example Domain" example

image_1d8lnslif1dtjcon1dmqetq1e1p5n.png-51.4kB

爲keystone系統環境建立名爲service的項目提供服務

用於常規(非管理)任務,須要使用無特權用戶

如下命令會在project表中建立名爲service的項目

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

image_1d8lnutvbsiq1n9qk6f13ufupc64.png-63.9kB

建立myproject項目和對應的用戶及角色
# 做爲通常用戶(非管理員)的項目,爲普通用戶提供服務

# 如下命令會在project表中建立名爲myproject項目

openstack project create --domain default --description "Demo Project" myproject

image_1d8lo0m0gl71rdba51nv3m06k.png-55.4kB

在默認域建立myuser用戶
openstack user create --domain default  --password-prompt myuser

在role表建立myrole角色

openstack role create myrole

image_1d8lo7gb8117k3k0nsj13cl1bih71.png-70.8kB

image_1d8lo942i136v1tqs1nlm5fojo7e.png-44.2kB

將myrole角色添加到myproject項目中和myuser用戶組中

openstack role add --project myproject --user myuser myrole

image_1d8lobqih1rbm1b7cn9a1csv1gfi7r.png-29.1kB

2.8 驗證keystone

去除環境變量

unset OS_AUTH_URL OS_PASSWORD
env |grep OS_

image_1d8lofd6u4pb7ug1456150jg328b.png-61.7kB

做爲管理員用戶去請求一個認證的token測試是否可
以使用admin帳戶進行登錄認證,請求認證令牌

openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name admin --os-username admin token issue

image_1d8lohcfha8rvd59hl2qn1cv48r.png-115.8kB

使用普通用戶獲取認證token

openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name myproject --os-username myuser token issue

image_1d8lojvupacti6b6or6t11r5398.png-128.4kB

2.9 建立OpenStack客戶端環境腳本

建立admin用戶的環境管理腳本

mkdir /openstack

cd /openstack

vim keystone-admin-pass.sh
---
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
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
---
source keystone-admin-pass.sh

建立普通用戶myuser的客戶端環境變量腳本

cd /openstack

vim keystone-myuser-pass.sh
---
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=myuser
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
---

source keystone-myuser-pass.sh

請求認證令牌:
   openstack token issue 

# 能夠看到user_id和上面用命令獲取到的是同樣的,說明配置成功

# 至此,keystone安裝完畢

image_1d8lotqa01s594ka1tc13nl1bmg9l.png-101kB

相關文章
相關標籤/搜索