Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
5.4. Image サービスの設定
Image サービスを設定するには、以下のタスクを完了しておく必要があります。
- Image サービスの認証のための Identity サービスの設定 (データベースエントリーの作成、接続文字列の設定、設定ファイルの更新)
- ディスクイメージストレージバックエンドの設定 (本ガイドでは Object Storage サービスを使用)
- Image サービスへのアクセスのためのファイアウォール設定
- TLS/SSL の設定
- Image サービスデータベースへのデータ投入
5.4.1. Image サービスのデータベース接続の設定
Image サービスによって使用されるデータベース接続文字列は、
/etc/glance/glance-api.conf および /etc/glance/glance-registry.conf のファイルで定義されます。サービスを起動する前に、有効なデータベースサーバーをポイントするように更新しておく必要があります。
以下の手順に記載するステップはすべて、Image サービスをホストするサーバーに
root ユーザーとしてログインして実行する必要があります。
手順5.2 Image サービスの SQL データベース接続の設定
glance-api.confファイルでsql_connectionの設定キーの値を設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT sql_connection mysql://USER:PASS@IP/DB以下の値を置き換えてください。- USER は、Image サービスのデータベースのユーザー名 (通常は
glance) に置き換えます。 - PASS は選択したデータベースユーザーのパスワードに置き換えます。
- IP は、データベースサービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。
- DB は、Image サービスのデータベースの名前 (通常は
glance) に置き換えます。
glance-registry.confファイルでsql_connectionの設定キーの値を設定します。#openstack-config --set /etc/glance/glance-registry.conf \DEFAULT sql_connection mysql://USER:PASS@IP/DBUSER、PASS、IP、DB は、上記のステップで使用した値と同じ値に置き換えます。
重要
この接続設定キーに指定する IP アドレスまたはホスト名は、Image サービスのデータベースの作成時に Image サービスのデータベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、Image サービスのデータベースの作成時に「localhost」へのアクセス権を付与した場合には、「localhost」と入力する必要があります。
5.4.2. Image サービス用のアイデンティティーレコードの作成
Image サービスで必要な Identity サービスのレコードを作成して設定します。これらのエントリーは、Image サービスによって提供されるボリューム機能を検索してアクセスを試みる他の OpenStack サービスを補助します。
以下の手順では、管理ユーザーと
services テナントが作成済みであることを前提としています。詳しい説明は、以下のリンクを参照してください。
以下の手順は、Identity サービスのサーバーまたは
keystonerc_admin ファイルをコピーして keystone コマンドラインユーティリティーをインストールした任意のマシンで実行してください。
手順5.3 Image サービス用のアイデンティティーレコードの作成
- Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
#source ~/keystonerc_admin glanceユーザーを作成します。[(keystone_admin)]#openstack user create --password PASSWORD glance+----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | b1f665b15a7943ccb4668c9e78e98a7c | | name | glance | | username | glance | +----------+----------------------------------+PASSWORD は、Image サービスが Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。servicesテナントのコンテキスト内で、glanceユーザーとadminロールを関連付けます。[(keystone_admin)]#openstack role add --project services --user glance adminglanceの Image サービスのエントリーを作成します。[(keystone_admin)]#openstack service create --name glance \--description "Glance Image Service" \imageglanceエンドポイントエントリーを作成します。[(keystone_admin)]#openstack endpoint create \--publicurl 'http://IP:9292' \--adminurl 'http://IP:9292' \--internalurl 'http://IP:9292' \--region RegionOne \glanceIP は、Image サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。
5.4.3. Image サービスの認証の設定
Image サービスが認証に Identity サービスを使用するように設定します。以下の手順に記載するステップはすべて、Image サービスをホストする各システムに
root ユーザーとしてログインして実行する必要があります。
手順5.4 Image サービスが Identity サービスを使用して認証を行うための設定
glance-apiサービスを設定します。#openstack-config --set /etc/glance/glance-api.conf \paste_deploy flavor keystone#openstack-config --set /etc/glance/glance-api.conf \keystone_authtoken auth_host IP#openstack-config --set /etc/glance/glance-api.conf \keystone_authtoken auth_port 35357#openstack-config --set /etc/glance/glance-api.conf \keystone_authtoken auth_protocol http#openstack-config --set /etc/glance/glance-api.conf \keystone_authtoken admin_tenant_name services#openstack-config --set /etc/glance/glance-api.conf \keystone_authtoken admin_user glance#openstack-config --set /etc/glance/glance-api.conf \keystone_authtoken admin_password PASSWORDglance-registryサービスを設定します。#openstack-config --set /etc/glance/glance-registry.conf \paste_deploy flavor keystone#openstack-config --set /etc/glance/glance-registry.conf \keystone_authtoken auth_host IP#openstack-config --set /etc/glance/glance-registry.conf \keystone_authtoken auth_port 35357#openstack-config --set /etc/glance/glance-registry.conf \keystone_authtoken auth_protocol http#openstack-config --set /etc/glance/glance-registry.conf \keystone_authtoken admin_tenant_name services#openstack-config --set /etc/glance/glance-registry.conf \keystone_authtoken admin_user glance#openstack-config --set /etc/glance/glance-registry.conf \keystone_authtoken admin_password PASSWORD
以下の値を置き換えてください。
- IP は、Identity サーバーの IP アドレスまたはホスト名に置き換えます。
- services は、Image サービス用に作成されたテナントの名前に置き換えます (上記の例では、この値を
servicesに設定)。 - glance は、Image サービス用に作成されたサービスユーザーの名前に置き換えます (上記の例では、この値を
glanceに設定)。 - PASSWORD は、サービスユーザーに関連付けられたパスワードに置き換えます。
5.4.4. Object Storage サービスをイメージの保管に使用する方法
デフォルトでは、Image サービスはストレージバックエンドにローカルファイルシステム (
file) を使用しますが、アップロードしたディスクイメージを保管するには、次にあげるいずれかのストレージバックエンドを使用することができます。
file: イメージサーバーのローカルファイルシステム (/var/lib/glance/images/ディレクトリー)swift: OpenStack Object Storage サービス
注記
以下の設定手順では、
openstack-config コマンドを使用します。ただし、/etc/glance/glance-api.conf ファイルを手動で更新することもできます。このファイルを手動で更新する場合は、default_store パラメーターが正しいバックエンドに設定されていることを確認し (例: 'default_store=rbd')、バックエンドのセクションのパラメーターを更新します ('RBD Store Options' のセクション)。
手順5.5 Image サービスが Object Storage サービスを使用するように設定する手順
default_store設定キーをswiftに設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT default_store swiftswift_store_auth_address設定キーを Identity サービスのパブリックエンドポイントに設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT swift_store_auth_address http://IP:5000/v2.0/- Object Storage サービスでイメージを保管するコンテナーを追加します。
#openstack-config --set /etc/glance/glance-api.conf \DEFAULT swift_store_create_container_on_put True swift_store_user設定キーは、認証に使用するテナントとユーザーが含まれるように、TENANT:USER: の形式で設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT swift_store_user services:swift- 本ガイドの手順に従って Object Storage をデプロイする場合には (上記のコマンド例に記載されているように)、上記の値をそれぞれ
servicesテナントとswiftユーザーに置き換えてください。 - 本ガイドの手順には従わずに Object Storage をデプロイする場合には、上記の値はその環境の適切な Object Storage テナントとユーザーに置き換える必要があります。
swift_store_key設定キーを Object Storage サービスのデプロイ時にswiftユーザー用に指定したパスワードに設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT swift_store_key PASSWORD
5.4.5. Image サービスのトラフィックを許可するためのファイアウォール設定
Image サービスは、ポート
9292 経由でネットワークにアクセスできるようにします。以下の手順に記載するステップはすべて、Image サービスをホストするサーバーに root ユーザーとしてログインして実行してください。
手順5.6 Image サービスのトラフィックを許可するためのファイアウォール設定
- テキストエディターで
/etc/glance/glance-api.confファイルを開き、以下のパラメーターの前に付いているコメント文字を削除します。bind_host = 0.0.0.0 bind_port = 9292
- テキストエディターで
/etc/sysconfig/iptablesファイルを開きます。 - ポート
9292で TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。-A INPUT -p tcp -m multiport --dports 9292 -j ACCEPT
/etc/sysconfig/iptablesファイルへの変更を保存します。iptablesサービスを再起動して、変更を有効にします。#systemctl restart iptables.service
5.4.6. Image サービスのための RabbitMQ メッセージブローカーの設定
RabbitMQ はデフォルト (かつ推奨の) メッセージブローカーです。RabbitMQ メッセージングサービスは、rabbitmq-server パッケージにより提供されます。以下の手順で記載する全ステップは、Image サービスをホストするサーバーに
root ユーザーとしてログインして実行する必要があります。
手順5.7 Image サービス (glance) が RabbitMQ メッセージブローカーを使用するための設定
- RabbitMQ を通知機能として設定します。
#openstack-config --set /etc/glance/glance-api.conf \DEFAULT notification_driver messaging - RabbitMQ のホスト名を設定します。
#openstack-config --set /etc/glance/glance-api.conf \DEFAULT rabbit_host RABBITMQ_HOSTRABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。 - メッセージブローカーのポートを
5672に設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT rabbit_port 5672 - RabbitMQ の設定時に Image サービス用に作成した RabbitMQ ユーザー名とパスワードを設定します。
#openstack-config --set /etc/glance/glance-api.conf \DEFAULT rabbit_userid glance#openstack-config --set /etc/glance/glance-api.conf \DEFAULT rabbit_password GLANCE_PASSglanceおよび GLANCE_PASS は、Image サービス用に作成した RabbitMQ ユーザー名とパスワードに置き換えます。 - RabbitMQ の起動時に、
glanceユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト/を介して行われます。Image サービスがこの仮想ホストに接続されるように設定します。#openstack-config --set /etc/glance/glance-api.conf \DEFAULT rabbit_virtual_host /
5.4.7. Image サービスが SSL を使用するための設定
glance-api.conf ファイルで、以下のオプションを使用して SSL を設定します。
表5.1 Image サービスの SSL オプション
| 設定オプション | 説明 |
|---|---|
cert_file
|
API サーバーをセキュアに起動する際に使用する証明書ファイルへのパス
|
key_file
|
API サーバーをセキュアに起動する際に使用する秘密鍵ファイルへのパス
|
ca_file
|
クライアントの接続を検証するのに使用する CA 証明書ファイルへのパス
|
5.4.8. Image サービスのデータベースへのデータ投入
Image サービスのデータベース接続文字列を適切に設定した後には、Identiy サービスのデータベースにデータを投入します。
手順5.8 Image サービスのデータベースへのデータ投入
- Image サービスをホストするシステムにログインします。
glanceユーザーに切り替えます。#su glance -s /bin/sh/etc/glance/glance-api.confおよび/etc/glance/glance-registry.confで特定されているデータベースを初期化し、データを投入します。$glance-manage db_sync
5.4.9. ローカルファイルシステムを介したイメージのロードの有効化
デフォルトでは、Image サービスは HTTP プロトコルを使用してイメージをインスタンスに提供します。具体的には、イメージデータは、イメージストアからコンピュートノードのローカルディスクに HTTP を介して伝送されます。このプロセスは、Image サービスと Compute サービスが別々のホストにインストールされたデプロイメントの大半が対象であるため一般的なプロセスです。
注記
Image サービスと Compute サービスが同じホストにはインストールされていなくても、それらのサービスが共有ファイルシステムを共有している場合は、直接イメージへアクセスすることができます。この場合は、そのファイルシステムを同じ場所にマウントする必要があります。
両サービスが同じホストにインストールされた (その結果、同じファイルシステムを共有する) デプロイの場合には、HTTP のステップを完全にスキップした方がより効率的です。その代わりに、ローカルファイルシステムを介してイメージの送受信をするように Image サービスと Compute サービスの両方を設定する必要があります。
この手順で生成される Image のファイルシステムメタデータは、新規イメージにのみ適用されます。既存のイメージは、このメタデータを使用しません。
手順5.9 Image サービスと Compute サービスがローカルファイルシステムでイメージを送受信するための設定
openstack-nova-computeに要求される Image のファイルシステムメタデータを公開するための JSON ドキュメントを作成します。- Image サービスが JSON ドキュメントを使用するように設定します。
openstack-nova-computeが Image サービスによって提供されるファイルシステムメタデータを使用するように設定します。
5.4.9.1. Image サービスがローカルファイルシステムを介してイメージを提供するための設定
HTTP ではなく、ローカルファイルシステムを使用したイメージのロードを有効にするには、最初に Image サービスがローカルファイルシステムメタデータを
openstack-nova-compute サービスに公開する必要があります。この操作は以下の手順に従って実行します。
手順5.10 Compute サービスが Compute サービスに対してローカルファイルシステムメタデータを公開するための設定
- Image サービスが使用するファイルシステムのマウントポイントを特定します。
#dfFilesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 51475068 10905752 37947876 23% / devtmpfs 2005504 0 2005504 0% /dev tmpfs 2013248 668 2012580 1% /dev/shmたとえば、Image サービスが/dev/sda3ファイルシステムを使用する場合には、対応するマウントポイントは/です。 - 以下のコマンドで、マウントポイントの一意識別子を作成します。
#uuidgenad5517ae-533b-409f-b472-d82f91f41773uuidgenの出力の内容をメモしておきます。この情報は、次のステップで使用します。 .jsonの拡張子でファイルを作成します。- テキストエディターでファイルを開き、以下の情報を追加します。
{ "id": "UID", "mountpoint": "MOUNTPT" }以下の値を置き換えてください。- UID は、前のステップで作成した一意識別子に置き換えます。
- MOUNTPT は、Image サービスのファイルシステムのマウントポイント (最初のステップで特定したマウントポイント) に置き換えます。
- Image サービスが JSON ファイルを使用するように設定します。
#openstack-config --set /etc/glance/glance-api.conf \DEFAULT show_multiple_locations True#openstack-config --set /etc/glance/glance-api.conf \DEFAULT filesystem_store_metadata_file JSON_PATHJSON_PATH は、JSON ファイルへの完全なパスに置き換えます。重要
適切なポリシー設定を行わずに設定した場合には、Image サービスの管理者以外のユーザーでもアクティブなイメージデータを置き換えることができてしまいます (他のユーザーへの通知なしに現在のイメージが切り替えられる可能性があります)。設定情報に関する OSSN 通知 (推奨のアクション) は https://wiki.openstack.org/wiki/OSSN/OSSN-0065 を参照してください。 - Image サービスを再起動します (すでに実行されていない場合)。
#systemctl restart openstack-glance-registry.service#systemctl restart openstack-glance-api.service
この手順で生成される Image のファイルシステムメタデータは、新規イメージにのみ適用されます。既存のイメージは、このメタデータを使用しません。
5.4.9.2. Compute サービスがローカルファイルシステムメタデータを使用するための設定
Image サービスがファイルシステムメタデータを公開するように設定した後には、そのメタデータを Compute サービスが使用するように設定することができます。この操作により
openstack-nova-compute がローカルファイルシステムからイメージをロードできるようになります。
手順5.11 Compute サービスが Image サービスによって提供されるローカルファイルシステムメタデータを使用するための設定
file://スキームを使ったダイレクト URL の使用を有効にするようにopenstack-nova-computeを設定します。#openstack-config --set /etc/nova/nova.conf \DEFAULT allowed_direct_url_schemes file- Image サービスのファイルシステム用のエントリーを作成します。
#openstack-config --set /etc/nova/nova.conf \image_file_url filesystems FSENTRYFSENTRY は Image サービスのファイルシステムに割り当てる名前に置き換えます。 - Image サービスがローカルファイルシステムメタデータを公開するために使用する
.jsonファイルを開きます。次のステップでは、このファイルに記載されている情報を使用します。 - Image サービスによって公開されるファイルシステムメタデータにエントリーを関連付けます。
#openstack-config --set /etc/nova/nova.conf \image_file_url:FSENTRY id UID#openstack-config --set /etc/nova/nova.conf \image_file_url:FSENTRY mountpoint MOUNTPT以下の値を置き換えてください。- UID は、Image サービスが使用する一意識別子に置き換えます。Image サービスによって使用される
.jsonファイルでは、UID は"id":の値です。 - MOUNTPT は Image サービスのファイルシステムが使用するマウントポイントに置き換えます。Image サービスが使用する
.jsonファイルでは、MOUNTPT は"mountpoint":の値です。