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