Show Table of Contents
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/DB
USER、PASS、IP、DB は、上記のステップで使用した値と同じ値に置き換えます。
重要
この接続設定キーに指定する IP アドレスまたはホスト名は、Image サービスのデータベースの作成時に Image サービスのデータベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、Image サービスのデータベースの作成時に「localhost」へのアクセス権を付与した場合には、「localost」と入力する必要があります。
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 admin
glance
の Image サービスのエントリーを作成します。[(keystone_admin)]#
openstack service create --name glance \
--description "Glance Image Service" \
image
glance
エンドポイントエントリーを作成します。[(keystone_admin)]#
openstack endpoint create \
--publicurl 'http://
IP
:9292' \--adminurl 'http://
IP
:9292' \--internalurl 'http://
IP
:9292' \--region RegionOne \
glance
IP は、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 PASSWORD
glance-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 swift
swift_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_HOST
RABBITMQ_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_PASS
glance
および 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 サービスが使用するファイルシステムのマウントポイントを特定します。
#
df
Filesystem 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
ファイルシステムを使用する場合には、対応するマウントポイントは/
です。 - 以下のコマンドで、マウントポイントの一意識別子を作成します。
#
uuidgen
ad5517ae-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_PATH
JSON_PATH は、JSON ファイルへの完全なパスに置き換えます。 - 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 FSENTRY
FSENTRY は 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":
の値です。
Comments