1. 程式人生 > >openstack--JUNO10搭建手冊整理2: keystone && glance服務

openstack--JUNO10搭建手冊整理2: keystone && glance服務

在此,先說一下,本手冊將要安裝的服務有:

Identity Service (Keystone)認證服務

Image Service (Glance)映象服務

Compute (Nova)計算服務

Networking (Neutron)網路服務

Block Storage (Cinder)塊儲存

Dashboard (Horizon)儀表板   

至於其他服務,自己有興趣,可以去查資料安裝一下,OpenStack的所有的服務安裝過程都是以下過程:

建立使用者--加入租戶--建立服務--建立端點--建立初始化資料庫--配置連線方式--配置認證方式--連線--通訊

三,OpenStack認證服務keystone中的一些概念

User(使用者)   被認證的人或服務為使用者。
一個人、系統或服務在OpenStack中的數字表示。已經登入的使用者分配令牌環以訪問資源。使用者可以直接分配給特定的租戶,就像隸屬於每個組。

Credentials(憑證) 金鑰
用於確認使用者身份的資料。例如:使用者名稱和密碼,使用者名稱和API key,或由認證服務提供的身份驗證令牌 

Authentication(驗證) 確認使用者身份的過程。

Token(令牌) 一個用於訪問OpenStack API和資源的字母數字字串。一個臨牌可以隨時撤銷,並且持續一段時間有效Tenant(租戶) 一個組織或孤立資源的容器。租戶和可以組織或隔離認證物件。根據服務運營的要求,一個租戶可以對映到客戶、賬戶、組織或專案。

Tenant(租戶)租戶是特定許可權的集合。
一個組織或孤立資源的容器。租戶和可以組織或隔離認證物件。根據服務運營的要求,一個租戶可以對映到客戶、賬戶、組織或專案。

Service(服務) OpenStack服務,例如計算服務(nova),物件儲存服務(swift),或映象服務(glance)。它提供了一個或多個端點,供使用者訪問資源和執行操作。

Endpoint(端點) 一個用於訪問某個服務的可以通過網路進行訪問的地址,通常是一個URL地址。

Role(角色) 特定的許可權為角色

Keystone Client(keystone命令列工具) Keystone的命令列工具。通過該工具可以建立使用者,角色,服務和端點等。

四,在控制器節點安裝和配置梯形認證服務4.1配置先決條件4.1.1建立認證服務資料庫一個。登入的MySQL資料庫的MySQL -u根-ppqjpqj

b。建立keystone資料庫CREATE DATABASE keystone;

角建立梯形資料庫使用者,使其可以對梯形資料庫有完全控制權限 

注意:在所有資料庫授權時都要注意書寫格式,尤其不要少寫空格!!!!

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

退出資料庫

4.1.2。生成一個隨機值作為管理令牌在初始配置openssl rand -hex 10:  

#979e7a8fb2f1ff534974

4.2安裝和配置認證元件4.2.1安裝軟體包百勝-y安裝OpenStack的梯形中的python-keystoneclient4.2.2 VI /etc/keystone/keystone.conf檔案並作下列修改:

[default]    
admin_token=979e7a8fb2f1ff534974    +13 取消註釋並修改  

[database]    
connection=mysql://keystone:[email protected]/keystone  +633取修

[token]        
provider=keystone.token.providers.uuid.Provider  +1539取修
driver=keystone.token.persistence.backends.sql.Token   1542取消註釋     
verbose=True    +353取修

4.3常見通用證書的金鑰,並限制相關檔案的訪問許可權

keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
chown -R keystone:keystone /var/log/keystone
chown -R keystone:keystone /etc/keystone/ssl
chmod -R o-rwx /etc/keystone/ssl

4.4初始化keystone資料庫su -s / bin / sh -c“keystone-manage db_sync”keystone

#驗證
mysql -uroot -ppqjpqj
show databases;
use keystone;
show tables;
+-----------------------+
| Tables_in_keystone    |
+-----------------------+
| assignment            |
| credential            |
| domain                |
| endpoint              |
| group                 |
| id_mapping            |
| migrate_version       |
| policy                |
| project               |
| region                |
| revocation_event      |
| role                  |
| service               |
| token                 |
| trust                 |
| trust_role            |
| user                  |
| user_group_membership |
+-----------------------+
18 rows in set (0.03 sec)

