当前位置: 首页 > 工具软件 > Domain Admin > 使用案例 >

了解和使用keystone(三)创建admin用户

孟韬
2023-12-01
               

admin用户可以用来创建domain,project,user。在keystone.conf中,通过设定admin_token,提供了一个初始的管理员令牌,假定为ADMIN,我们用这个令牌来创建admin用户。这是个管理的问题,如果分配给不同的人员,应该要使用不同的username/password。

配置环境变量

$ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 user list

这是显示用户的命令,我们看到里面有三个参数,这三个参数几乎在所有的命令都需要设置。这会很烦的,可以设置环境变量来解决。

$ cat wei_env export OS_TOKEN=ADMIN export OS_URL=http://localhost:35357/v3 export OS_IDENTITY_API_VERSION=3$ source wei_env

这样,前面的命令,就可以简化为$ openstack user list

为了更好地了解CLI,后面将不使用环境变量

创建role

管理员属于管理角色:admin,因此要创建管理员,首先要创建管理员角色。

 $ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 role create admin +-----------+----------------------------------+ | Field     | Value                            | +-----------+----------------------------------+ | domain_id | None                             | | id        | 868b27db6a814d9eab31815574cd909f | | name      | admin                            | +-----------+----------------------------------+

查看角色:

 $ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 role list +----------------------------------+-------+ | ID                               | Name  | +----------------------------------+-------+ | 868b27db6a814d9eab31815574cd909f | admin | +----------------------------------+-------+

我们还可以进入数据库看看:

 mysql> select * from role; +----------------------------------+-------+-------+-----------+ | id                               | name  | extra | domain_id | +----------------------------------+-------+-------+-----------+ | 868b27db6a814d9eab31815574cd909f | admin | {}    | <<null>>  | +----------------------------------+-------+-------+-----------+ 1 row in set (0.00 sec)

创建用户

在keystone中,用户是有归属的。关系为domain --》 project --》user。一个domain包含多个projects,一个projects可包含多个用户,反过来,一个用户可以归属不同的projects,在V2.0,没有domain,只有project(tenant),在v3中增加了一层关系。在创建一个用户之前,我们先要创建归属的domain和project。

1、创建domain

$ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 domain create --description "Administrators Domain" admin-domain +-------------+----------------------------------+ | Field       | Value                            | +-------------+----------------------------------+ | description | Administrators Domain            | | enabled     | True                             | | id          | 13b6ce90f57844e3bfec0eeb0389104e | | name        | admin-domain                     | +-------------+----------------------------------+

2、创建project

$ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 project create --domain admin-domain --description "Admin project" admin-project +-------------+----------------------------------+ | Field       | Value                            | +-------------+----------------------------------+ | description | Admin project                    | | domain_id   | 13b6ce90f57844e3bfec0eeb0389104e | | enabled     | True                             | | id          | 5b5893ebc8ca42abaaa18dca873a6921 | | is_domain   | False                            | | name        | admin-project                    | | parent_id   | 13b6ce90f57844e3bfec0eeb0389104e | +-------------+----------------------------------+

3、创建user

设定密码为admin123

$ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 user create --domain admin-domain --password-prompt adminUser User Password: Repeat User Password: +-----------+----------------------------------+ | Field     | Value                            | +-----------+----------------------------------+ | domain_id | 13b6ce90f57844e3bfec0eeb0389104e | | enabled   | True                             | | id        | 4f63af5f7a6b42088289013ae109830b | | name      | adminUser                        | +-----------+----------------------------------+

注意:不要在此关联--project,在确定role的时候再进行关联。

4、赋予用户admin的角色

$ openstack --os-token=ADMIN --os-url=http://localhost:35357/v3 --os-identity-api-version=3 role add --project admin-project --user adminUser admin

我们验证一下结果,curl是个很有用的linux命令

$ curl -H "X-Auth-Token:ADMIN" -H "Content-type: application/json" http://localhost:35357/v3/projects/5b5893ebc8ca42abaaa18dca873a6921/users/4f63af5f7a6b42088289013ae109830b/roles | python -mjson.tool  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed 100   345  100   345    0     0   3559      0 --:--:-- --:--:-- --:--:--  3593 {    "links": {        "next": null,        "previous": null,        "self": "http://localhost:35357/v3/projects/5b5893ebc8ca42abaaa18dca873a6921/users/4f63af5f7a6b42088289013ae109830b/roles"    },    "roles": [        {            "domain_id": null,            "id": "868b27db6a814d9eab31815574cd909f",            "links": {                "self": "http://localhost:35357/v3/roles/868b27db6a814d9eab31815574cd909f"            },            "name": "admin"        }    ] }

使用用户名和密码来进行操作

$ openstack --os-username=adminUser --os-password=admin123 --os-url=http://localhost:35357/v3 --os-identity-api-version=3 user list +----------------------------------+-----------+ | ID                               | Name      | +----------------------------------+-----------+ | 4f63af5f7a6b42088289013ae109830b | adminUser | +----------------------------------+-----------+

这是本地命令方式,远程的RESTful接口,需要先通过账号密码获取TOKEN,然后通过TOKEN来进行操作,过程和在后面介绍。

禁止原初始token

在keystone.conf中注释掉原来的初始token,重启服务,则只能通过账号和密码访问。


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

 类似资料: