雲計算OpenStack學習筆記四:認證組件(KeyStone)部署

1.KeyStone功能介紹

KeyStone主要有兩個功能:用戶管理和服務目錄mysql

用戶管理主要包括:認證和受權sql

認證方式有四種:即token令牌、帳號和密碼、服務目錄、策略數據庫

認證核心術語bootstrap

用戶相關:vim

User:能使用OpenStack服務的一個用戶api

Project:以前交Tenant(租戶),是組件服務的一種資源隔離方式bash

Role:角色,是User訪問指定Project資源的一種權限dom

Token:令牌,一個綜合的加密認證信息ide

使用方式:給一個User賦予在指定Project中一個資源訪問的Role角色。 測試

服務目錄相關:

Service:OpenStack各組件提供的服務,用於用戶訪問

Endpoint:用戶訪問Service的一個url連接入口

KeyStone配置信息

配置文件:/etc/keystone/keystone.conf

日誌文件:/var/log/keystone/keystone.log

2.KeyStone部署

在OpenStack中,任何組件的基本上都按照數據庫配置、軟件安裝、軟件配置、數據同步、http配置、權限設置這六個方面來操做。

  • 數據庫配置

鏈接並建立數據庫

mysql -u root -p root
CREATE DATABASE keystone;
複製代碼

配置權限

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
-- 將keystone用戶密碼設置爲keystone

複製代碼
  • 軟件安裝

yum install -y openstack-keystone httpd mod_wsgi

  • 編輯配置文件

vim /etc/keystone/keystone.conf

[DEFAULT]
#鏈接到消息隊列
405 transport_url = rabbit://openstack:openstack@192.168.188.100:5672
[database]
#數據庫配置鏈接控制節點的認證地址
661 connenction = mysql+pymysql://keystone:keystone@192.168.188.100/keystone
[token]
#配置token令牌的提供者,取消註釋便可
2758 provider = fernet
複製代碼

檢查修改信息

[root@controller keystone]# grep -ni '^[a-Z]' /etc/keystone/keystone.conf

  • 初始化信息

同步數據庫信息

su -s /bin/sh -c "keystone-manage db_sync" keystone
複製代碼

初始化keystone的認證信息

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
複製代碼

生成openstack管理admin帳戶的api信息

Queen版本的admin用戶和普通用戶都使用5000端口鏈接,而以前版本admin用戶使用35357端口。這裏必定要注意,不然會直接致使後面的組件沒法部署。

# 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
複製代碼
  • 配置http服務

編輯配置文件

# vim /etc/httpd/conf/httpd.conf
ServerName 192.168.188.100:80
複製代碼

建立鏈接文件

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

啓動http服務,並設置開機啓動

systemctl enable httpd.service
systemctl start httpd.service
複製代碼
  • 權限配置

配置用戶信息

$ 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
複製代碼

1.建立項目

命令格式:openstack project create --domain default --description "描述" <項目名>

建立service項目

openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
複製代碼

檢查效果

openstack project list

2.建立demo用戶,即普通用戶

命令格式:openstack user create --domain default --password <密碼> <用戶名>

openstack user create --domain default --password demo demo
複製代碼

3.建立role角色

命令格式:openstack role create <role名>

openstack role create user
複製代碼

4.給demo用戶賦予在指定Project(即"Demo Project")中一個資源訪問的Role角色(即user)

命令格式:openstack role add --project <項目名> --user <用戶名> <角色組>

openstack role add --project demo --user demo user
複製代碼

3.認證效果

  • 效果測試

取消環境變量

unset OS_AUTH_URL OS_PASSWORD

用戶驗證

命令格式:

openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name <項目> --os-username <用戶> --os-password <密碼> token issue
複製代碼

使用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 --os-password admin token issue
複製代碼

使用demo用戶驗證

openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo --os-password demo token issue
複製代碼
  • 建立環境變量腳原本自動設置用戶環境變量

建立admin用戶的變量腳本

#vim admin-openstack.sh
export OS_PROJECT_DOMIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
複製代碼
openstack token issue
複製代碼

建立demo用戶的變量腳本

相關文章
相關標籤/搜索