退出#退出資料庫

4.5完成安裝4.5.1啟動身份服務並設定開機啟動

systemctl enable openstack-keystone
systemctl start openstack-keystone

4.5.2預設情況下,伺服器會無限儲存到期的令牌,在資源有限的情況下會嚴重影響伺服器效能。建議用計劃任務,每小時刪除過期的令牌

(crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1' >> /var/spool/cron/keystone

4.6建立租戶(租戶),(使用者)使用者和(角色)角色4.6.1先決備件:配置管理員令牌和配置端點匯出OS_SERVICE_TOKEN = 979e7a8fb2f1ff534974 匯出OS_SERVICE_ENDPOINT = http://controller.nice.com:35357/v2 0.0

4.6.2建立用於管理的租戶,使用者和角色a。建立管理員租戶keystone tenant-create --name admin --description“Admin Tenant”

+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |           Admin Tenant           |
|   enabled   |               True               |
|      id     | 8e69fd3b6d7547e0ab4043b004cdc9fa |
|     name    |              admin               |
+-------------+----------------------------------+

b。建立管理員使用者keystone user-create --name admin --pass ADMIN_PASS --email EMAIL_ADDRESS

+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |          EMAIL_ADDRESS           |
| enabled  |               True               |
|    id    | ab137a84280e44e9a1a972d786167793 |
|   name   |              admin               |
| username |              admin               |
+----------+----------------------------------+

c。建立管理角色keystone role-create --name admin

+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|    id    | 1aedcd0c77bf4698833c3b13d8003bb2 |
|   name   |              admin               |
+----------+----------------------------------+

d。新增(連結)admin租戶和使用者到admin 角色keystone user-role-add --tenant admin --user admin --role admin

e。建立用於儀表板訪問的“_member_” 角色keystone role-create --name _member_

+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|    id    | cf9f990dfb27478296af0e505c5a7373 |
|   name   |             _member_             |
+----------+----------------------------------+

f。新增管理員租戶和使用者到_member_ 角色keystone user-role-add --tenant admin --user admin --role _member_

4.6.3建立一個用於演示的demo租戶和使用者a。建立演示租戶keystone tenant-create --name demo --description“Demo Tenant”

+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |           Demo Tenant            |
|   enabled   |               True               |
|      id     | ebac9d5bb7364c62ab5d15255bca7e30 |
|     name    |               demo               |
+-------------+----------------------------------+

b。建立的demo使用者keystone user-create --name demo --pass DEMO_PASS --email EMAIL_ADDRESS

+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |          EMAIL_ADDRESS           |
| enabled  |               True               |
|    id    | 01364b7cc18c44a5ab57968cdec6e5b7 |
|   name   |               demo               |
| username |               demo               |
+----------+----------------------------------+

c。新增演示租戶和使用者到_member_ 角色keystone user-role-add --tenant demo --user demo --role _member_

4.6.4OpenStack服務也需要一個租戶,使用者和角色和其他服務進行互動。任何一個OpenStack服務都要和它關聯.keystone tenant-create --name service --description“Service Tenant “

+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |          Service Tenant          |
|   enabled   |               True               |
|      id     | 4f33f9d0db5841a0b54607eec1eb1dac |
|     name    |             service              |
+-------------+----------------------------------+

4.6.5建立服務實體和API端點4.6.5.1為身份服務建立一個服務實體keystone service-create --name keystone --type identity --description“OpenStack Identity”

+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |        OpenStack Identity        |
|   enabled   |               True               |
|      id     | 105e8ab8d8ce4f93a637710bc03c9b57 |
|     name    |             keystone             |
|     type    |             identity             |
+-------------+----------------------------------+

4.6.5.2OpenStack為每個服務提供了三個API端點:admin(管理),internal(內部),public(公共)為identity服務建立API端點#一行一行復制貼上!!!#keystone endpoint-create \ - -service-id $(keystone service-list | awk'/ identity / {print $ 2}')\ --publicurl http://controller.nice.com:5000/v2.0 \ --internalurl http:// controller .nice.com:5000 / v2.0 \ --adminurl http://controller.nice.com:35357/v2.0 \ - regionionOne

keystone endpoint-create --service-id $(keystone service-list | awk '/ identity / {print $2}') --publicurl http://controller.nice.com:5000/v2.0 --internalurl http://controller.nice.com:5000/v2.0 --adminurl http://controller.nice.com:35357/v2.0 --region regionOne
+-------------+---------------------------------------+
|   Property  |                 Value                 |
+-------------+---------------------------------------+
|   adminurl  | http://controller.nice.com:35357/v2.0 |
|      id     |    d0160da0fe2249e69c9feae423ad80b0   |
| internalurl |  http://controller.nice.com:5000/v2.0 |
|  publicurl  |  http://controller.nice.com:5000/v2.0 |
|    region   |               regionOne               |
|  service_id |    105e8ab8d8ce4f93a637710bc03c9b57   |
+-------------+---------------------------------------+

4.6.6確認操作4.6.6.1刪除OS_SERVICE_TOKEN和OS_SERVICE_ENDPOINT臨時變數未設定OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT4.6.6.2使用admin租戶和使用者請求認證令牌

keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url  http://controller.nice.com:35357/v2.0 token-get

+-----------+----------------------------------+
|  Property |              Value               |
+-----------+----------------------------------+
|  expires  |       2018-09-26T18:17:30Z       |
|     id    | 6da89c66d87f4db19c74d701423d2475 |
| tenant_id | 8e69fd3b6d7547e0ab4043b004cdc9fa |
|  user_id  | ab137a84280e44e9a1a972d786167793 |
+-----------+----------------------------------+

4.6.6.3。以管理員租戶和使用者的身份檢視租戶列表

keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 tenant-list
+----------------------------------+---------+---------+
|                id                |   name  | enabled |
+----------------------------------+---------+---------+
| 8e69fd3b6d7547e0ab4043b004cdc9fa |  admin  |   True  |
| ebac9d5bb7364c62ab5d15255bca7e30 |   demo  |   True  |
| 4f33f9d0db5841a0b54607eec1eb1dac | service |   True  |
+----------------------------------+---------+---------+

4.6.6.4。以管理員租戶和使用者的身份檢視使用者列表

keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 user-list
+----------------------------------+-------+---------+---------------+
|                id                |  name | enabled |     email     |
+----------------------------------+-------+---------+---------------+
| ab137a84280e44e9a1a972d786167793 | admin |   True  | EMAIL_ADDRESS |
| 01364b7cc18c44a5ab57968cdec6e5b7 |  demo |   True  | EMAIL_ADDRESS |
+----------------------------------+-------+---------+---------------+

4.6.6.5以管理員租戶和使用者的身份檢視角色列表

keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 role-list

+----------------------------------+----------+
|                id                |   name   |
+----------------------------------+----------+
| cf9f990dfb27478296af0e505c5a7373 | _member_ |
| 1aedcd0c77bf4698833c3b13d8003bb2 |  admin   |
+----------------------------------+----------+

4.6.6.6。以演示租戶和使用者的身份請求認證令牌

keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS --os-auth-url http://controller.nice .com:35357 / v2.0 token-get

+ ----------- + ---------------------------------- + 
| 財產| 價值| 
+ ----------- + ---------------------------------- + 
| 到期| 2018-09-26T18:23:45Z | 
| id | 4b71d06d37fc46f99dd84599a4102465 | 
| tenant_id | ebac9d5bb7364c62ab5d15255bca7e30 | 
| user_id | 01364b7cc18c44a5ab57968cdec6e5b7 | 
+ ----------- + ---------------------------------- +

4.6.6.7。以演示租戶和使用者的身份檢視使用者列表   keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS --os-auth-url http://controller.nice。 com:35357 / v2.0使用者列表

#您無權執行請求的操作:admin_required(HTTP 403)

4.7建立OpenStack客戶端環境指令碼為了方便使用上面的環境變數和命令選項,我們為admin和demo租戶和使用者建立環境指令碼.4.7.1.vi / root / admin-open export OS_TENANT_NAME = admin export OS_USERNAME = admin export OS_PASSWORD = ADMIN_PASS export OS_AUTH_URL = http://controller.nice.com:35357 / v2.0

4.7.2.vi / root / demo-open export OS_TENANT_NAME = demo export OS_USERNAME = demo export OS_PASSWORD = DEMO_PASS export OS_AUTH_URL = http://controller.nice.com:5000 / v2.0

chmod a + x / root / admin-open chmod a + x / root / demo-open