创建域、项目、用户和角色

身份服务为每个 OpenStack 服务提供身份验证服务。身份验证服务使用域、项目、用户和角色的组合。

  1. 虽然“default”域已经存在于本指南中的 keystone-manage bootstrap 步骤中,但正式创建新域的方法如下

    $ openstack domain create --description "An Example Domain" example
    
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description | An Example Domain                |
    | enabled     | True                             |
    | id          | 2f4f80574fd84fe6ba9067228ae0a50c |
    | name        | example                          |
    | tags        | []                               |
    +-------------+----------------------------------+
    
  2. 本指南使用一个服务项目,其中包含您添加到环境中的每个服务的一个唯一用户。创建 service 项目

    $ openstack project create --domain default \
      --description "Service Project" service
    
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description | Service Project                  |
    | domain_id   | default                          |
    | enabled     | True                             |
    | id          | 24ac7f19cd944f4cba1d77469b2a73ed |
    | is_domain   | False                            |
    | name        | service                          |
    | parent_id   | default                          |
    | tags        | []                               |
    +-------------+----------------------------------+
    
  3. 常规(非管理员)任务应使用非特权项目和用户。例如,本指南创建了 myproject 项目和 myuser 用户。

    • 创建 myproject 项目

      $ openstack project create --domain default \
        --description "Demo Project" myproject
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Demo Project                     |
      | domain_id   | default                          |
      | enabled     | True                             |
      | id          | 231ad6e7ebba47d6a1e57e1cc07ae446 |
      | is_domain   | False                            |
      | name        | myproject                        |
      | parent_id   | default                          |
      | tags        | []                               |
      +-------------+----------------------------------+
      

      注意

      在为该项目创建其他用户时,请勿重复此步骤。

    • 创建 myuser 用户

      $ openstack user create --domain default \
        --password-prompt myuser
      
      User Password:
      Repeat User Password:
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | aeda23aa78f44e859900e22c24817832 |
      | name                | myuser                           |
      | options             | {}                               |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
    • 创建 myrole 角色

      $ openstack role create myrole
      
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | None                             |
      | id        | 997ce8d05fc143ac97d83fdfb5998552 |
      | name      | myrole                           |
      +-----------+----------------------------------+
      
    • myrole 角色添加到 myproject 项目和 myuser 用户

      $ openstack role add --project myproject --user myuser myrole
      

      注意

      此命令不会产生任何输出。

注意

您可以重复此过程以创建其他项目和用户。