openstack學習筆記3-認證服務安裝與配置


目錄:

0 實驗環境

1 概述

2 安裝和配置

2.1 先決條件

2.2 安裝和配置

2.3 http服務

2.4 完成安裝

3 創建域、項目、用戶和角色

4 驗證

5 創建腳本


 

0 實驗環境

openstack版本:train

實驗平台:vmware workstation 15.1

實驗虛擬機:centos 7.6,2核,4G內存

操作節點:控制節點

本文用到的帳號和密碼:

mysql數據庫管理員:root:samplepass

keystone數據庫用戶:keystone:kspass

keystone系統管理員:admin:rootpass

openstack新用戶myuser:myuser:mypass

1 概述

openstack服務組件有很多,但是至少需要按順序安裝以下服務:

  • keystone-身份認證服務
  • glance-鏡像服務
  • placement-替換服務
  • nova-計算服務
  • neutron-網絡服務

除了必須的服務,建議安裝以下兩個組件:

  • horizon-控制面板
  • cinder-塊存儲服務

2 安裝和配置

OpenStack身份服務集成了管理身份驗證、授權和服務目錄。身份服務通常是第一個服務。一旦通過身份驗證,就可以使用其身份訪問其他OpenStack服務。身份服務還可以與一些外部用戶管理系統(如LDAP)集成。

2.1 先決條件

在安裝服務之前,必須先創建數據庫:

a)連接數據庫:

# mysql -u root -p

b)新建數據庫keystone:

MariaDB [(none)]> CREATE DATABASE keystone;

c)為keystone數據庫用戶分配權限,並設置用戶keystone的密碼為kspass:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'kspass';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'kspass';

d)退出數據庫

MariaDB [(none)]>quit;

2.2 安裝和配置

a)安裝軟件包

# yum install openstack-keystone httpd mod_wsgi

b)編輯配置文件/etc/keystone/keystone.conf

[database]節點,編輯數據庫連接字符串,使用之前創建的數據庫用戶keystone和密碼kspass:

 

 

 [token]節點,編輯令牌提供程序為fernet

 

 

 c)寫入keystone數據庫初始數據

# su -s /bin/sh -c "keystone-manage db_sync" keystone

這一步執行沒有返回錯誤或者成功的任何提示,所以最好通過查看數據庫信息來確認是否成功(也能確認之前的配置是否生效):

# mysql -u keystone -pkspass keystone -e 'show tables'  //-p后面緊跟密碼,不能有空格

 

 

d)初始化令牌庫

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

e)引導身份認證服務,其中設置了管理員密碼為rootpass

# keystone-manage bootstrap --bootstrap-password rootpass \
  --bootstrap-admin-url http://controller:5000/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

f)驗證,上一步創建了一個默認的域default,通過查看域的列表命令來進行檢查是否成功:

# openstack domain list

 

2.3 配置http服務

a)編輯/etc/httpd/conf/httpd.conf,配置服務名稱:

ServerName controller

b)創建配置文件/usr/share/keystone/wsgi-keystone.conf的符號鏈接:

# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

2.4 完成安裝

a)設置服務狀態

# systemctl enable --now httpd

b)配置環境變量,其中的內容在2.2中e)步驟,通過keystone-manager命令完成了初始的設置:

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

3 創建域、項目、用戶和角色

身份的驗證是通過域、項目、用戶和角色的組合來進行的。

a)創建一個名稱為example的新域:

# openstack domain create --description "An Example Domain" example

 

 

 b)新建一個名為service的新項目,屬於example域:

# openstack project create --domain example --description "Service Project" service

 

 c)新建一個用戶myuser,屬於example域,密碼設置為mypass:

# openstack user create --domain example --password-prompt myuser

d)新建角色myrole:

# openstack role create myrole

 

 

 把myrole角色分配myuser用戶和service項目:

# openstack role add --project service --user myuser myrole

由於上一命令沒有任何提示,可以通過查看角色列表來檢查:

# openstack role assignment list --names

4 驗證

a)取消之前設置的管理員密碼的環境變量:

# unset OS_PASSWORD

b)使用admin用戶獲取token,要求輸入密碼,使用admin的密碼rootpass進行驗證:

# openstack token issue

c)使用myuser用戶獲取token,--os-username 指定用戶,--os-project-name 指定項目,--os-domain-name 指定域(上一步之所以沒有用這些參數,因為之前設置了相應的環境變量)。會要求輸入密碼,使用myuser的密碼mypass進行驗證:

# openstack --os-username myuser --os-project-name service --os-domain-name example token issue

5 創建腳本

為了提高客戶端操作的效率,OpenStack支持簡單的客戶端環境腳本(也稱為OpenRC文件),這些腳本通常包含所有客戶端的通用選項。

a)創建admin用戶的腳本文件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=rootpass
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

b)創建myuser用戶的腳本文件myuser-openrc:

export OS_PROJECT_DOMAIN_NAME=example
export OS_USER_DOMAIN_NAME=example
export OS_PROJECT_NAME=service
export OS_USERNAME=myuser
export OS_PASSWORD=mypass
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

c)使用腳本來進行驗證操作:

# . admin-openrc  //注意:命令是一個點,空格,文件名。執行文件里的命令,也就是設置環境變量。
# openstack token issue

# . myuser-openrc  //運行myuser的文件,驗證myuser的配置
# openstack token issue

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM