在CentOS下部署Openstack-安装keystone(提供验证服务)

安装keystone

1
yum install -y openstack-keystone

默认keystone使用pki并新建

1
keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

新建数据库

1
2
mysql –u root –p
create database keystone;

授权

进入mysql数据库中执行。

1
GRANT ALL PRIVILEGES ON keystone.* TO'keystone'@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'keystone';

验证

1
2
mysqlh 192.168.1.103u keystonep keystone 
show databases;

更改keystone.conf配置文件


(用户名:密码@主机ip/keystone)
如果不更改一定会出现同步不成功的问题:数据库中没有表。

同步数据库(自动在数据库中建表)

1
keystone-manage db_sync

进入到数据库中查看是否同步成功

1
mysql –h 192.168.1.103 –u keystone –p keystone ->use keystone;->show tables;

生成字符串秘钥并添加到配置文件

1
2
3
4
ADMIN_TOKEN=$(openssl rand -hex 10)
echo $ADMIN_TOKEN
openstack-config --set /etc/keystone/keystone.conf DEFAULT \
admin_token $ADMIN_TOKEN

默认keystone使用PKI令牌,创建签名秘钥和证书

1
2
3
4
keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
chown -R keystone:keystone /etc/keystone/ssl
chmod -R o-rwx /etc/keystone/ssl
chown keystone.keystone /var/log/keystone/keystone.log

重启keystone服务并设置为开机启动

1
2
service openstack-keystone restart
chkconfig openstack-keystone on

定期清理过期的令牌,提高系统性能

1
2
(crontab -l 2>&1 | grep -q token_flush) || \
echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1' >> /var/spool/cron/root

设置令牌及服务位置环境变量

1
2
export OS_SERVICE_TOKEN=$ADMIN_TOKEN
export OS_SERVICE_ENDPOINT=http://192.168.1.103:35357/v2.0

创建admin用户、角色和租户

1
2
#创建管理员用户
keystone user-create --name=admin --pass=admin --email=admin@example.com


1
2
#创建管理员角色
keystone role-create --name=admin


1
2
#为管理员创建租户
keystone tenant-create --name=admin --description="AdminTenant"


1
2
3
#将角色添加到用户
keystone user-role-add --user=admin --tenant=admin --role=admin
keystone user-role-add --user=admin --role=_member_ --tenant=admin

创建service租户

1
keystone tenant-create --name=service --description="Service Tenant"

创建keystone标识服务

1
2
keystone service-create --name=keystone --type=identity \
--description="OpenStackIdentity"

创建服务端点,指定API的URL

1
2
3
4
5
keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ identity / {print$2}') \
--publicurl=http://192.168.1.103:5000/v2.0 \
--internalurl=http://192.168.1.103:5000/v2.0 \
--adminurl=http://192.168.1.103:35357/v2.0

测试keystone服务

取消变量

1
unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

测试身份认证

1
2
keystone --os-username=admin --os-password=admin \
--os-auth-url=http://192.168.1.103:35357/v2.0 token-get

1
2
keystone --os-username=admin --os-password=admin \
--os-tenant-name=admin --os-auth-url=http://192.168.1.103:35357/v2.0 token-get


设置环境变量,也可以写在文件中

1
2
3
4
5
6
vi /root/admin-openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://192.168.1.103:35357/v2.0
source admin-openrc.sh

验证是否授权成功

1
2
keystone token-get
keystone user-list


1
keystone user-role-list --user admin --tenant admin


1
keystone --os-password admin service-list

安装client通过http访问各组件客户端

1
yum install -y python-keystoneclient python-glanceclient python-novaclient python-swiftclient python-neutronclient python-cinderclient

本文作者:Qiu Qingyu
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 CN许可协议。转载请注明出处!
本文永久链接:http://qiuqingyu.cn/2015/12/12/在CentOS下部署Openstack-安装keystone(提供验证服务)/