第2章 Trove の使用

2.1. Trove ゲストデータベースイメージの作成および設定の自動化

trove-image-create ツールは、サポートされているデータストア向けの Trove 互換イメージの生成を自動化します。このツールの使用は、Red Hat が推奨しています。

trove-image-create ツールを取得して、openstack-trove-imagesパッケージをインストールします。

# yum install openstack-trove-images

以下の基本オプションを利用することができます。

オプション説明、パラメーター

-i--image

使用するベースイメージ。QEMU イメージ (qcow2) がサポートされています。イメージファイル名 (およびオプションでそのパス) をパラメーターとして指定します。

-r--release

使用するOpenStack バージョン。kilo または liberty のいずれかをパラメーターとして指定します。

-s--datastore

デプロイするデータストア。サポート対象のデータストアは、前書きに一覧表示しています。以下のようなパラメーターを使用する可能性があります。

  • mysql: ディストリビューションで mysql を提供するパッケージ。RHEL 7 の場合には MariaDB 5.5 が使用されます。
  • mysql55:  mysql.com から提供されている MySQL 5.5
  • mysql56:  mysql.com から提供される MySQL 5.6
  • mariadb10: mariadb.org から提供されている MariaDB 10.0

例2.1 イメージのカスタマイズ

たとえば、以下のようにツールを使用することができます。

# trove-image-create -s mysql -r liberty -i myimage.qcow2

このコマンドにより、Red Hat OpenStack Platform 8 (Liberty) から MariaDB 5.5 および Trove が追加され、現在の作業ディレクトリー内の myimage.qcow2 ファイルに保管されているイメージがカスタマイズされます

RHEL 7 イメージを使用して作業を行う場合には、使用する必要のある追加のオプションがあります。

オプション認識されるパラメーターおよび構文説明

--sm-register

USER:password:PASSWORD
USER:file:FILE_CONTAINING_PASSWORD

Red Hat の認証情報を使用して、サブスクリプションマネージャーに登録します。

--sm-pool

pool:POOL_ID
file:FILE_CONTAINING_POOL_ID
auto

指定または自動的に決定されたサブスクリプションプールをシステムにアタッチします。

例2.2 RHEL 7 イメージのカスタマイズ

# trove-image-create -s mysql -r liberty -i ../../images/rhel-mariadb55.qcow2 --sm-register admin@example.com:password:123456 --sm-pool auto

このコマンドは、上記の例と同様の方法でイメージをカスタマイズするとともに、Red Hat ログイン名 admin@example.com、パスワード 123456、および最も適したサブスクリプションを使用してシステムを登録します。

2.1.1. Trove 管理へのイメージの読み込み

イメージのカスタマイズが完了したら、以下のステップを実行してください。

  1. イメージを Glance にアップロードします。そのためには、以下と同様のコマンドを実行します。

    # openstack image create rhel7-mariadb55 --disk-format qcow2 --container-format bare --public < myimage.qcow2
  2. 上記のコマンドの出力から、アップロードしたイメージの ID を取得します。以下のような出力が表示されるはずです。

    +------------------+------------------------------------------------------+
    | Field            | Value                                                |
    +------------------+------------------------------------------------------+
    | checksum         | dec3f16054739459d03984b7a552cd9c                     |
    | container_format | bare                                                 |
    | created_at       | 2016-01-27T20:10:36Z                                 |
    | disk_format      | qcow2                                                |
    | file             | /v2/images/c637391b-e00f-47fb-adb5-e8dfc4e224d4/file |
    | id               | c637391b-e00f-47fb-adb5-e8dfc4e224d4                 |
    | min_disk         | 0                                                    |
    | min_ram          | 0                                                    |
    | name             | rhel7-mariadb55                                      |
    | owner            | 483cae7de00c4f029e19eef5983c67a9                     |
    | protected        | False                                                |
    | schema           | /v2/schemas/image                                    |
    | size             | 1910767616                                           |
    | status           | active                                               |
    | updated_at       | 2016-01-27T20:10:46Z                                 |
    | virtual_size     | None                                                 |
    | visibility       | public                                               |
    +------------------+------------------------------------------------------+

    この場合、ID は c637391b-e00f-47fb-adb5-e8dfc4e224d4 です。

  3. Trove 管理データストアを更新して、必要なデータストアとバージョンのインスタンスを起動するのに使用される新規イメージのレコードを追加します。

    # export DATASTORE=mariadb
    # export DATASTORE_VERSION=5.5
    # export IMAGE_ID=c637391b-e00f-47fb-adb5-e8dfc4e224d4
    # export PACKAGES=mariadb-server
    #
    # trove-manage datastore_update ${DATASTORE} ""
    # trove-manage datastore_version_update ${DATASTORE} ${DATASTORE_VERSION} ${DATASTORE} ${IMAGE_ID} ${PACKAGES} 1
    # trove-manage datastore_update ${DATASTORE} ${DATASTORE_VERSION}
    重要

    PACKAGES 変数は、使用するデータストアによって異なります。MySQL (任意のバージョン) の場合には、mysql-community-server を使用します。MariaDB 10.0 の場合には、MariaDB-server を使用します。

2.1.2. トラブルシューティング

インスタンスの起動時にエラーが発生した場合には、SSH キーを使用してイメージを作成し、トラブルシューティングに使用することができます。trove-image-create ツールには、この目的のために --root-ssh-key オプションがあります。このオプションは、公開鍵へのパスをパラメーターとして取り、イメージに鍵を挿入します。以下に例を示します。

# trove-image-create -i myimage.qcow2 -r liberty -s mysql --root-ssh-key ~/.ssh/id_rsa.pub

このイメージをベースとしたインスタンスにアクセスするには、インスタンスに関連付けられたセキュリティーグループを編集して、SSH ポートを開放します。ICMP を許可することも検討してください。また、インスタンスがプライベートネットワークにある場合には、Floating IP をインスタンスに追加する必要があります。これらのステップが完了した後には、以下のコマンドを実行するとインスタンスにログインできるはずです。

# ssh root@INSTANCE_IP