OpenStack Victoria搭建(七)安装并验证 Placement

介绍

✔ 笔记
在 Stein 发布之前,放置代码与计算 REST API 代码 (nova-api) 一起在 Nova 中。确保本文档的发布版本与您要部署的发布版本匹配。

步骤概述

  1. 部署API服务
    Placement 提供了一个placement-apiWSGI 脚本,用于使用 Apachenginx 或其他支持 WSGI 的 Web 服务器运行服务。根据用于部署 OpenStack 的打包解决方案,WSGI 脚本可能位于 /usr/bin/usr/local/bin
    placement-api,作为标准的 WSGI 脚本,提供了 application大多数 WSGI 服务器期望找到的模块级属性。这意味着可以在许多不同的服务器上运行它,从而在面对不同的部署场景时提供灵活性。常见的场景包括:

    • 带有mod_wsgi的apache2

    • apache2 与mod_proxy_uwsgi

    • nginx与uwsgi

    • nginx 与gunicorn

    在所有这些场景中,应用程序的主机、端口和安装路径(或前缀)都在 Web 服务器的配置中控制,而不是在placement.conf放置应用程序的配置 ( ) 中。

    当放置第一次添加到 DevStack时,它使用了mod_wsgi样式。后来它被更新为使用mod_proxy_uwsgi。查看这些更改有助于理解相关选项。

    DevStack 配置为在/placementhttp 或 https (80或443) 的默认端口上托管放置,具体取决于是否使用 TLS。使用默认端口是可取的。

    默认情况下,放置应用程序将从/etc/placement/placement.conf. 可以通过 OS_PLACEMENT_CONFIG_DIR在启动应用程序的进程的环境中设置来更改配置文件所在的目录。随着最近的版本oslo.config,配置选项也可以在环境中设置。

    笔记
    当使用带有前端(例如,apache2 或 nginx)的 uwsgi 时,需要确保 uwsgi 进程正在运行。在 DevStack 中,这是通过systemd完成的。这是管理 uwsgi 的许多不同方法之一。

    本文档不声明放置服务的一组安装说明。这是因为拥有 WSGI 应用程序的一个重点是使部署尽可能灵活。因为放置 API 服务本身是无状态的(所有状态都在数据库中),所以可以在负载平衡解决方案后面部署任意数量的服务器,以实现强大而简单的扩展。如果您熟悉安装通用 WSGI 应用程序(使用上面常见场景列表中的链接),那么这些技术将适用于此处。

  2. 同步数据库

    放置服务使用自己的数据库,在 placement_database配置部分定义。必须设置该 placement_database.connection选项,否则服务将无法启动。命令行工具placement-manage 可用于将数据库表迁移到正确的形式,包括创建它们。该选项描述的数据库必须已经存在并定义了适当的访问控制。connection

    同步的另一个选项是在配置中 placement_database.sync_on_startup设置True。这将在放置 Web 服务启动时执行所有丢失的数据库迁移。您是选择自动同步还是使用命令行工具取决于您的环境和部署工具的限制。

    ⚠ 警告
    在 Stein 版本中,放置代码是从 nova 中提取的。如果要升级以使用提取的展示位置,则需要将展示位置数据从nova_api数据库迁移到placement数据库。您可以在放置存储库中找到可能对此有所帮助的示例脚本: mysql-migrate-db.sh和postgresql-migrate-db.sh。另请参阅升级说明。

    ✔ 笔记
    升级到 Stein 时,与其他 OpenStack 服务同时升级到提取的位置是一个选项,但不是必需的。nova 代码将继续在其 Stein 版本中提供放置服务的副本。但是,此副本将在 Train 中删除,并且需要在升级到 Train 之前切换到提取的版本(可能在上述脚本的帮助下)。

  3. 创建账户并更新服务目录

    在 Keystone 中创建一个具有管理员角色的放置服务用户。

    放置 API 是一个单独的服务,因此应该在服务目录中的放置服务类型下注册。放置的客户端,例如 nova-compute 节点中的资源跟踪器,将使用服务目录来查找放置端点。

    有关创建服务用户和目录条目的示例,请参阅配置用户和端点。

    /placementDevstack 在默认 HTTP 端口 (80) 上使用前缀而不是使用独立端口设置放置服务 。

安装包

本节提供有关从 Linux 分发包安装放置的说明。

⚠ 警告
这些安装文档正在进行中。提到的某些分发包尚不可用,因此这些说明将不起作用。

放置服务提供了一个HTTP API,用于跟踪资源提供者的清单和使用情况。更多细节可以在安置概览中找到。

