OpenStack-Ocata版+CentOS7.6 雲平台環境搭建 — 3.安裝配置OpenStack認證服務(keystone)


節點配置信息說明:

控制節點:controller: 
IP:192.168.164.128 
hostname&hosts:likeadmin

計算加點:Nova: 

IP:192.168.164.129 
hostname&hosts:likenode

塊存儲節點:cinder: 

IP:192.168.164.136 
hostname&hosts:likeblock

1.  認證服務
OpenStack Identity服務提供單點集成,用於管理身份驗證,授權和服務目錄。
身份服務通常是用戶與之交互的第一個服務。經過身份驗證后,最終用戶可以使用其身份訪問其他OpenStack服務。
同樣,其他OpenStack服務利用身份服務來確保用戶是他們所聲稱的人,並發現部署中的其他服務。 
Identity服務還可以與某些外部用戶管理系統(例如LDAP)集成。

用戶和服務可以使用由Identity服務管理的服務目錄來查找其他服務。顧名思義,服務目錄是OpenStack部署中可用服務的集合。
每個服務可以有一個或多個端點,每個端點可以是以下三種類型之一:admin,internal或public。
在生產環境中,出於安全原因,不同的端點類型可能駐留在暴露給不同類型用戶的不同網絡上。例如,公共API網絡可能從Internet上可見,因此客戶可以管理他們的雲。
管理API網絡可能僅限於管理雲基礎架構的組織內的運營商。內部API網絡可能僅限於包含OpenStack服務的主機。此外,OpenStack支持多個區域以實現可伸縮性。
為簡單起見,本指南將管理網絡用於所有端點類型和默認的RegionOne區域。在身份服務中創建的區域,服務和端點一起構成部署的服務目錄。
部署中的每個OpenStack服務都需要一個服務條目,其中相應的端點存儲在Identity服務中。這可以在安裝和配置Identity服務之后完成。

服務器
一個中心化的服務器使用RESTful 接口來提供認證和授權服務。
Drivers
驅動或服務后端被整合進集中式服務器中。它們被用來訪問OpenStack外部倉庫的身份信息, 並且它們可能已經存在於OpenStack被部署在的基礎設施(例如,SQL數據庫或LDAP服務器)中。
Modules
中間件模塊運行於使用身份認證服務的OpenStack組件的地址空間中。這些模塊攔截服務請求,取出用戶憑據,並將它們送入中央是服務器尋求授權。
中間件模塊和OpenStack組件間的整合使用Python Web服務器網關接口。

1.安裝並配置
本節介紹如何在控制器節點上安裝和配置代號為keystone的OpenStack Identity服務。 出於可伸縮性的目的,此配置部署了Fernet令牌和Apache HTTP服務器來處理請求。
在安裝和配置Identity服務之前,必須創建數據庫。

1)用數據庫連接客戶端以 root 用戶連接到數據庫服務器:
$ mysql -u root -p

2)創建 keystone 數據庫:
MariaDB [(none)]> CREATE DATABASE keystone;

3)對``keystone``數據庫授予恰當的權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
-> IDENTIFIED BY 'djl18001';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
-> IDENTIFIED BY 'djl18001';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> 
用合適的密碼替換 KEYSTONE_DBPASS 。此次試驗環境,我們選用djl18001來作為試驗密碼。
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| keystone |
| mysql |
| performance_schema |
+--------------------+

2.安全並配置組件
1)運行以下命令來安裝包。
# yum install openstack-keystone httpd mod_wsgi

