在Ubuntu上学习OpenStack之三:控制节点上安装KeyStone

 

1)安装OpenStack Identity Service

v 提前约定:KeyStone使用MySQL存储相关数据,库名:keystone,账户:keystoneadmin,密码:keystoneroot,admin_token:zjd_token

v 安装认证服务包:sudo apt-get install keystone -y

v 编辑:sudo vi /etc/keystone/keystone.conf

[database]节点下原有的sqlite连接改为mysql连接:

v 删除SQLite数据库:sudo rm /var/lib/keystone/keystone.db

v 在MySQL中根据前面的约定(MySQL的root密码:mysqlroot,KeyStone库名:KeyStone,账户:keystoneadmin,密码:keystoneroot,admin_token:zjd_token)创建数据库、用户,并配置权限、设置密码:

sudo mysql -uroot -pmysqlroot -e ‘CREATE DATABASE keystone;’

sudo mysql -uroot -pmysqlroot -e ‘CREATE USER keystoneadmin;’

sudo mysql -uroot -pmysqlroot -e “GRANT ALL PRIVILEGES ON keystone.* TO ‘keystoneadmin’@’localhost’ IDENTIFIED BY ‘keystoneroot’;”

sudo mysql -uroot -pmysqlroot -e “GRANT ALL PRIVILEGES ON keystone.* TO ‘keystoneadmin’@’%’ IDENTIFIED BY ‘keystoneroot’;”

sudo mysql -uroot -pmysqlroot -e “SET PASSWORD FOR ‘keystoneadmin’@’%’ = PASSWORD(‘keystoneroot’);”

v 创建Identity Service表:sudo keystone-manage db_sync

v 此时就可以登录mysql检查表都创建出来没有:

v 编辑:sudo vi /etc/keystone/keystone.conf

修改如下两个参数:

v 重启服务:sudo service keystone restart

v 清除过期token,设置日志输出文件为/var/log/keystone/keystone-tokenflush.log:

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

2)配置认真服务的用户、项目、角色

v 输出环境变量:

export OS_SERVICE_TOKEN=zjd_token

export OS_SERVICE_ENDPOINT=http://10.47.182.53:35357/v2.0

v 定义admin的组间、用户、角色:(下面的实际测试发现这三个用户名必须都是admin,否则出错原因未知)

创建一个名为admin的租户:keystone tenant-create --name=admin --description=’Admin Tenant’

创建一个admin的用户:keystone user-create --name=admin --pass=adminUtest --email=zjd@163.com

创建一个admin的角色:keystone role-create --name=admin

 

将相关信息关联在一起:keystone user-role-add --user=admin --tenant=admin --role=admin

v 定义Service的租间/项目:

创建一个service租户:keystone tenant-create --name=service --description=”Service Tenant”

 

v 创建服务:keystone service-create --name=keystone --type=identity --description=”OpenStack Identity Service”

 

v 创建接入端点:keystone endpoint-create --service-id=$(keystone service-list | awk ‘/ identity / {print $2}’ --publicurl=http://10.47.182.53:5000/v2.0 --internalurl=http://10.47.182.53:5000/v2.0 --adminurl=http://10.47.182.53:35357/v2.0

 3)最后测试一下:

v 创建一个环境变量脚本文件admin-openrc.sh,内容如下:

export OS_USERNAME=admin

export OS_PASSWORD=adminUtest

export OS_TENANT_NAME=admin

export OS_AUTH_URL=http://10.47.182.53:35357/v2.0

v 使用上面这个脚本文件:

unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

① 读取环境变量:source admin-openrc.sh

② 获取token:keystone token-get

③ 查看用户列表:keystone user-list

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

 

另外,查看日志在这里:sudo cat /var/log/keystone/keystone-all.log

如果keystone安装出错,可以通过如下命令彻底删除keystone:

apt-get remove -y keystone python-keystone python-keystoneclient
sudo dpkg -l |grep keystone|awk '{print $2}'|sudo xargs dpkg -P 

posted @ 2018-10-16 11:32  鸟瞰的鸟  阅读(900)  评论(0编辑  收藏  举报