Ubuntu 安装与配置

本节描述了如何在 Ubuntu 18.04 (bionic) 上安装和配置 Masakari。

先决条件

在安装和配置 masakari 服务之前,您必须创建数据库、服务凭证和 API 端点。

  1. 要创建 masakari 数据库,请按照以下步骤操作

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

      # mysql
      
    • 创建 masakari 数据库

      mysql> CREATE DATABASE masakari CHARACTER SET utf8;
      
    • 授予数据库访问权限

      mysql> GRANT ALL PRIVILEGES ON masakari.* TO 'username'@'localhost' \
        IDENTIFIED BY 'MASAKARI_DBPASS';
      mysql> GRANT ALL PRIVILEGES ON masakari.* TO 'username'@'%' \
        IDENTIFIED BY 'MASAKARI_DBPASS';
      

      MASAKARI_DBPASS 替换为合适的密码。

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

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

    $ . admin-openrc
    
  3. 创建 Masakari 服务凭证

    • 创建密码为 masakarimasakari 用户

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

      $ openstack role add --project service --user masakari admin
      
    • 创建 masakari 服务实体

      $ openstack service create --name masakari \
      --description "masakari high availability" instance-ha
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | masakari high availability       |
      | enabled     | True                             |
      | id          | 060d59eac51b4594815603d75a00aba2 |
      | name        | masakari                         |
      | type        | instance-ha                      |
      +-------------+----------------------------------+
      
  4. 创建 Masakari API 服务端点

    $ openstack endpoint create --region RegionOne \
      masakari public http://<CONTROLLER_IP>/instance-ha/v1/$\(tenant_id\)s
    
    +--------------+-------------------------------------------------------+
    | Field        | Value                                                 |
    +--------------+-------------------------------------------------------+
    | enabled      | True                                                  |
    | id           | 38f7af91666a47cfb97b4dc790b94424                      |
    | interface    | public                                                 |
    | region       | RegionOne                                             |
    | region_id    | RegionOne                                             |
    | service_id   | 060d59eac51b4594815603d75a00aba2                      |
    | service_name | masakari                                              |
    | service_type | instance-ha                                           |
    | url          | http://<CONTROLLER_IP>/instance-ha/v1/$(tenant_id)s   |
    +--------------+-------------------------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      masakari internal http://<CONTROLLER_IP>/instance-ha/v1/$\(tenant_id\)s
    
    +--------------+-------------------------------------------------------+
    | Field        | Value                                                 |
    +--------------+-------------------------------------------------------+
    | enabled      | True                                                  |
    | id           | 38f7af91666a47cfb97b4dc790b94424                      |
    | interface    | internal                                              |
    | region       | RegionOne                                             |
    | region_id    | RegionOne                                             |
    | service_id   | 060d59eac51b4594815603d75a00aba2                      |
    | service_name | masakari                                              |
    | service_type | instance-ha                                           |
    | url          | http://<CONTROLLER_IP>/instance-ha/v1/$(tenant_id)s   |
    +--------------+-------------------------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      masakari admin http://<CONTROLLER_IP>/instance-ha/v1/$\(tenant_id\)s
    
    +--------------+-------------------------------------------------------+
    | Field        | Value                                                 |
    +--------------+-------------------------------------------------------+
    | enabled      | True                                                  |
    | id           | 38f7af91666a47cfb97b4dc790b94424                      |
    | interface    | admin                                                 |
    | region       | RegionOne                                             |
    | region_id    | RegionOne                                             |
    | service_id   | 060d59eac51b4594815603d75a00aba2                      |
    | service_name | masakari                                              |
    | service_type | instance-ha                                           |
    | url          | http://<CONTROLLER_IP>/instance-ha/v1/$(tenant_id)s   |
    +--------------+-------------------------------------------------------+
    

安装和配置 Masakari

注意

  • 您必须仅在 Controller 节点上安装 Masakari。

  1. 使用以下命令克隆 masakari

    # git clone https://opendev.org/openstack/masakari.git
    
  2. 准备 masakari 配置文件

    1. 通过 tox 生成

      转到 /opt/stack/masakari 并执行以下命令。 这将在 /opt/stack/masakari/etc/masakari/ 处生成一个示例配置文件 masakari.conf.sample

      # tox -egenconfig
      
    2. 从以下位置下载

      # masakari.conf.sample

    3. masakari.conf.sample 文件重命名为 masakari.conf,并根据以下所示编辑部分

      [DEFAULT]
      transport_url = rabbit://stackrabbit:admin@<CONTROLLER_IP>:5672/
      graceful_shutdown_timeout = 5
      os_privileged_user_tenant = service
      os_privileged_user_password = admin
      os_privileged_user_auth_url = http://<CONTROLLER_IP>/identity
      os_privileged_user_name = nova
      logging_exception_prefix = %(color)s%(asctime)s.%(msecs)03d TRACE %(name)s [01;35m%(instance)s[00m
      logging_debug_format_suffix = [00;33mfrom (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d[00m
      logging_default_format_string = %(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [[00;36m-%(color)s] [01;35m%(instance)s%(color)s%(message)s[00m
      logging_context_format_string = %(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [[01;36m%(request_id)s [00;36m%(project_name)s %(user_name)s%(color)s] [01;35m%(instance)s%(color)s%(message)s[00m
      use_syslog = False
      debug = True
      masakari_api_workers = 2
      
      [database]
      connection = mysql+pymysql://root:admin@1<CONTROLLER_IP>/masakari?charset=utf8
      
      [keystone_authtoken]
      memcached_servers = localhost:11211
      cafile = /opt/stack/data/ca-bundle.pem
      project_domain_name = Default
      project_name = service
      user_domain_name = Default
      password = <MASAKARI_PASS>
      username = masakari
      auth_url = http://<CONTROLLER_IP>/identity
      auth_type = password
      
      [taskflow]
      connection = mysql+pymysql://root:admin@<CONTROLLER_IP>/masakari?charset=utf8
      

      注意

      CONTROLLER_IP 替换为控制器节点的 IP 地址。

      MASAKARI_PASS 替换为您在 Identity 服务中为 masakari 用户选择的密码。

    4. 在 /etc/ 中创建 masakari 目录

      masakari.conf 文件复制到 /etc/masakari/

      # cp -p etc/masakari/masakari.conf.sample /etc/masakari/masakari.conf
      
  3. 要安装 masakari,请从 masakari 运行 setup.py

    # cd masakari
    # sudo python -m pip install -r requirements.txt
    # sudo python setup.py install
    
  4. 运行以下 db 命令以同步数据库

    # masakari-manage db sync
    

完成安装

  • 启动 masakari 服务

    # masakari-api
    # masakari-engine