一、介紹
參照官網部署:https://docs.openstack.org/keystone/queens/install/
繼續上一博客進行部署:http://www.cnblogs.com/weijie0717/p/8549541.html
二、部署 keystone
1、配置數據庫 (任意controller 節點操作)
# mysql -uroot -p
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
2、keystone 包安裝(所有 controller 節點)
# yum install openstack-keystone httpd mod_wsgi
3、編輯keystone 配置 (所有 controller 節點)
# vim /etc/keystone/keystone.conf
[database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone #controller 為Mysql-ha-vip hosts. [token] provider = fernet
4、初始化數據庫 keystone (all controller 節點操作)
# 初始化是因為python的orm對象關系映射,需要初始化來生成數據庫表結構
# su -s /bin/sh -c "keystone-manage db_sync" keystone
5、初始化 Fernet key倉庫 (all controller 節點操作)
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
6、keystone 身份認證服務引導API 配置 (all controller 節點操作 )
# 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
7、配置 Apache 服務 (所有 controller 節點)
a、修改 ServerName
# vim /etc/httpd/conf/httpd.conf
ServerName 主機名 #hostname 查詢主機名
b、創建連接文件 /usr/share/keystone/wsgi-keystone.conf
,並修改:
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
# vim /etc/httpd/conf.d/wsgi-keystone.conf #綁定服務今天IP地址
Listen 節點網卡IP:5000
Listen 節點網卡IP:35357
c、重啟httpd 服務,並設置開機自啟動。
# systemctl enable httpd.service
# systemctl start httpd.service
備注:haproxy 默認的配置文件會占用一個 5000端口,和 keystone 的5000 端口沖突,會導致http服務啟動失敗。注釋haproxy 5000 端口配置,重啟haproxy--> 重啟httpd 服務。
8、配置 keystone-admin 和 keystone-public、keystone-internal 的haproxy (所有 controller 節點)
博客參照:http://www.cnblogs.com/weijie0717/p/8530102.html
9、創建 USER: admin、demo 的認證變量 ,后期驗證keystone 使用。 (所有 controller 節點)
# cd /root
# vim 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 #第六步中的 ADMIN_PASS export OS_AUTH_URL=http://controller:35357/v3 # keystone-haproxy-vip export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
# vim 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 # 后期創建demo 用戶時設置的密碼。 export OS_AUTH_URL=http://controller:5000/v3 #keystone-haproxy-vip export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
#使用或切換變量。
# source admin-openrc
# source demo-openrc
三、創建 domain、projects、users、roles (在任意controller 節點操作)
1、創建domain
# openstack domain create --description "An Example Domain" example
2、創建projects
# openstack project create --domain default --description "Service Project" service #創建service projiect
# openstack project create --domain default --description "Demo Project" demo #創建demo projiect
3、創建 users
# openstack user create --domain default --password-prompt demo #創建 demo 用戶,需要輸入密碼。
4、創建 role:
# openstack role create user
5、給demo 用戶 分配 user 角色。
# openstack role add --project demo --user demo user
五、驗證keystone 服務。 (在任意controller 節點操作)
1、驗證用戶
# unset OS_AUTH_URL OS_PASSWORD
a、admin 用戶
# 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
b、demo 用戶
# 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
部署完成。
續:查看信息等常用命令
1、查看 catalog 信息
# openstack catalog list
2、查看 endpoint 信息
# openstack endpoint list
3、查看當前openstack所提供的服務列表
# openstack service list
4、查看域列表
# openstack domain list
5、查看幫助
# openstack --help
6、申請token 操作,需要配合 之前別寫好的 admin-openrc和 demo-openrca腳本
# source admin-openrc
# openstack token issue
謝謝!!