1. 程式人生 > >OpenStack Newton版本部署----認證服務(keystone)

OpenStack Newton版本部署----認證服務(keystone)

OpenStackNewton版本部署----認證服務(keystone)

       Openstack身份認證服務提供了一個整合管理身份認證、授權、服務目錄的point(Keystone元件基本就是圍繞著這個point來展開)。其他的Openstack服務會使用Identityservice的這個point來作為統一的API(這些API會被存放帶一個服務目錄中)。除此之外,Identityservice還能夠提供使用者的相關資訊,但這個資訊並不會被包含在Openstack中,這些使用者資訊會被預先整合到一個基礎架構中(例如LDAPserviceSQLDatabase這些能夠提供使用者集中管理服務的元件

)

Keystone認證服務中的概念

Token(令牌):用於限定User-Tenant對進行OpenStack API和資源訪問的字串表示。一個臨牌會持續一段時間有效,也可以隨時撤銷。

Credentials(憑證):用於確認使用者身份的資料,例如:Username/Password

Authentication(檢驗):是確定使用者身份的過程。

Service(服務)Openstack service,即Openstack中執行的元件服務。

Endpoint(端點):一個可以通過網路來訪問和定位某個Openstack service的地址,通常是一個URL。使用RESTful的設計思想,詳見

RESTful_URI資源

Keystone Client(Keystone CLI)Keystone的命令列工具,可以完成諸如建立使用者,角色,服務和端點等絕大多數的Leystone管理功能,是非常常用的CLI介面。

Prerequisites先決條件

1、建立keystone資料庫

1)進入MySQL

$ mysql -u root -p

2)建立資料庫keystone

mysql> CREATE DATABASE keystone;

3)建立keystone資料庫使用者並授予適當的訪問許可權

mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
  IDENTIFIED BY 'KEYSTONE_DBPASS';

(4) 退出

mysql> \q

2、安裝和配置元件

(1)安裝

# yum install openstack-keystone httpd mod_wsgi -y

(2)修改配置檔案

vim /etc/keystone/keystone.conf

[database]
...
connection=mysql+pymysql://keystone:[email protected]/keystone

keystone資料庫密碼替代KEYSTONE_DBPASS

[token]
...
provider=fernet

(3)填充資料庫

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

可以通過以下命令檢視資料庫是否填充成功

MariaDB[(none)]> usekeystone;

MariaDB[keystone]> showtables;

(4)初始Fernet密匙

# 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 ADMIN_PASS \
  --bootstrap-admin-url http://controller:35357/v3/ \
  --bootstrap-internal-url http://controller:35357/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

用合適密碼替代ADMIN_PASS

3、配置HTTP伺服器

(1) 指定伺服器主機名

vim /etc/httpd/conf/httpd.conf

ServerName controller

(2) 建立連結

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

(3) 啟動HTTP服務,並設定開機啟動

# systemctl enable httpd.service
# systemctl start httpd.service

(4) 配置管理員賬號的環境變數

$exportOS_USERNAME=admin
$exportOS_PASSWORD=ADMIN_PASS
$exportOS_PROJECT_NAME=admin
$exportOS_USER_DOMAIN_NAME=Default
$exportOS_PROJECT_DOMAIN_NAME=Default
$exportOS_AUTH_URL=http://controller:35357/v3
$exportOS_IDENTITY_API_VERSION=3

25)中密碼替代ADMIN_PASS

Openstack keystone認證服務安裝完成。

4、建立域、工程、使用者和角色

   Identityservice為每一個Openstackservice都提供了身份認證的服務,而身份認證服務使用domains, projects (tenants), users, androles的組合來實現。

(1) 建立service工程

$ openstack project create --domain default \
  --description "Service Project" service
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Service Project                  |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 24ac7f19cd944f4cba1d77469b2a73ed |
| is_domain   | False                            |
| name        | service                          |
| parent_id   | default                          |
+-------------+----------------------------------+

(2) 常規(非管理員)任務應使用非特權專案和使用者。

建立demo工程:

$ openstack project create --domain default \
  --description "Demo Project" demo
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Demo Project                     |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 231ad6e7ebba47d6a1e57e1cc07ae446 |
| is_domain   | False                            |
| name        | demo                             |
| parent_id   | default                          |
+-------------+----------------------------------+

建立domo使用者:

$ openstack user create --domain default \
  --password-prompt demo
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | aeda23aa78f44e859900e22c24817832 |
| name                | demo                             |
| password_expires_at | None                             |
+---------------------+----------------------------------+

建立user角色:

$ openstack role create user
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | None                             |
| id        | 997ce8d05fc143ac97d83fdfb5998552 |
| name      | user                             |
+-----------+----------------------------------+

新增user角色到demo工程和使用者:

$ openstack role add --project demo --user demo user

5、驗證

(1)禁用臨時身份驗證令牌機制

      vim/etc/keystone/keystone-paste.ini刪去[pipeline:public_api], [pipeline:admin_api],[pipeline:api_v3] 節。

(2)取消設定臨時的OS_AUTH_URLOS_PASSWORD環境變數

$unset OS_AUTH_URL OS_PASSWORD

(3)作為admin使用者,請求認證令牌

$ openstack --os-auth-url http://controller:35357/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name admin --os-username admin token issue
Password:
+------------+-----------------------------------------------------------------+
| Field      | Value                                                           |
+------------+-----------------------------------------------------------------+
| expires    | 2016-02-12T20:14:07.056119Z                                     | id          |gAAAAABWvi9bsh7vkiby5BpCCnc-JkbGhm9wH3fabS_cY7uabOubesi-Me6IGWWyQqNegDDZ5jw7grI26vvgy1J5nCVwZ_zFRqPiz_qhbq29mgbQLglbkq6FQvzBRQJcOzq3uwhzNxszJWmzGC7rJE_H0A_a3UFhqv8M4zMRYSbS2YF0MyFmp_U
| project_id | 343d245e850143a096806dfaefa9afdc                              
| user_id    | ac3377633149401296f6c0d92d79dc16                               
+------------+-----------------------------------------------------------------+

6、寫指令碼

這些指令碼可以包含有常用的openstackclient選項,但是每一個指令碼只支援唯一的選項值。簡而言之,使用這些指令碼能夠讓我們不需要為每一條openstack client指令都新增這麼多的認證選項。

(1)  vim~/admin-openrc,並新增如下內容:

exportOS_PROJECT_DOMAIN_NAME=Default
exportOS_USER_DOMAIN_NAME=Default
exportOS_PROJECT_NAME=admin
exportOS_USERNAME=admin
exportOS_PASSWORD=ADMIN_PASS
exportOS_AUTH_URL=http://controller:35357/v3
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2

(2) vim~/demo-openrc,並新增如下內容:

exportOS_PROJECT_DOMAIN_NAME=Default
exportOS_USER_DOMAIN_NAME=Default
exportOS_PROJECT_NAME=demo
exportOS_USERNAME=demo
exportOS_PASSWORD=DEMO_PASS
exportOS_AUTH_URL=http://controller:5000/v3
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2

(3)請求認證令牌

$ . admin-openrc
$ openstack token issue
+------------+-----------------------------------------------------------------+
| Field      | Value                                                           |
+------------+-----------------------------------------------------------------+
| expires    | 2016-02-12T20:44:35.659723Z                                     |
| id         | gAAAAABWvjYj-Zjfg8WXFaQnUd1DMYTBVrKw4h3fIagi5NoEmh21U72SrRv2trlJWFYhLi2_uPR31Igf6A8mH2Rw9kv_bxNo1jbLNPLGzW_u5FC7InFqx0yYtTwa1eeq2b0f6-18KZyQhs7F3teAta143kJEWuNEYET-y7u29y0be1_64KYkM7E       |
| project_id | 343d245e850143a096806dfaefa9afdc                                |
| user_id    | ac3377633149401296f6c0d92d79dc16                                |
+------------+-----------------------------------------------------------------+

相關推薦

OpenStack Newton版本部署----認證服務(keystone)

