在Openstack里,keystone的位置非常重要,所有的组件的认证授权,都需要经过他。
1:安装keystone
apt-get install -y keystone Python-keystone python-keystoneclient
2:配置keystone
需要修改 /etc/keystone/keystone.conf 3个地方
默认定义的token就是ADMIN,改成:1234567890
bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token =1234567890
mysql的连接,默认是采用sqlite
[sql]
#connection = sqlite:////var/lib/keystone/keystone.db
connection= mysql://keystone:password@172.16.10.6:3306/keystone
idle_timeout = 200
修改catalog
[catalog]
#driver = keystone.catalog.backends.sql.Catalog
driver = keystone.catalog.backends.templated.TemplatedCatalog
template_file = /etc/keystone/default_catalog.templates
重启服务和同步数据库
service keystone restart
keystone-manage db_sync
3: 导入数据
这个比较有技术含量。通过修改devstack的keystone_data.sh 脚本。实现导入数据。
下载脚本
wget
mv keystone_data.sh_.txt keystone_data.sh
让脚本可运行
chmod +x keystone_data.sh
运行脚本前, 你需要修改脚本。修改两个地方
第一个是登录dashboard的admin的密码
第二个就是keystone的token
#ADMIN_PASSWORD=${ADMIN_PASSWORD:-hastexo}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}
SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}
#export SERVICE_TOKEN="hastexo"
export SERVICE_TOKEN="1234567890"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}
运行脚本
#./keystone_data.sh
4:检查keystone是否运行正常
设置环境变量,
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
检查一下环境变量是否生效
# export | grep OS_
输出下面内容就表示正常
declare -x OS_AUTH_URL="http://localhost:5000/v2.0/"
declare -x OS_PASSWORD="admin"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"
运行
keystone user-list
5:设置系统的环境变量
环境变量设置,如果退出后,就需要再次设置,为了后面试验的方便,我修改系统的环境变量
修改/etc/profile , 在最后面添加下面内容
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export EC2_URL=$(keystone catalog --service ec2 | awk '/ publicURL / { print $4 }')
export CREDS=$(keystone ec2-credentials-create)
export EC2_ACCESS_KEY=$(echo "$CREDS" | awk '/ access / { print $4 }')
export EC2_SECRET_KEY=$(echo "$CREDS" | awk '/ secret / { print $4 }')
退出ssh,再登陆就生效。