這篇文章給大家分享的是有關(guān)openstack-mitaka中Identity服務(wù)如何安裝的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)自2013年起,先為天河等服務(wù)建站,天河等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為天河企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
Identity服務(wù)安裝
OpenStack的Identity服務(wù)為管理認(rèn)證、授權(quán)和service catalog服務(wù)提供了單點(diǎn)集成。其它OpenStack服務(wù)使用Identity服務(wù)作為一個(gè)通用的統(tǒng)一API。此外,提供有關(guān)用戶信息,但該服務(wù)不包括在OpenStack(如LDAP服務(wù))可以被集成進(jìn)一個(gè)預(yù)先存在的基礎(chǔ)設(shè)施。
為了從Identity服務(wù)獲得效益,其它OpenStack服務(wù)需要與它進(jìn)行協(xié)調(diào)工作。當(dāng)一個(gè)OpenStack服務(wù)收到一個(gè)用戶的請(qǐng)求時(shí),它會(huì)用Identity服務(wù)來(lái)檢查此用戶是否獲得request授權(quán)。
Identity服務(wù)包括以下組件:
Server
一個(gè)集中的服務(wù)器使用RESTful接口提供認(rèn)證和授權(quán)服務(wù)。
Drivers
可以被集成到中央服務(wù)器的驅(qū)動(dòng)程序或者服務(wù)后端。他們?cè)贠penStack拓展庫(kù)被用于訪問(wèn)身份信息,并且已經(jīng)存在于部署了OpenStack的基礎(chǔ)設(shè)施(例如,SQL數(shù)據(jù)庫(kù)或LDAP服務(wù))。
Modules
是個(gè)中間件模塊,它運(yùn)行在正使用身份服務(wù)OpenStack組件的地址空間。這些模塊攔截服務(wù)請(qǐng)求,提取用戶憑據(jù),并將它們發(fā)送到中央服務(wù)器進(jìn)行授權(quán)。中間件模塊和OpenStack組件之間的集成使用Python的Web服務(wù)器網(wǎng)關(guān)接口。
當(dāng)安裝OpenStack的Identity服務(wù)時(shí),你必須將每個(gè)服務(wù)注冊(cè)到你的OpenStack安裝里。Identity服務(wù)可以跟蹤OpenStack服務(wù)安裝,并且定位他們的網(wǎng)絡(luò)。
本節(jié)將介紹如何在controller節(jié)點(diǎn)安裝和配置OpenStack的Identity服務(wù)(代號(hào)keystone)。出于性能考濾,這種配置部署Fernet令牌和Apache HTTP服務(wù)器來(lái)處理請(qǐng)求。
在配置OpenStack的Identity服務(wù)之前,必須創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)和管理令牌。
1.創(chuàng)建數(shù)據(jù)庫(kù),需要完成下面步驟
l用root賬號(hào)登陸數(shù)據(jù)庫(kù)
MySQL -u root -p
l創(chuàng)建keystone數(shù)據(jù)庫(kù)
CREATE DATABASE keystone;
l給keystone數(shù)據(jù)庫(kù)授權(quán)
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
將KEYSTONE_DBPASS替換成合適的密碼
l退出數(shù)據(jù)庫(kù)
2.生成隨機(jī)數(shù)來(lái)作用管理令牌,初始化配置時(shí)會(huì)用到
openssl rand -hex 10
1.運(yùn)行下列命令來(lái)安裝軟件包
yum install openstack-keystone httpd mod_wsgi
2.編輯/etc/keystone/keystone.conf文件并完成下列步驟
l在[DEFAULT], 定義管理令牌
[DEFAULT]
...
admin_token = ADMIN_TOKEN
將ADMIN_TOKEN替換成之前生成的隨機(jī)數(shù)
l在[database],配置數(shù)據(jù)庫(kù)連接
[database]
...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
將KEYSTONE_DBPASS替換成正確的數(shù)據(jù)庫(kù)密碼(數(shù)據(jù)庫(kù)密碼不能有特殊符號(hào))
l在[token],配置Fernet令牌提供商
[token]
...
provider = fernet
3.填充Identity服務(wù)數(shù)據(jù)庫(kù)
su -s /bin/sh -c "keystone-manage db_sync" keystone
備注:忽略此處輸出任何棄用信息。
4.初始化Fernet keys
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
1.編輯/etc/httpd/conf/httpd.conf,配置ServerName選項(xiàng)指向controller節(jié)點(diǎn)
ServerName controller
2.創(chuàng)建/etc/httpd/conf.d/wsgi-keystone.conf文件并添加以下內(nèi)容
Listen 5000
Listen 35357
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
Require all granted
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
Require all granted
啟動(dòng)Apached HTTP服務(wù)并配置開機(jī)自啟動(dòng)
systemctl enable httpd.service
systemctl start httpd.service
Identity服務(wù)提供服務(wù)目錄和它們的位置。每個(gè)添加到OpenStack環(huán)境的服務(wù)都要求要有一個(gè)service entity和幾個(gè)API endpoints在目錄中。
默認(rèn)情況下,Identity數(shù)據(jù)庫(kù)不包含任何信息來(lái)支持傳統(tǒng)的身份驗(yàn)證和目錄服務(wù)。必須用之前創(chuàng)建的臨時(shí)身份令牌來(lái)初始化服務(wù)實(shí)體和API端點(diǎn)。
你必須通過(guò)帶--os-token參數(shù)的命令或者設(shè)置OS_TOKEN環(huán)境變量來(lái)給OpenStack傳遞身份認(rèn)證令牌。同樣,你必須通過(guò)帶有—os-url參數(shù)的命令或者設(shè)置OS_URL環(huán)境變量來(lái)給OpenStack傳遞Identity服務(wù)URL。下面步驟用設(shè)置環(huán)境變量的方式。
警告:出于安全,不要長(zhǎng)時(shí)間用臨時(shí)身份驗(yàn)證令牌初始化Identity服務(wù)
1.配置認(rèn)證令牌
export OS_TOKEN=ADMIN_TOKEN
將ADMIN_TOKEN替換成之前生成的隨機(jī)數(shù)
2.配置endpoint URL
export OS_URL=http://controller:35357/v3
3.配置Identity API版本
export OS_IDENTITY_API_VERSION=3
1.在OpenStack環(huán)境中Identity服務(wù)管理一個(gè)目錄服務(wù)。服務(wù)使用目錄來(lái)確定環(huán)境中其它可可用的服務(wù)。
執(zhí)行下列命令來(lái)創(chuàng)建service entity
openstack service create --name keystone --description "OpenStack Identity" identity
2.在OpenStack環(huán)境,Identity服務(wù)管理相關(guān)服務(wù)API endpoints的目錄。服務(wù)使用這個(gè)目錄 來(lái)確定如何與環(huán)境中的其它服務(wù)通信。
OpenStack為每個(gè)服務(wù)提供三個(gè)API endpoint:admin, internal,和public。默認(rèn)情況admin API endpoint 可以修改用戶和租戶,然而public和internal APIs 并允許這些操作。在生產(chǎn)環(huán)境中,出于安全原因,這些變量可能駐留在不同的網(wǎng)絡(luò)上,服務(wù)于不同的用戶類型。例如,Public API網(wǎng)絡(luò)在互聯(lián)網(wǎng)上可能被訪問(wèn)得到,所以客戶可以管理他們的云。Admin API網(wǎng)絡(luò)可能受限于在管理云基礎(chǔ)設(shè)施的組織內(nèi)進(jìn)行操作。Internal API網(wǎng)絡(luò)可能受限在包含OpenStack服務(wù)主機(jī)上。另外,OpenStack支持可擴(kuò)展性的多區(qū)域。為簡(jiǎn)單起見,本教程為所有的endpoint使用管理網(wǎng)絡(luò)并設(shè)置默認(rèn)區(qū)域?yàn)镽egionOne。
創(chuàng)建Identity服務(wù)的API endpoints
openstack endpoint create --region RegionOne identity public http://controller:5000/v3
openstack endpoint create --region RegionOne identity internal http://controller:5000/v3
openstack endpoint create --region RegionOne identity admin http://controller:35357/v3
Identity服務(wù)為每個(gè)OpenStack服務(wù)提供認(rèn)證服務(wù)。認(rèn)證服務(wù)將域,項(xiàng)目(租戶)、用戶和角色結(jié)合使用。
1.創(chuàng)建默認(rèn)的域
openstack domain create --description "Default Domain" default
2.在你的環(huán)境中為管理操作創(chuàng)建一個(gè)管理項(xiàng)目、用戶和角色
l創(chuàng)建admin項(xiàng)目
openstack project create --domain default --description "Admin Project" admin
l創(chuàng)建admin用戶
openstack user create --domain default --password-prompt admin
l創(chuàng)建admin角色
openstack role create admin
l將管理員角色添加到管理項(xiàng)目和用戶中
openstack role add --project admin --user admin admin
3.本指南使用一個(gè)服務(wù)項(xiàng)目,該項(xiàng)目?jī)H包含一個(gè)用戶給每個(gè)你添加到環(huán)境中的服務(wù)使用。
創(chuàng)建服務(wù)項(xiàng)目
openstack project create --domain default --description "Service Project" service
4.常規(guī)(非管理員)的任務(wù)應(yīng)該使用一個(gè)普通的項(xiàng)目和用戶。作為一個(gè)例子,本指南將創(chuàng)建一個(gè)demo項(xiàng)目和用戶。
l創(chuàng)建demo項(xiàng)目
openstack project create --domain default --description "Demo Project" demo
備注:當(dāng)給這個(gè)項(xiàng)目創(chuàng)建額外的用戶時(shí)不要重復(fù)這個(gè)步驟。
l創(chuàng)建demo用戶
openstack user create --domain default --password-prompt demo
l創(chuàng)建用戶角色
openstack role create user
l將用戶角色添加到demo項(xiàng)目和用戶中
openstack role add --project demo --user demo user
開始安裝其它服務(wù)之前驗(yàn)證Identity服務(wù)是否正常安裝。
以下操作在controller節(jié)點(diǎn)進(jìn)行
1.出于安全考濾,禁用臨時(shí)身份驗(yàn)證令牌機(jī)制:
編輯/etc/keystone/keystone-paste.ini文件,然后從[pipeline:public_api], [pipeline:admin_api], 和 [pipeline:api_v3]這三部分中移除admin_token_auth
2.撤消臨時(shí)的OS_TOKEN 和 OS_URL環(huán)境變量
unset OS_TOKEN OS_URL
3.以admin用戶,請(qǐng)求一個(gè)身份驗(yàn)證令牌
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
4.以demo用戶,請(qǐng)求一個(gè)身份認(rèn)證令牌
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 token issue
之前章節(jié)結(jié)合使用環(huán)境變量和命令行選項(xiàng)通過(guò)OpenStack客戶端與Identity服務(wù)交互。為提高操作效率,OpenStack支持簡(jiǎn)單的客戶端環(huán)境腳本既openrc文件。這些腳本通常包含所有客戶端的常見選項(xiàng),但也支持獨(dú)特的選項(xiàng)。更多信息,請(qǐng)查看OpenStack End User Guide.
為admin及demo項(xiàng)目和用戶創(chuàng)建客戶端環(huán)境腳本
1.編輯admin-openrc并添加下面內(nèi)容
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
將ADMIN_PASS替換成正確的密碼
2.編輯demo-openrc并添加下面內(nèi)容
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
將DEMO_PASS替換成正確的密碼
作為一個(gè)特定的項(xiàng)目和用戶來(lái)運(yùn)行客戶端,您可以在運(yùn)行它們之前簡(jiǎn)單地加載相關(guān)的客戶端環(huán)境腳本。例如:
1.加載admin-openrc文件
. admin-openrc
2.請(qǐng)求一個(gè)身份認(rèn)證令牌
openstack token issue
感謝各位的閱讀!關(guān)于“openstack-mitaka中Identity服務(wù)如何安裝”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!