Openstack(Ocata版本)部署總結(jié)第二章:認(rèn)證服務(wù)

Openstack Identity service為認(rèn)證管理,授權(quán)管理和服務(wù)目錄服務(wù)管理提供單點(diǎn)整合。keystone的部署相對比較簡單,在本文結(jié)尾附錄mariadb最大連接數(shù)設(shè)置未生效的問題。實(shí)際上ocata的認(rèn)證服務(wù)安裝上來說和之前版本還是有一定的區(qū)別,官方可以說是非常人性化的取消了很多繁瑣的步驟。

先決條件:創(chuàng)建keystone庫為數(shù)據(jù)庫授予恰當(dāng)?shù)臋?quán)限。

# 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)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller' IDENTIFIED BY 'KEYSTONE_DBPASS';

安裝并配置keystone組件

# yum install openstack-keystone httpd mod_wsgi
# vim /etc/keystone/keystone.conf
[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
[token]
provider = fernet

值得注意的是ocata版本沒有包括Mitaka在內(nèi)諸多版本的admin_token配置,鑒于眾多新手經(jīng)?;靵yadmin_token和admin_pass,也算是好事一件。

# su -s /bin/sh -c "keystone-manage db_sync" keystone
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --bootstrap-admin-url http://controller:35357/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

Ocata的keystone實(shí)際是依賴于Apache http進(jìn)行運(yùn)行,因此需要在這里進(jìn)行配置Apache。另外與之前不同的是,ocata這里添加的wsgi-keystone.conf文件,直接通過軟連接的方式,之前版本沒記錯的話應(yīng)該是手動創(chuàng)建。

# vim /etc/httpd/conf/httpd.conf
找到ServerName并修改為
ServerName controller
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

設(shè)置開機(jī)自啟并啟動httpd

# systemctl enable httpd.service
# systemctl start httpd.service

設(shè)置環(huán)境變量(請修改ADMIN_PASS為之前設(shè)置的密碼)

$ export OS_USERNAME=admin
$ export OS_PASSWORD=ADMIN_PASS
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:35357/v3
$ export OS_IDENTITY_API_VERSION=3

創(chuàng)建服務(wù)實(shí)體和API端點(diǎn)(輸出結(jié)果建議直接參考官方文檔)
創(chuàng)建service project

# openstack project create --domain default \
  --description "Service Project" service

創(chuàng)建demo project

# openstack project create --domain default \
  --description "Demo Project" demo

創(chuàng)建demo user

# openstack user create --domain default \
  --password-prompt demo
User Password:
Repeat User Password:

創(chuàng)建user role

# openstack role create user

添加user role到demo project和suer

# openstack role add --project demo --user demo user

由于安全性原因,關(guān)閉臨時認(rèn)證令牌機(jī)制

# vim /etc/keystone/keystone-paste.ini
找到以下三項中的admin_token_auth,刪掉即可(光標(biāo)選到a,按17x,即可)
[pipeline:public_api]
[pipeline:admin_api]
[pipeline:api_v3]

重置環(huán)境變量

# unset OS_AUTH_URL OS_PASSWORD

分別作為admin用戶和demo用戶請求認(rè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

Password:

# 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

Password:

創(chuàng)建腳本

# vi 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=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
---------------------------------------------
# vi 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=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

驗證

# . admin-openrc
# openstack token issue

附錄:調(diào)整mariadb最大連接數(shù)
在我的部署過程中,屢次因為mariadb最大連接數(shù)問題報錯,雖然我按照官方設(shè)置了4096,但是實(shí)際查詢卻發(fā)現(xiàn)只有214(查看max_connection)

MariaDB [(none)]> show global variables like '%connect%'

原因:10.X版本mariadb默認(rèn)最大連接數(shù)應(yīng)該就是214(有些版本可能是150)
在這里,我嘗試修改/etc/my.cnf和/etc/my.cnf.d/openstack.cnf中的max_connection,重啟mariadb后目測沒有發(fā)生變化。
由于mariadb有默認(rèn)打開文件數(shù)限制,需要通過配置mariadb.service來調(diào)大打開文件數(shù)目

# vim /usr/lib/systemd/system/mariadb.service
[Service]新添加兩行如下參數(shù):
LimitNOFILE=10000
LimitNPROC=10000

重新加載系統(tǒng)服務(wù),并重啟mariadb服務(wù)

systemctl --system daemon-reload  
systemctl restart mariadb.service  

在這時再查看,就可能會看到一個令你滿意的結(jié)果

MariaDB [(none)]> show variables like 'max_connections';  
+-----------------+-------+  
| Variable_name   | Value |  
+-----------------+-------+  
| max_connections | 4096  |  
+-----------------+-------+  

但是我在這時又遇到一個問題,這樣修改以后,我的默認(rèn)字符集變成了latin1,很尷尬,我還沒有比較好的解決辦法,但是目前也沒有出現(xiàn)什么問題,算是比較nice吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容