Placement 作为数据模型上的 Web 服务运行。安装涉及创建必要的数据库以及安装和配置 Web 服务。这是一个简单的过程,但是有很多步骤可以将布局与 OpenStack 云的其余部分集成。

✔ 笔记
一些其他 OpenStack 服务需要放置,特别是 nova,因此它应该安装在其他服务之前,但在 Identity(keystone)之后。


创建数据库、服务凭证和 API 端点。

此操作在 controller 节点上进行。

1. 创建数据库

  1. 使用数据库访问客户端以root用户身份连接数据库服务器:
    mysql -u root -p
    
  2. 创建placement数据库:
    MariaDB [(none)]> CREATE DATABASE placement;
    
  3. 授予对数据库的适当访问权限:
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
      IDENTIFIED BY 'PLACEMENT_DBPASS';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
      IDENTIFIED BY 'PLACEMENT_DBPASS';
    
  4. 退出数据库访问客户端。

2. 配置用户和端点

  1. 获取admin凭据以访问仅限管理员的 CLI 命令:

    source ./admin_openrc
    
  2. 使用您选择的创建放置服务用户PLACEMENT_PASS:

    openstack user create --domain default --password-prompt placement
    

    在这里插入图片描述

  3. 将 Placement 用户添加到具有管理员角色的服务项目中:

    openstack role add --project service --user placement admin
    

    ✔ 笔记
    此命令不提供任何输出。

  4. 在服务目录中创建 Placement API 条目:

    openstack service create --name placement \
      --description "Placement API" placement
    

    在这里插入图片描述

  5. 创建 Placement API 服务端点:

    ✔ 笔记
    根据您的环境,端点的 URL 会因端口(可能是 8780 而不是 8778,或者根本没有端口)和主机名而异。您有责任确定正确的 URL。

    openstack endpoint create --region RegionOne \
      placement public http://controller:8778
    

    在这里插入图片描述

    openstack endpoint create --region RegionOne \
      placement internal http://controller:8778
    

    在这里插入图片描述

    openstack endpoint create --region RegionOne \
      placement admin http://controller:8778
    

    在这里插入图片描述

3. 安装和配置组件

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

  1. 安装软件包

    yum install openstack-placement-api -y
    
  2. 配置
    编辑 /etc/placement/placement.conf 文件并完成以下操作:

    • 在该[placement_database]部分中,配置数据库访问:

      [placement_database]
      # ...
      connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
      

      替换PLACEMENT_DBPASS为您为放置数据库选择的密码。

    • 在[api]和[keystone_authtoken]部分中,配置身份服务访问:

      [api]
      # ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      # ...
      auth_url = http://controller:5000/v3
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      project_name = service
      username = placement
      password = PLACEMENT_PASS
      

      替换为您在身份服务中PLACEMENT_PASS为用户选择的密码 。placement

      ✔ 笔记
      注释掉或删除该[keystone_authtoken] 部分中的任何其他选项。

      ✔ 笔记
      user_name、password和的值需要与您的 keystone 配置同步project_domain_name。 user_domain_name

  3. 填充placement数据库

    su -s /bin/sh -c "placement-manage db sync" placement
    

    ✔ 笔记
    忽略此输出中的任何弃用消息。

  4. 修改配置文件 /etc/httpd/conf.d/00-placement-api.conf
    在文件的最后添加:

    <Directory /usr/bin>
    	<IfVersion >= 2.4>
    		Require all granted
    	</IfVersion>
    	<IfVersion < 2.4>
    		Order allow,deny
    		Allow from all
    	</IfVersion>
    </Directory>
    

    添加后如下:
    在这里插入图片描述

4. 完成安装

重启httpd服务

systemctl restart httpd

验证安装

✔ 笔记
admin在进行这些调用之前,您需要对身份服务进行身份验证 。有许多不同的方法可以做到这一点,具体取决于您的系统是如何设置的。如果你没有admin-openrc文件,你会有类似的东西。

  1. 获取admin凭据以访问仅限管理员的 CLI 命令:

    source ./admin_openrc
    
  2. 执行状态检查以确保一切正常:

    placement-status upgrade check
    

    该命令的输出会因版本而异。
    在这里插入图片描述

  3. 针对放置 API 运行一些命令:

    • 安装osc-placement插件:

      ✔ 笔记
      此示例使用PyPI和pip,但如果您使用的是分发包,则可以从其存储库安装包。迁移到 python3 后,您将需要指定pip3或从您的发行版安装python3-osc-placement 。

      pip3 install osc-placement
      
    • 列出可用的资源类和特征:

      openstack --os-placement-api-version 1.2 resource class list --sort-column name
      

      在这里插入图片描述

      openstack --os-placement-api-version 1.6 trait list --sort-column name
      

      在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值