openstack essex版安装(2)——keystone

本文详细介绍了如何在OpenStack Essex版本中安装和配置Keystone服务,包括设置MySQL数据库、创建数据库、配置keystone.conf文件、同步数据库、添加tenant、user、role并进行关联。此外,还提供了使用curl工具测试Keystone身份验证的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

keystone是openstack中用于身份验证的项目,任何服务请求需要经过它的验证获得服务的endpoint。具体作用请看相关官方文档。这里我使用的是mysql来存储keystone的数据。

keystone

Host:keystone

ip:192.168.0.106

mysql, keystone


1、安装
 1)安装数据库
sudo apt-get install mysql-server mysql-client python-mysqldb
    进/etc/mysql/my.cnf里,将bind-address=127.0.0.1改成 0.0.0.0。这样远程主机就可以连接上这个mysql。
    重启mysql服务。sudo service mysql restart
2)安装keystone
Ø  安装软件
sudo apt-get install keystone
创建keystone数据库,并创建用户以及分配权限。
create database keystone;
grant all on keystone.* to 'keystone'@'%' identified by 'keystonepwd';


Ø  配置keystone
配置keystone,修改/etc/keystone/keystone.conf文件:
[sql]
#connection = sqlite:var/lib/keystone/keystone.db
connection = mysql://keystone:keystonepwd@192.168.0.106/keystone


这里注意一下该文件里的这部份信息,记住admin_token参数,以后会用的上,这个参数是用来访问keystone服务的。默认是ADMIN,也可以改成别的。
[DEFAULT]
public_port = 5000
admin_port = 35357
admin_token = ADMIN
compute_port = 8774
verbose = True
debug = True
log_config =/etc/keystone/logging.conf


重启keystone服务
sudo service keystone restart
同步数据库,
sudo keystone-manage db_sync
然后去数据库里看,
mysql>show tables;
 
+------------------------+
|Tables_in_keystone     |
+------------------------+
|ec2_credential         |
|endpoint               |
|metadata               |
|migrate_version        |
|role                   |
|service                |
|tenant                 |
|token                  |
|user                   |
|user_tenant_membership |
+------------------------+


2、使用keystone
导入环境变量,当然也可以在每次执行keystone命令时加上这方面的参数,keystone 命令格式参见它的help
export SERVICE_TOKEN=ADMIN
export SERVICE_ENDPOINT=http://192.168.0.106:35357/v2.0


添加tenant:
keystone tenant-create --name adminTenant --description "Admin Tenant"--enabled true
keystone tenant-list
+----------------------------------+-------------+---------+
|                id                |     name   | enabled |
+----------------------------------+-------------+---------+
|72a95ab302cc42d59e6f414769dcfec7 | adminTenant | True    |
+----------------------------------+-------------+---------+


添加user:
keystone user-create --tenant_id 72a95ab302cc42d59e6f414769dcfec7 --name admin --passopenstack --enabled true
keystone user-list
+----------------------------------+---------+-------+-------+
|                id                | enabled | email |  name |
+----------------------------------+---------+-------+-------+
|4fd5ba059a6945c0a43ff63b0140b0a9 | True   | None  | admin |
+----------------------------------+---------+-------+-------+


添加role
keystone role-create --name admin
keystone role-list
+----------------------------------+-----------+
|                id                |    name  |
+----------------------------------+-----------+
|675b96a12d834021b519ef50502a5e5e | admin |
+----------------------------------+-----------+


将这三者关联
keystone user-role-add --user 4fd5ba059a6945c0a43ff63b0140b0a9 --tenant_id72a95ab302cc42d59e6f414769dcfec7 --role 675b96a12d834021b519ef50502a5e5e


这样就ok了。测试一下,用curl工具测试。
       sudo apt-get install curl
       我们先输入一个错误的密码试试
curl-d '{"auth": {"tenantName": "adminTenant","passwordCredentials":{"username": "admin","password": "wrong"}}}' -H"Content-type: application/json" http://192.168.0.106:35357/v2.0/tokens| python -mjson.tool
       返回结果
{
    "error":{
        "code":401, 
        "message":"Invalid user / password", 
        "title":"Not Authorized"
    }
}
    如果用户名/密码都正确的话
curl -d'{"auth": {"tenantName": "adminTenant","passwordCredentials":{"username": "admin","password": "openstack"}}}' -H "Content-type:application/json" http://192.168.0.106:35357/v2.0/tokens | python-mjson.tool
    就会返回很多信息,如token、user等,内容太多了,这里我就不贴了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值