先決條件
在你配置 OpenStack 身份認證服務前,你必須建立一個資料庫和管理者令牌。
- 完成下面的步驟以建立資料庫:
- 用資料庫連接配接用戶端以 root 使用者連接配接到資料庫伺服器:
$ mysql -u root -p
- 建立 keystone 資料庫:
CREATE DATABASE keystone;
- 對``keystone``資料庫授予恰當的權限:
用合适的密碼替換 KEYSTONE_DBPASS 。GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'KEYSTONE_DBPASS';
- 退出資料庫用戶端。
- 用資料庫連接配接用戶端以 root 使用者連接配接到資料庫伺服器:
- 生成一個随機值在初始的配置中作為管理者的令牌。
$ openssl rand -hex 10
安全并配置元件
注解
預設配置檔案在各發行版本中可能不同。你可能需要添加這些部分,選項而不是修改已經存在的部分和選項。另外,在配置片段中的省略号(...)表示預設的配置選項你應該保留。
注解
教程使用帶有``mod_wsgi``的Apache HTTP伺服器來服務認證服務請求,端口為5000和35357。預設情況下,Kestone服務仍然監聽這些端口。然而,本教程手動禁用keystone服務。
- 運作以下指令來安裝包。
# yum install openstack-keystone httpd mod_wsgi
- 編輯檔案 /etc/keystone/keystone.conf 并完成如下動作:
- 在``[DEFAULT]``部分,定義初始管理令牌的值:
使用前面步驟生成的随機數替換``ADMIN_TOKEN`` 值。[DEFAULT] ... admin_token = ADMIN_TOKEN
- 在 [database] 部分,配置資料庫通路:
将``KEYSTONE_DBPASS``替換為你為資料庫選擇的密碼。[database] ... connection = mysql+pymysql://keystone:[email protected]/keystone
- 在``[token]``部分,配置Fernet UUID令牌的提供者。
[token] ... provider = fernet
- 在``[DEFAULT]``部分,定義初始管理令牌的值:
- 初始化身份認證服務的資料庫:
# su -s /bin/sh -c "keystone-manage db_sync" keystone
注解
忽略輸出中任何不推薦使用的資訊。
- 初始化Fernet keys(需要useradd keystone,添加keystone到系統中去):
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
配置 Apache HTTP 伺服器
- 編輯``/etc/httpd/conf/httpd.conf`` 檔案,配置``ServerName`` 選項為控制節點:
ServerName controller
- 用下面的内容建立檔案 /etc/httpd/conf.d/wsgi-keystone.conf。
Listen 5000 Listen 35357 <VirtualHost *:5000> 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 <Directory /usr/bin> Require all granted </Directory> </VirtualHost> <VirtualHost *:35357> 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 <Directory /usr/bin> Require all granted </Directory> </VirtualHost>
完成安裝
- 啟動 Apache HTTP 服務并配置其随系統啟動:
# systemctl enable httpd.service # systemctl start httpd.service
轉載于:https://www.cnblogs.com/goldd/p/6179866.html