Ubuntu 安装与配置

本节描述了如何在 Ubuntu 16.04 (LTS) 上安装和配置基础设施优化服务。

先决条件

在安装和配置基础设施优化服务之前,您必须创建一个数据库、服务凭证和 API 端点。

  1. 创建数据库,请完成以下步骤

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

      # mysql
      
    • 创建 watcher 数据库

      CREATE DATABASE watcher CHARACTER SET utf8;
      
    • 授予对 watcher 数据库的适当访问权限

      GRANT ALL PRIVILEGES ON watcher.* TO 'watcher'@'localhost' \
        IDENTIFIED BY 'WATCHER_DBPASS';
      GRANT ALL PRIVILEGES ON watcher.* TO 'watcher'@'%' \
        IDENTIFIED BY 'WATCHER_DBPASS';
      

      WATCHER_DBPASS 替换为合适的密码。

    • 退出数据库访问客户端。

      exit;
      
  2. 激活 admin 凭证以访问仅管理员可用的 CLI 命令

    $ . admin-openrc
    
  3. 要创建服务凭证,请完成以下步骤

    • 创建 watcher 用户

      $ openstack user create --domain default --password-prompt watcher
        User Password:
        Repeat User Password:
        +---------------------+----------------------------------+
        | Field               | Value                            |
        +---------------------+----------------------------------+
        | domain_id           | default                          |
        | enabled             | True                             |
        | id                  | b18ee38e06034b748141beda8fc8bfad |
        | name                | watcher                          |
        | options             | {}                               |
        | password_expires_at | None                             |
        +---------------------+----------------------------------+
      
    • admin 角色添加到 watcher 用户

      $ openstack role add --project service --user watcher admin
      

      注意

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

    • 创建 watcher 服务实体

      $ openstack service create --name watcher --description "Infrastructure Optimization" infra-optim
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | Infrastructure Optimization      |
        | enabled     | True                             |
        | id          | d854f6fff0a64f77bda8003c8dedfada |
        | name        | watcher                          |
        | type        | infra-optim                      |
        +-------------+----------------------------------+
      
  4. 创建基础设施优化服务 API 端点

    $ openstack endpoint create --region RegionOne \
      infra-optim public http://controller:9322
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Infrastructure Optimization      |
      | enabled     | True                             |
      | id          | d854f6fff0a64f77bda8003c8dedfada |
      | name        | watcher                          |
      | type        | infra-optim                      |
      +-------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      infra-optim internal http://controller:9322
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 225aef8465ef4df48a341aaaf2b0a390 |
      | interface    | internal                         |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | d854f6fff0a64f77bda8003c8dedfada |
      | service_name | watcher                          |
      | service_type | infra-optim                      |
      | url          | http://controller:9322           |
      +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      infra-optim admin http://controller:9322
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 375eb5057fb546edbdf3ee4866179672 |
      | interface    | admin                            |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | d854f6fff0a64f77bda8003c8dedfada |
      | service_name | watcher                          |
      | service_type | infra-optim                      |
      | url          | http://controller:9322           |
      +--------------+----------------------------------+
    

安装和配置组件

  1. 安装软件包

    # apt install watcher-api watcher-decision-engine \
      watcher-applier
    
    # apt install python-watcherclient
    
  1. 编辑 /etc/watcher/watcher.conf 文件并完成以下操作

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

      [database]
      ...
      connection = mysql+pymysql://watcher:WATCHER_DBPASS@controller/watcher?charset=utf8
      
    • [DEFAULT] 部分,配置 RabbitMQ 消息代理的传输 URL。

      [DEFAULT]
      ...
      control_exchange = watcher
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      将 RABBIT_PASS 替换为您在 RabbitMQ 中为 OpenStack 用户选择的密码。

    • [keystone_authtoken] 部分,配置身份服务访问。

      [keystone_authtoken]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = watcher
      password = WATCHER_PASS
      

      将 WATCHER_PASS 替换为您在 Identity 服务中为 watcher 用户选择的密码。

    • Watcher 通过项目客户端与其他 OpenStack 项目交互,为了实例化这些客户端,Watcher 从 Identity 服务请求新的会话。在 [watcher_clients_auth] 部分,配置 Identity 服务访问以与其它 OpenStack 项目客户端交互。

      [watcher_clients_auth]
      ...
      auth_type = password
      auth_url = http://controller:5000
      username = watcher
      password = WATCHER_PASS
      project_domain_name = default
      user_domain_name = default
      project_name = service
      

      将 WATCHER_PASS 替换为您在 Identity 服务中为 watcher 用户选择的密码。

    • [api] 部分,配置 host 选项。

      [api]
      ...
      host = controller
      

      将 controller 替换为您的控制器节点上管理网络接口的 IP 地址,通常对于示例架构中的第一个节点为 10.0.0.11。

    • [oslo_messaging_notifications] 部分,配置消息传递驱动程序。

      [oslo_messaging_notifications]
      ...
      driver = messagingv2
      
  2. 填充 watcher 数据库

    su -s /bin/sh -c "watcher-db-manage --config-file /etc/watcher/watcher.conf upgrade"
    

完成安装

启动基础设施优化服务并配置它们在系统启动时启动

# systemctl enable watcher-api.service \
  watcher-decision-engine.service \
  watcher-applier.service

# systemctl start watcher-api.service \
  watcher-decision-engine.service \
  watcher-applier.service