1925 Words

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

Controller

  • Glance はイメージ管理サービス
  • libvirt とかでおなじみの/var/lib/libvirt/imagesにあたる

前提条件

OpenStack Docs: Install and configure (Ubuntu) - Prerequisites

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

    #root user

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

    $any user

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

    • glanceユーザ作成

      $any user

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

      $any user

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

      $any user

      openstack service create --name glance --description "OpenStack Image" image
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Image                  |
      | enabled     | True                             |
      | id          | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
      | name        | glance                           |
      | type        | image                            |
      +-------------+----------------------------------+
      
  4. imageサービスに API エンドポイント作成

    $any user

    openstack endpoint create --region RegionOne image public http://controller:9292
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 340be3625e9b4239a6415d034e98aace |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
    | service_name | glance                           |
    | service_type | image                            |
    | url          | http://controller:9292           |
    +--------------+----------------------------------+
    

    $any user

    openstack endpoint create --region RegionOne image internal http://controller:9292
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | a6e4b153c2ae4c919eccfdbb7dceb5d2 |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
    | service_name | glance                           |
    | service_type | image                            |
    | url          | http://controller:9292           |
    +--------------+----------------------------------+
    

    $any user

    openstack endpoint create --region RegionOne image admin http://controller:9292
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 0c37ed58103f4300a84ff125a539032d |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
    | service_name | glance                           |
    | service_type | image                            |
    | url          | http://controller:9292           |
    +--------------+----------------------------------+
    
    • publicinternaladminにそれぞれ作成

Glance インストール

OpenStack Docs: Install and configure (Ubuntu) - Install and configure components

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

    #root user

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

    # ...
    
    [database]
    # ...
    # `GLANCE_DBPASS`は適切なパスワードに書き換える
    connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
    
    [keystone_authtoken]
    # 他のオプションはすべて削除またはコメントアウトする
    # `GLANCE_PASS`は適切なパスワードに書き換える
    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 = glance
    password = GLANCE_PASS
    
    [paste_deploy]
    # ...
    # `keystone`を利用することを指定
    flavor = keystone
    
    [glance_store]
    # ...
    # イメージの保存に関する設定
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
    
    # ...
    
    • !Caution GLANCE_DBPASSは適切なパスワードに書き換える
    • !Caution GLANCE_PASSは適切なパスワードに書き換える
  3. Glance データベース同期

    #root user

    su -s /bin/sh -c "glance-manage db_sync" glance
    

サービス再起動

OpenStack Docs: Install and configure (Ubuntu) - Finalize installation

#root user

systemctl restart glance-api

動作確認

OpenStack Docs: Verify operation

  1. admin環境スクリプトの読み込み

    $any user

    . admin-openrc
    
  2. Cirros イメージをダウンロード

    $any user

    wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    
    • ちなみに Cirros は非常に小さい Linux でよく検証用に使われる
  3. Cirros イメージをQCOW2ディスク形式、ベアコンテナ形式で Glance に登録
    $any user

    openstack image create "cirros" \
        --file cirros-0.4.0-x86_64-disk.img \
        --disk-format qcow2 \
        --container-format bare \
        --public
    
    +------------------+------------------------------------------------------+
    | Field            | Value                                                |
    +------------------+------------------------------------------------------+
    | checksum         | 133eae9fb1c98f45894a4e60d8736619                     |
    | container_format | bare                                                 |
    | created_at       | 2015-03-26T16:52:10Z                                 |
    | disk_format      | qcow2                                                |
    | file             | /v2/images/cc5c6982-4910-471e-b864-1098015901b5/file |
    | id               | cc5c6982-4910-471e-b864-1098015901b5                 |
    | min_disk         | 0                                                    |
    | min_ram          | 0                                                    |
    | name             | cirros                                               |
    | owner            | ae7a98326b9c455588edd2656d723b9d                     |
    | protected        | False                                                |
    | schema           | /v2/schemas/image                                    |
    | size             | 13200896                                             |
    | status           | active                                               |
    | tags             |                                                      |
    | updated_at       | 2015-03-26T16:52:10Z                                 |
    | virtual_size     | None                                                 |
    | visibility       | public                                               |
    +------------------+------------------------------------------------------+
    
    • ドキュメントではglanceコマンドで書いてあるがopenstackコマンドでやってみる
    • --publicを指定しているのですべてのプロジェクトからアクセスできる
    • --privateなどに変えるとアクセス権限が変えられるはず
  4. 確認

    $any user

    openstack image list
    
    +--------------------------------------+--------+--------+
    | ID                                   | Name   | Status |
    +--------------------------------------+--------+--------+
    | 38047887-61a7-41ea-9b49-27987d5e8bb9 | cirros | active |
    +--------------------------------------+--------+--------+
    
    • ドキュメントではglanceコマンドで書いてあるがopenstackコマンドでやってみる

おわり

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

関連記事一覧