1823 Words

OpenStack Ussuri マニュアルインストールその4―Placement 編

Controller

  • Placement は CPU やメモリの使用率をはじめとするリソース情報を管理するサービス
  • もともとは Nova に含まれていたが分離したらしい

前提条件

OpenStack Docs: Install and configure Placement for Ubuntu - Prerequisites

  1. Placement をインストールする前にデータベースを作成する必要がある

    #root user

    mysql
    
    # 以下は`MariaDB [(none)]>`のプロンプトに入力する
    CREATE DATABASE placement;
    GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
    GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';
    
    • !Caution PLACEMENT_DBPASSは適切なパスワードに書き換える
    • placementデータベースの作成とアクセス権限の付与
  2. admin環境スクリプトの読み込み

    $any user

    . admin-openrc
    
  3. サービス資格情報

    • placementユーザ作成

      $any user

      openstack user create --domain default --password-prompt placement
      # 対話形式のパスワードプロンプトがでる
      User Password:
      Repeat User Password:
      
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | fa742015a6494a949f67629884fc7ec8 |
      | name                | placement                        |
      | options             | {}                               |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
      • !Caution パスワードプロンプトではPLACEMENT_PASSを入力
    • serviceプロジェクト、placementユーザにadminの役割を割り当てる

      $any user

      openstack role add --project service --user placement admin
      
    • placementサービス (name: placement) を作成

      $any user

      openstack service create --name placement --description "Placement API" placement
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Placement API                    |
      | enabled     | True                             |
      | id          | 2d1a27022e6e4185b86adac4444c495f |
      | name        | placement                        |
      | type        | placement                        |
      +-------------+----------------------------------+
      
  4. placementサービスに API エンドポイント作成

    $any user

    openstack endpoint create --region RegionOne placement public http://controller:8778
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 2b1b2637908b4137a9c2e0470487cbc0 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 2d1a27022e6e4185b86adac4444c495f |
    | service_name | placement                        |
    | service_type | placement                        |
    | url          | http://controller:8778           |
    +--------------+----------------------------------+
    

    $any user

    openstack endpoint create --region RegionOne placement internal http://controller:8778
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 02bcda9a150a4bd7993ff4879df971ab |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 2d1a27022e6e4185b86adac4444c495f |
    | service_name | placement                        |
    | service_type | placement                        |
    | url          | http://controller:8778           |
    +--------------+----------------------------------+
    

    $any user

    openstack endpoint create --region RegionOne placement admin http://controller:8778
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 3d71177b9e0f406f98cbff198d74b182 |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 2d1a27022e6e4185b86adac4444c495f |
    | service_name | placement                        |
    | service_type | placement                        |
    | url          | http://controller:8778           |
    +--------------+----------------------------------+
    
    • publicinternaladminにそれぞれ作成

Placement インストール

OpenStack Docs: Install and configure Placement for Ubuntu - Install and configure components

  1. パッケージインストール

    #root user

    apt install placement-api
    
  2. /etc/placement/placement.conf編集

    # ...
    
    [placement_database]
    # ...
    # `PLACEMENT_DBPASS`は適切なパスワードに書き換える
    connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
    
    [api]
    # ...
    # `keystone`を利用することを指定
    auth_strategy = keystone
    
    [keystone_authtoken]
    # 他のオプションはすべて削除またはコメントアウトする
    # `PLACEMENT_DBPASS`は適切なパスワードに書き換える
    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
    
    # ...
    
    • !Caution PLACEMENT_DBPASSは適切なパスワードに書き換える
    • !Caution PLACEMENT_PASSは適切なパスワードに書き換える
  3. Placement データベース同期

    #root user

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

サービス再起動

OpenStack Docs: Install and configure Placement for Ubuntu - Finalize installation

#root user

systemctl restart apache2

動作確認

OpenStack Docs: Verify Installation

  1. ステータスチェック

    #root user

    placement-status upgrade check
    
    +----------------------------------+
    | Upgrade Check Results            |
    +----------------------------------+
    | Check: Missing Root Provider IDs |
    | Result: Success                  |
    | Details: None                    |
    +----------------------------------+
    | Check: Incomplete Consumers      |
    | Result: Success                  |
    | Details: None                    |
    +----------------------------------+
    
    • ドキュメントでは一般ユーザで実行するように書かれているが root ユーザでないとエラーがでるので注意
  2. Placement API インストール

    #root user

    apt install python3-osc-placement
    
    • ドキュメントではpipインストールでの方法が書かれているが、ここだけpipなのもなんだかあれなのでaptインストールでやっておく
  3. admin環境スクリプトの読み込み

    $any user

    . admin-openrc
    
  4. 利用可能なリソース一覧を表示する

    $any user

    openstack --os-placement-api-version 1.2 resource class list --sort-column name
    
    +----------------------------+
    | name                       |
    +----------------------------+
    | DISK_GB                    |
    | IPV4_ADDRESS               |
    | ...                        |
    

    $any user

    openstack --os-placement-api-version 1.6 trait list --sort-column name
    
    +---------------------------------------+
    | name                                  |
    +---------------------------------------+
    | COMPUTE_DEVICE_TAGGING                |
    | COMPUTE_NET_ATTACH_INTERFACE          |
    | ...                                   |
    

おわり

以上で Placement 編終了です
お疲れ様でした

関連記事一覧