2)編輯文件 /etc/keystone/keystone.conf 並完成如下動作:
在 [database] 部分,配置數據庫訪問:
[database]
# ...
connection = mysql+pymysql://keystone:djl18001@likeadmin/keystone
將``KEYSTONE_DBPASS``替換為你為數據庫選擇的密碼。
注解:注釋或刪除``[database]``部分除``connection`以外的所有內容

在``[token]``部分,配置Fernet UUID令牌的提供者。
[token]
# ...
provider = fernet

3)初始化身份認證服務的數據庫:
# su -s /bin/sh -c "keystone-manage db_sync" keystone

4)初始化Fernet key:
# 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 djl18001 \
--bootstrap-admin-url http://likeadmin:35357/v3/ \
--bootstrap-internal-url http://likeadmin:5000/v3/ \
--bootstrap-public-url http://likeadmin:5000/v3/ \
--bootstrap-region-id RegionOne

6)配置 Apache HTTP 服務器¶
編輯``/etc/httpd/conf/httpd.conf`` 文件,配置``ServerName`` 選項為控制節點:
ServerName controller

創建一個鏈接到``/usr/share/keystone/wsgi-keystone.conf``文件
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

7)完成安裝
啟動 Apache HTTP 服務並配置其隨系統啟動:
# systemctl enable httpd.service
# systemctl start httpd.service

8)配置admin賬戶
$ export OS_USERNAME=admin
$ export OS_PASSWORD=djl18001
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://likeadmin:35357/v3
$ export OS_IDENTITY_API_VERSION=3


2.創建域、項目、用戶和角色
Identity服務為每個OpenStack服務提供身份驗證服務。 身份驗證服務使用域,項目,用戶和角色的組合。
1)本指南使用一個你添加到你的環境中每個服務包含獨有用戶的service 項目。創建``service``項目:
[root@likeadmin ~]# openstack project create --domain default \
> --description "Service Project" service
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Service Project |
| domain_id | default |
| enabled | True |
| id | 615b23c226e34df1a295d4d72eb3f9a3 |
| is_domain | False |
| name | service |
| parent_id | default |
+-------------+----------------------------------+
[root@likeadmin ~]#

2)常規(非管理)任務應該使用無特權的項目和用戶。作為例子,本指南創建 demo 項目和用戶。
1))創建``demo`` 項目:
[root@likeadmin ~]# openstack project create --domain default \
> --description "Demo Project" demo
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Demo Project |
| domain_id | default |
| enabled | True |
| id | efcaab21a85549b3acf41e10673e030f |
| is_domain | False |
| name | demo |
| parent_id | default |
+-------------+----------------------------------+
[root@likeadmin ~]#

2))創建``demo`` 用戶:
[root@likeadmin ~]# openstack user create --domain default \
> --password-prompt demo
User Password: djl18001
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 685be60f342f4d9086ae494ab94c4287 |
| name | demo |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@likeadmin ~]

3))創建 user 角色:
[root@likeadmin ~]# openstack role create user
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | None |
| id | 147497264e8044d7b25224e9e07467ca |
| name | user |
+-----------+----------------------------------+
[root@likeadmin ~]#

4))將用戶角色添加到演示項目的演示用戶:
[root@likeadmin ~]# openstack role add --project demo --user demo user

3.驗證操作
在安裝其他服務之前確認身份認證服務的操作。
在控制節點上執行這些命令。
1)因為安全性的原因,關閉臨時認證令牌機制:
編輯 /etc/keystone/keystone-paste.ini 文件,從``[pipeline:public_api]``,[pipeline:admin_api]``和``[pipeline:api_v3]``部分刪除``admin_token_auth 。

2)撤銷臨時環境變量``OS_AUTH_URL``和``OS_PASSWORD``
$ unset OS_AUTH_URL OS_PASSWORD

3)作為 admin 用戶,請求認證令牌:
[root@likeadmin ~]# openstack --os-auth-url http://likeadmin:35357/v3 \
> --os-project-domain-name default --os-user-domain-name default \
> --os-project-name admin --os-username admin token issue
Password: djl18001
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2019-03-19T04:11:48+0000 |
| id | gAAAAABckF30e2NrzmZwVdm7vtT_qWY-uittPzL0Gb6liYnh2aDsAPHLuYcThpcBSqddZ5vNtY6tY_J2LqzfM1zCZOSs88pmirLEkJw_glILv5 |
| | -DbMa9iPZGcSgCaxI_VsRnJ4OLcZVW4u6QOuLbHgKmRVHzrL3ZSgs52tg-TVeTXDO8L37qYjo |
| project_id | 3e43d2f6475e4fd2ab1daa02d2f0c254 |
| user_id | 6b43bf9fd95144b7b6df3dcefcfaa084 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
[root@likeadmin ~]#

4)作為``demo`` 用戶,請求認證令牌:
[root@likeadmin ~]# openstack --os-auth-url http://likeadmin:5000/v3 \
> --os-project-domain-name default --os-user-domain-name default \
> --os-project-name demo --os-username demo token issue
Password: djl18001
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2019-03-19T04:12:34+0000 |
| id | gAAAAABckF4i6st-dEO_IdFvQxrIF_Vod8RfHTJFvW71vYcF7BuYuoRrs7tVwHezUNhu_ETWDjfzGDvVw4JHNaN4vS8CXMDjuakofPQrgDaKKajOsMEhTd9MmDGWSMcLPfrO6mzRGPJn |
| | maZ3jVdi9rgOajea6oRUwb5VzEocLBGhL6AVKcIzpT0 |
| project_id | efcaab21a85549b3acf41e10673e030f |
| user_id | 685be60f342f4d9086ae494ab94c4287 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
[root@likeadmin ~]#

4。創建 OpenStack 客戶端環境腳本
上一節使用環境變量和命令選項的組合,通過openstack客戶端與Identity服務進行交互。
為了提高客戶端操作的效率,OpenStack支持簡單的客戶端環境腳本,也稱為OpenRC文件。
這些腳本通常包含所有客戶端的公共選項,但也支持唯一選項。 有關更多信息,請參閱“OpenStack最終用戶指南”。
1)創建腳本
創建 admin 和 ``demo``項目和用戶創建客戶端環境變量腳本。本指南的接下來的部分會引用這些腳本,為客戶端操作加載合適的的憑證。
客戶端環境腳本的路徑不受限制。 為方便起見,您可以將腳本放在任何位置,但請確保它們是可訪問的。

2)創建和編輯admin-openrc文件並添加以下內容:
注解:OpenStack客戶端還支持使用clouds.yaml文件。
[root@likeadmin ~]# vim /root/.admin-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=djl18001
export OS_AUTH_URL=http://likeadmin:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

3)創建並編輯demo-openrc文件並添加以下內容
[root@likeadmin ~]# vim /root/.demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=djl18001
export OS_AUTH_URL=http://likeadmin:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

4)使用腳本
使用特定租戶和用戶運行客戶端,你可以在運行之前簡單地加載相關客戶端腳本。例如:
加載``admin-openrc``文件來身份認證服務的環境變量位置和``admin``項目和用戶證書:
[root@likeadmin ~]# source /root/.admin-openrc

請求認證令牌:
[root@likeadmin ~]# openstack token issue
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2019-03-19T04:30:34+0000 |
| id | gAAAAABckGJam76OJbygHbqHp8C7GIuloj_HoZzj8RGk-jpD_n-ll5be7QZXDiNLuuwpYlFls0-iepDZvj_6EwgPauzT8Ne-v_WM- |
| | dNn7JCoczavPjIeewtijFVw1ayA9v0t2A6E3DHKDKsE0UpgaSZjuHwoVbQ6rTzaDNWUSInE3rW2syW-fo4 |
| project_id | 3e43d2f6475e4fd2ab1daa02d2f0c254 |
| user_id | 6b43bf9fd95144b7b6df3dcefcfaa084 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
[root@likeadmin ~]#

 

注:至此OpenStack的認證服務keystone已安裝配置完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM