安装和配置

本节描述了如何在控制器节点上安装和配置 OpenStack 身份认证服务,代号为 keystone。为了可扩展性,此配置部署 Fernet 令牌和 Apache HTTP 服务器来处理请求。

注意

在继续之前,请确保已完成 Openstack 安装指南 中的先决安装步骤。

先决条件

在安装和配置 Identity 服务之前,您必须创建一个数据库。

  1. 使用数据库访问客户端以 root 用户身份连接到数据库服务器

    $ mysql -u root -p
    
  1. 创建 keystone 数据库

    MariaDB [(none)]> CREATE DATABASE keystone;
    
  2. 授予 keystone 数据库适当的访问权限

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
    IDENTIFIED BY 'KEYSTONE_DBPASS';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
    IDENTIFIED BY 'KEYSTONE_DBPASS';
    

    KEYSTONE_DBPASS 替换为合适的密码。

  3. 退出数据库访问客户端。

安装和配置组件

注意

默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。

  1. 运行以下命令来安装软件包

    # dnf install openstack-keystone httpd uwsgi-plugin-python3
    
  1. 编辑 /etc/keystone/keystone.conf 文件并完成以下操作

    • [database] 部分,配置数据库访问

      [database]
      # ...
      connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
      

      KEYSTONE_DBPASS 替换为您为数据库选择的密码。

      注意

      注释掉或删除 [database] 部分中的任何其他 connection 选项。

      注意

      在此示例中,主机 controller 必须可解析。

    • [token] 部分,配置 Fernet token 提供程序

      [token]
      # ...
      provider = fernet
      
  2. 填充 Identity 服务数据库

    # su -s /bin/sh -c "keystone-manage db_sync" keystone
    
  3. 初始化 Fernet 密钥仓库

    注意

    --keystone-user--keystone-group 标志用于指定将用于运行 keystone 的操作系统用户/组。提供这些标志是为了允许在另一个操作系统用户/组下运行 keystone。在下面的示例中,我们将用户和组称为 keystone

    # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    
  4. 引导 Identity 服务

    注意

    在 Queens 版本发布之前,keystone 需要在两个独立的端口上运行,以适应 Identity v2 API,该 API 在一个独立的仅管理员服务上运行,通常在 35357 端口上。随着 v2 API 的移除,keystone 可以在同一个端口上运行所有接口。

    # keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
      --bootstrap-admin-url http://controller:5000/v3/ \
      --bootstrap-internal-url http://controller:5000/v3/ \
      --bootstrap-public-url http://controller:5000/v3/ \
      --bootstrap-region-id RegionOne
    

    ADMIN_PASS 替换为管理员用户的合适密码。

配置 Apache HTTP 服务器

  1. 编辑 /etc/httpd/conf/httpd.conf 文件,并将 ServerName 选项配置为引用控制器节点

    ServerName controller
    

    如果 ServerName 条目不存在,则需要添加它。

  2. 创建指向 /usr/share/keystone/uwsgi-keystone.conf 文件的链接

    # ln -s /usr/share/keystone/uwsgi-keystone.conf /etc/httpd/conf.d/
    

SSL

安全的部署应该配置 Web 服务器使用 SSL,或者运行在 SSL 终结器之后。

完成安装

  1. 启动 Apache HTTP 服务并配置它在系统启动时启动

    # systemctl enable httpd.service
    # systemctl start httpd.service
    
  1. 通过设置适当的环境变量来配置管理帐户

    $ export OS_USERNAME=admin
    $ export OS_PASSWORD=ADMIN_PASS
    $ export OS_PROJECT_NAME=admin
    $ export OS_USER_DOMAIN_NAME=Default
    $ export OS_PROJECT_DOMAIN_NAME=Default
    $ export OS_AUTH_URL=http://controller:5000/v3
    $ export OS_IDENTITY_API_VERSION=3
    

    这里显示的值是从 keystone-manage bootstrap 创建的默认值。

    ADMIN_PASS 替换为在 keystone-install-configure-rdo 中的 keystone-manage bootstrap 命令中使用的密码。