openstack基礎環境安裝完成後,現在開啟安裝keystone服務(在控制節點上執行下面所有操作)
1、為keystone建立資料庫
mysql -u root -p MariaDB [(none)]> CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
2、配置keystone
# yum install openstack-keystone httpd mod_wsgi
修改配置檔案/etc/keystone/keystone.conf,在[database]部分配置下面配置:
connection = mysql+pymysql://keystone:keystone@192.168.101.10/keystone
在[token]下面新增如下:
provider = fernet
進行驗證:
[root@node1 ~]# egrep "^provider" /etc/keystone/keystone.conf provider = fernet
3、進行keystone同步資料:
# su -s /bin/sh -c "keystone-manage db_sync" keystone 同步資料
可以在日誌中進行檢視:
/var/log/keystone/keystone.log 記錄著同步資料庫
4、初始化fernet key倉庫
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
5、Bootstrap the Identity service:
# keystone-manage bootstrap --bootstrap-password bootstrap --bootstrap-admin-url http://192.168.101.10:35357/v3/ --bootstrap-internal-url http://192.168.101.10:5000/v3/ --bootstrap-public-url http://192.168.101.10:5000/v3/ --bootstrap-region-id RegionOne
這裡設定的賬號密碼admin:bootstrap非常重要,後面要經常用到
然後將httpd服務與keystone進行結合:
1、修改配置檔案/etc/httpd/conf/httpd.conf
ServerName 192.168.101.10
2、建立連結
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
3、開啟httpd服務:
# systemctl enable httpd.service # systemctl start httpd.service
4、配置admin管理使用者(許可權管理),在當前session執行就行
# export OS_USERNAME=admin # export OS_PASSWORD=bootstrap 這裡的密碼對應keystone-manage bootstrap # export OS_PROJECT_NAME=admin # export OS_USER_DOMAIN_NAME=Default # export OS_PROJECT_DOMAIN_NAME=Default # export OS_AUTH_URL=http://192.168.101.10:35357/v3 35357是管理埠 # export OS_IDENTITY_API_VERSION=3
5、建立一個專案,域,使用者和角色
# openstack project create --domain default --description "Service Project" service
建立一個demo專案:
# openstack project create --domain default --description "Demo Project" demo
建立一個demo 使用者:
# openstack user create --domain default --password-prompt demo
需要設定並輸入密碼:demo
建立一個user 角色:
# openstack role create user
將user這個角色新增到demo專案以及demo使用者中:
# openstack role add --project demo --user demo user
note:service專案用來新增各個服務:glance、nova等等
校驗上面的操作:
1、修改配置檔案/etc/keystone/keystone-paste.ini
將admin_token_auth從配置檔案中的sections:[pipeline:public_api]、[pipeline:admin_api]、[pipeline:api_v3]移除
由於沒有,所以這步驟沒有更改
2、取消變數OS_AUTH_URL OS_PASSWORD
# unset OS_AUTH_URL OS_PASSWORD
3、使用admin使用者來請求一個認證token:
# openstack --os-auth-url http://192.168.101.10:35357/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue
這裡需要輸入密碼:bootstrap
4、使用demo使用者來請求認證token
# openstack --os-auth-url http://192.168.101.10:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name demo --os-username demo token issue
這裡需要輸入密碼:demo
至此keystone服務安裝完成
將上述admin、demo的專案和使用者的資訊寫到一個指令碼變數中,用到的時候source一下就可以,不必export一個個變數:
vim admin-openrc: 針對admin
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=bootstrap
export OS_AUTH_URL=http://192.168.101.10:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

vim demo-openrc: 針對demo
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
export OS_AUTH_URL=http://192.168.101.10:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
demo的token同理上面的admin
keystone服務基本安裝完成,其他操作繼續參考官方文件
如果遇到下面錯誤:

請檢查admin賬號的密碼是否正確