日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OpenStack之keystone(身份认证服务)

發(fā)布時(shí)間:2023/12/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenStack之keystone(身份认证服务) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

keystone概述

  • 概念
    Keystone (OpenStack ldentity Service)是OpenStack中的一個(gè)獨(dú)立的提供安全認(rèn)證的模塊,主要負(fù)責(zé)openstack用戶(hù)的身份認(rèn)證、令牌管理、提供訪問(wèn)資源的服務(wù)目錄、以及基于用戶(hù)角色的訪問(wèn)控制。

Keystone類(lèi)似一個(gè)服務(wù)總線,或者說(shuō)是整個(gè)Openstack框架的注冊(cè)表,其他服務(wù)通過(guò)keystone來(lái)注冊(cè)其服務(wù)的Endpoint(服務(wù)訪問(wèn)的URL),任何服務(wù)之間相互的調(diào)用,需要經(jīng)過(guò)Keystone的身份驗(yàn)證,來(lái)獲得目標(biāo)服務(wù)的Endpoint來(lái)找到目標(biāo)服務(wù)。

keystone
1、用戶(hù)身份認(rèn)證、令牌管理、提供服務(wù)對(duì)應(yīng)的地址(URL)
2、所有服務(wù)的交互/調(diào)用,均需要keystone進(jìn)行認(rèn)證、令牌管理

相關(guān)概念:
User:指使用Openstack service的用戶(hù)。
Project(Tenant):可以理解為一個(gè)人、或服務(wù)所擁有的資源集合。
Role:用于劃分權(quán)限。通過(guò)給User指定Role,使User獲得Role對(duì)應(yīng)操作權(quán)限
Authentication:確定用戶(hù)身份的過(guò)程。
Token:是一個(gè)字符串表示,作為訪問(wèn)資源的令牌。Token包含了在指定范圍和有效時(shí)間內(nèi),可以被訪問(wèn)的資源。

Credentials:用于確認(rèn)用戶(hù)身份的憑證。用戶(hù)的用戶(hù)名和密碼,或者是用戶(hù)名和API密鑰,或者身份管理服務(wù)提供的認(rèn)證令牌。
Service: Openstack service,即Openstack中運(yùn)行的組件服務(wù)。如nova、swift、glance、neutron、cinder等。
Endpoint:一個(gè)可以通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)和定位某個(gè)Openstack service的地址,通常是一個(gè)URL。

  • keystone認(rèn)證流程

1、user 登陸(keystone 認(rèn)證) 2、user 進(jìn)入控制臺(tái)/命令行界面(位置點(diǎn)) 3、user 發(fā)起創(chuàng)建虛擬的請(qǐng)求(向keystone認(rèn)證 指引位置點(diǎn)) 4、請(qǐng)求到達(dá)nova組件(向keystone認(rèn)證 ) 5、nova會(huì)開(kāi)始執(zhí)行請(qǐng)求,并且調(diào)用創(chuàng)建實(shí)例 所需要的glance、neutron等資源(向keystone 認(rèn)證,指引對(duì)應(yīng)服務(wù)的位置點(diǎn)) 6、glance和neutron 服務(wù)收到請(qǐng)求后(向keystone 認(rèn)證)才會(huì)給與nova對(duì)應(yīng)的資源 7、nova 拿到資源后,調(diào)用對(duì)應(yīng)資源,創(chuàng)建實(shí)例,最后 將創(chuàng)建結(jié)果返回給用戶(hù)(成功? 失敗? 原因)①nova 在keystone認(rèn)證后登陸openstack ②登陸后執(zhí)行創(chuàng)建指令 ③指定—>nova-api ④ nova會(huì)調(diào)用創(chuàng)建實(shí)例所需要的鏡像資源、網(wǎng)絡(luò)資源 ⑤nova將資源整合后,創(chuàng)建虛擬機(jī) 創(chuàng)建完成(成功/不成功),均會(huì)返回結(jié)果給用戶(hù),給與一段報(bào)告信息

OpenStack(T版)-Keystone組件部署

  • 注意事項(xiàng)
    OpenStack組件安裝的順序
    1、Keystone (apache)
    2、glance
    3、nova
    4、neutron
    5、cinder
    部署openstack組件時(shí),需先行安裝認(rèn)證服務(wù)(keystone),而認(rèn)證服務(wù)是使用Apache運(yùn)行的,安裝完成后才可以創(chuàng)建、管理賬號(hào),然后安裝鏡像服務(wù)(glance)、計(jì)算服務(wù)(nova)、網(wǎng)絡(luò)服務(wù)(neutron)
    其中計(jì)算服務(wù)和網(wǎng)絡(luò)服務(wù)分為管理端和客戶(hù)端,所以需要在openstack的管理端安裝計(jì)算服務(wù)和網(wǎng)絡(luò)服務(wù)的管理端,在創(chuàng)建虛擬機(jī)的node節(jié)點(diǎn)上安裝計(jì)算服務(wù)和網(wǎng)絡(luò)服務(wù)的客戶(hù)端,最后安裝dashboard服務(wù),openstack各種組件的API都是通過(guò)apache運(yùn)行的;
    openstack的管理端負(fù)責(zé)創(chuàng)建、管理虛擬機(jī)過(guò)程的調(diào)度
    通過(guò)openstack管理端創(chuàng)建虛擬機(jī)的相關(guān)數(shù)據(jù)最終都會(huì)記錄到mysql(mariadb)中;node節(jié)點(diǎn)沒(méi)有權(quán)限往數(shù)據(jù)庫(kù)中寫(xiě)數(shù)據(jù),只有控制端有權(quán)限,并且node節(jié)點(diǎn)與控制端通訊是通過(guò)rabbitmq間接通訊,node節(jié)點(diǎn)會(huì)監(jiān)聽(tīng)rabbitmq,控制端也會(huì)監(jiān)聽(tīng)rabbitmq,控制端把創(chuàng)建虛擬機(jī)的指令發(fā)送到rabbitmq,由監(jiān)聽(tīng)rabbitmq指定隊(duì)列的node節(jié)點(diǎn)接收消息并創(chuàng)建虛擬機(jī);
  • 創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例和數(shù)據(jù)庫(kù)用戶(hù)
[root@ct ~]# mysql -u root -p MariaDB [(none)]> create database keystone; MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit
  • 安裝、配置keystone、數(shù)據(jù)庫(kù)、Apache
    安裝keystone、httpd、mod_wsgi
mod_wsgi包的作用是讓apache能夠代理python程序的組件;openstack的各個(gè)組件,包括API都是用python寫(xiě)的,但訪問(wèn)的是apache,apache會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給python去處理,這些包只安裝在controler節(jié)點(diǎn) [root@ct ~]# yum -y install openstack-keystone httpd mod_wsgi [root@ct ~]# cp -a /etc/keystone/keystone.conf{,.bak} [root@ct keystone]# grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf

通過(guò)pymysql模塊訪問(wèn)mysql,指定用戶(hù)名密碼、數(shù)據(jù)庫(kù)的域名、數(shù)據(jù)庫(kù)名

openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystone


指定token的提供者;提供者就是keystone自己本身

openstack-config --set /etc/keystone/keystone.conf token provider fernet #Fernet:一種安全的消息傳遞格式
  • 初始化認(rèn)證服務(wù)數(shù)據(jù)庫(kù)
su -s /bin/sh -c "keystone-manage db_sync" keystone

  • 初始化fernet 密鑰存儲(chǔ)庫(kù)(以下命令會(huì)生成兩個(gè)密鑰,生成的密鑰放于/etc/keystone/目錄下,用于加密數(shù)據(jù))
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

  • 配置Apache HTTP服務(wù)器.
echo "ServerName controller" >> /etc/httpd/conf/httpd.conf
  • 創(chuàng)建配置文件
    安裝完mod_wsgi包后,會(huì)生成 wsgi-keystone.conf 這個(gè)文件,文件中配置了虛擬主機(jī)及監(jiān)聽(tīng)了5000端口,mod_wsgi就是python的網(wǎng)關(guān)
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
  • 開(kāi)啟服務(wù)
[root@ct conf.d]# systemctl enable httpd [root@ct conf.d]# systemctl start httpd
  • 配置管理員賬戶(hù)的環(huán)境變量
    #這些環(huán)境變量用于創(chuàng)建角色和項(xiàng)目使用,但是創(chuàng)建角色和項(xiàng)目需要有認(rèn)證信息,所以通過(guò)環(huán)境變量聲明用戶(hù)名和密碼等認(rèn)證信息,欺騙openstack已經(jīng)登錄且通過(guò)認(rèn)證,這樣就可以創(chuàng)建項(xiàng)目和角色;也就是把a(bǔ)dmin用戶(hù)的驗(yàn)證信息通過(guò)聲明環(huán)境變量的方式傳遞給openstack進(jìn)行驗(yàn)證,實(shí)現(xiàn)針對(duì)openstack的非交互式操作
[root@ct ~]# cat >> ~/.bashrc << EOF export OS_USERNAME=admin #控制臺(tái)登陸用戶(hù)名 export OS_PASSWORD=ADMIN_PASS #控制臺(tái)登陸密碼 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://ct:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 EOF [root@ct ~]# source ~/.bashrc
  • 通過(guò)配置環(huán)境變量,可以使用openstack命令進(jìn)行一些操作,示例:
openstack user list

創(chuàng)建OpenStack 域、項(xiàng)目、用戶(hù)和角色
  • 創(chuàng)建一個(gè)項(xiàng)目(project),創(chuàng)建在指定的domain(域)中,指定描述信息,project名稱(chēng)為service(可使用openstack domain list 查詢(xún))
openstack project create --domain default --description "Service Project" service


  • 創(chuàng)建角色(可使用openstack role list查看)
openstack role create user

  • 查看openstack 角色列表
openstack role list

# admin為管理員 # member為 租戶(hù) # user:用戶(hù)
  • 查看是否可以不指定密碼就可以獲取到token信息(驗(yàn)證認(rèn)證服務(wù))
openstack token issue

總結(jié)

以上是生活随笔為你收集整理的OpenStack之keystone(身份认证服务)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。