OpenStackNewton版本部署----認證服務(keystone)        Openstack身份認證服務提供了一個整合管理身份認證、授權、服務目錄的point(Keystone元件基

OpenStack Newton版本部署 ---- 環境配置

OpenStack Newton版本部署 ----環境配置 1、主機網路 (1)關閉防火牆 關閉系統防火牆: #systemctldisablememcached.service #systemctl stop memcached.service (2)主機名及對應ip 主機名   

OpenStack部署應用第一篇:認證服務keystone安裝(轉)

注:OpenStack版本N版 1、網路時間協議(NTP) 注:一定要保證openstack所有節點的時間一致性,不然無法正常建立虛擬機器 1.1 控制節點 # yum install -y chrony ntpdate # 安裝軟體包 # vim /etc/chro

Openstack之路(二)認證服務Keystone

yum 依賴 配置環境變量 wap iad admin dom 校驗 server Keystone的概述 Keystone是Openstack的組件之一,用於為Openstack家族中的其它組件成員提供統一的認證服務,包括身份驗證,令牌的發放和校驗,服務列表,用戶權限的定

devstack安裝openstack newton版本

成功 mirrors format code 由於 基本上 temp gate roo 準備使用devstack安裝openstack N版,搞一套開發環境出來。一連整了4天,遇到各種問題,各種錯誤,一直到第4天下午4點多才算完成。 在這個過程中感覺到使用devstack

openstack Q版部署-----nova服務配置-計算節點(6)

strategy drive lis 可用性 baidu admin scheduler emca info 一、服務安裝 yum install openstack-nova-compute -y 編輯/etc/nova/nova.conf文件並設置如下內容 [DE

OpenStack Pike版本部署手冊

Openstack安裝部署文件(Pike)一、  環境準備本文的安裝部署都是在CentOS 7.4上完成,本文中的控制節點、儲存節點是雙網絡卡設定,網路節點和計算節點是三網絡卡設定。注意:yum源可以修

Centos7手動部署Openstack Mitaka版安裝配置--(三)安裝keystone認證服務

安裝keystone認證服務 1、建立keystone資料庫 #mysql -uroot -phncgo110 -e "CREATE DATABASE keystone;" 注意將hncgo110替換為自己的資料庫密碼 2、建立資料庫使用者及賦予許可

Openstack-M版部署keystone認證服務

5.2用admin使用者,請求身份驗證令牌(輸入admin使用者的密碼)[[email protected] ~]#  openstack --os-auth-url http://controller:35357/v3 \--os-project-domain-name default --os-

雲計算OpenStackkeystone身份認證服務(二)--技術流ken

pre 查看 keys sym com col 分享圖片 lis 查詢 Keystone介紹 keystone 是OpenStack的組件之一,用於為OpenStack家族中的其它組件成員提供統一的認證服務,包括身份驗證、令牌的發放和校驗、服務列表

saltstack 自動化部署openstack queens 版本

saltstack openstack前面寫了使用手動部署openstack的queens版本,但是太過繁瑣,還容易出錯,現在有時間寫了一個使用saltstack部署openstack queens版本。環境:saltmaster 192.168.147.166 saltstack version 2017

安裝OpenStack QUEENS版本二:keystone

ofo mod_wsgi emc lis scrip server har base issue 安裝Keystone,在控制節點上yum install openstack-keystone httpd mod_wsgi -y create a databasemysql

openstack Q版本自動化部署課程直播通知

images watermark alt mark 畫面 process ESS 聲音 技術 自昨天openstackQ版課程上線之後,有很多小夥伴在解答區域留言問能否搞一次openstackQ課程直播,解答大家在部署openstack中常見的問題,思前想後決定在九月份給大

OpenStack搭建企業私有雲 一:認證服務(持續更新...)

mod_wsgi 描述 put 裸機 編輯 pymysql example backup start 雲計算介紹 雲計算是一種模型,能夠提供無論在何時何地都可以便捷獲取所需資源的模型,這些資源可以是網絡資源、存儲資源、服務器資源,甚至是服務器或者應用軟件資源等。 雲計算模

OpenStack雙節點部署—M aodh(報警服務

aodh安裝 一、資料庫配置 二、建立服務憑證和API端點 三、安裝並配置aodh服務 四、驗證ceilometer服務 一、資料庫配置 # mysql -uroot -p123456 MariaDB [(

OpenStack雙節點部署—M ceilometer(監測服務

ceilometeran安裝 一、安裝、配置並使用mongodb 資料庫 二、建立服務憑證和API端點 三、安裝並配置監測服務 1.安裝並配置ceilometer 2.啟用影象服務表 3.啟用計算服務表

OpenStack雙節點部署—M Manila(共享檔案系統服務

Manila安裝 一、資料庫配置 二、建立服務憑證和API端點 三、安裝並配置Heat 四、啟動服務並設定開機自啟 一、資料庫配置 Controller節點 # mysql -uroot

OpenStack雙節點部署—M Heat(編配服務

Heat安裝 一、資料庫配置 二、建立服務憑證和API端點 三、安裝並配置Heat 四、驗證操作 一、資料庫配置 Controller節點 # mysql -uroot -p123456

OpenStack雙節點部署—M Swift(物件儲存服務

Swift安裝 一、 環境配置 二、控制節點安裝並配置Swift 三、儲存節點安裝並配置Swift 四、建立並分發Ring 五、完成安裝 六、驗證swift操作 一、 環境配置 Co

OpenStack雙節點部署—M Cinder(塊儲存服務

Cinder安裝 一、 資料庫配置 二、 建立服務憑證和API端點 三、 安裝並配置Cinder元件 四、安裝配置儲存節點 五、驗證Cinder服務 一、 資料庫配置 Controller節