0
点赞
收藏
分享

微信扫一扫

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

认真的老去 2023-04-08 阅读 39


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,重启服务,则只能通过账号和密码访问。


举报

相关推荐

0 条评论