中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

安装Keystone

Keystone为OpenStack项目中的其他服务组件提供了身份认证和授权功能。请在控制节点安装Keystone。

  1. 创建Keystone数据库并授权。
    1. 以root用户登录数据库。
      mysql -u root -p 
    2. 在数据库中,创建Keystone数据库并授权。
      CREATE DATABASE keystone; 
      GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; 
      GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; 

      将KEYSTONE_DBPASS替换为Keystone数据库用户的密码,请根据实际需求进行设置。密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”。

    3. 退出数据库。
      exit
  2. 安装软件包。
    yum install openstack-keystone httpd mod_wsgi
  3. 配置Keystone配置文件。
    1. 打开“/etc/keystone/keystone.conf”文件。
      vi /etc/keystone/keystone.conf
    2. 按“i”进入编辑模式,添加如下内容。
      [database] 
      connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
       
      [token] 
      provider = fernet
      • [database]字段的内容用于配置数据库参数。
      • [token]字段的内容用于配置token provider。
      • 将KEYSTONE_DBPASS替换为Keystone数据库密码,请根据实际需求进行设置。
    1. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
  4. 同步数据库。
    su -s /bin/sh -c "keystone-manage db_sync" keystone
  5. 初始化Fernet密钥仓库。
    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone 
    keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  6. 启动服务。
    keystone-manage bootstrap --bootstrap-password ADMIN_PASSWORD --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_PASSWORD替换为admin用户设置密码,请根据实际需求设置。注意该密码需和9“OS_PASSWORD=ADMIN_PASSWORD”中的ADMIN_PASSWORD密码保持一致。
    • 密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”
  7. 配置Apache HTTP server。
    1. 编辑“httpd.conf”文件。
      vi /etc/httpd/conf/httpd.conf
    2. 按“i”进入编辑模式,添加如下内容。
      ServerName controller
      • 配置ServerName项引用控制节点。
      • 如果ServerName项不存在则需要创建。
    1. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
    2. 建立软链接。
      ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
  8. 启动Apache HTTP服务。
    systemctl enable httpd.service 
    systemctl start httpd.service
  9. 创建环境变量的配置文件。
    cat << EOF >> ~/.admin-openrc 
    export OS_PROJECT_DOMAIN_NAME=Default 
    export OS_USER_DOMAIN_NAME=Default 
    export OS_PROJECT_NAME=admin 
    export OS_USERNAME=admin 
    export OS_PASSWORD=ADMIN_PASSWORD 
    export OS_AUTH_URL=http://controller:5000/v3 
    export OS_IDENTITY_API_VERSION=3 
    export OS_IMAGE_API_VERSION=2 
    EOF

    将ADMIN_PASSWORD替换为admin用户密码,请根据实际需求进行设置。

  10. 安装OpenStack Client。
    yum install python3-openstackclient
  11. 依次创建domain、projects、users和roles。
    1. 导入环境变量。
      source ~/.admin-openrc
    2. 创建project service,其中domain default在keystone-manage bootstrap时已创建。
      openstack domain create --description "An Example Domain" example 
      openstack project create --domain default --description "Service Project" service
    3. 创建(non-admin)project myproject,user myuser和role myrole,为myproject和myuser添加角色myrole。
      openstack project create --domain default --description "Demo Project" myproject 
      openstack user create --domain default --password-prompt myuser 
      openstack role create myrole 
      openstack role add --project myproject --user myuser myrole
  12. 验证Keystone是否安装成功。
    1. 取消临时环境变量OS_AUTH_URL和OS_PASSWORD。
      source ~/.admin-openrc 
      unset OS_AUTH_URL OS_PASSWORD
    2. 为admin用户请求token。
      openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue
    3. 为myuser用户请求token。
      openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name myproject --os-username myuser token issue