このセクションは、プロキシーサービスをインストールして設定する方法を説明します。プロキシーサービスは、ストレージノードで動作するアカウントサービス、コンテナーサービス、オブジェクトサービスに対するリクエストを処理します。簡単のため、このガイドでは、コントローラーノードにプロキシーサービスをインストールして設定を行います。ただし、ストレージノードとネットワーク接続性のあるノードであれば、任意のノードでプロキシーサービスを実行できます。また、パフォーマンスと冗長性を向上させるために、複数のノードにプロキシーサービスをインストールして設定できます。詳細は Deployment Guide を参照してください。
プロキシーサービスは、Identity サービスなどの認証認可機構を必要とします。しかしながら、他のサービスと異なり、他の OpenStack のサービスなしで動作できる組み込みの認証認可機能も提供されています。しかしながら、このガイドでは、簡単のため、Identity service の追加 で説明する Identity サービスを参照します。Object Storage サービスを設定する前に、サービスクレデンシャルと API エンドポイントを作成する必要があります。
注釈
Object Storage サービスは、コントローラーノードの SQL データベースを使用しません。代わりに、各ストレージノードに分散した SQLite データベースを使用します。
admin クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。
$ source admin-openrc.sh
これらの手順をすべて行い、Identity サービスのクレデンシャルを作成します。
swift ユーザーを作成します。
$ openstack user create --domain default --password-prompt swift
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | d535e5cbd2b74ac7bfb97db9cced3ed6 |
| name | swift |
+-----------+----------------------------------+
admin ロールを swift ユーザーに追加します。
$ openstack role add --project service --user swift admin
注釈
このコマンドは何も出力しません。
swift サービスエンティティーを作成します。
$ openstack service create --name swift \
--description "OpenStack Object Storage" object-store
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Object Storage |
| enabled | True |
| id | 75ef509da2c340499d454ae96a2c5c34 |
| name | swift |
| type | object-store |
+-------------+----------------------------------+
Object Storage service API エンドポイントを作成します。
$ openstack endpoint create --region RegionOne \
object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 12bfd36f26694c97813f665707114e0d |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 75ef509da2c340499d454ae96a2c5c34 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1/AUTH_%(tenant_id)s |
+--------------+----------------------------------------------+
$ openstack endpoint create --region RegionOne \
object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 7a36bee6733a4b5590d74d3080ee6789 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 75ef509da2c340499d454ae96a2c5c34 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1/AUTH_%(tenant_id)s |
+--------------+----------------------------------------------+
$ openstack endpoint create --region RegionOne \
object-store admin http://controller:8080/v1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | ebb72cd6851d4defabc0b9d71cdca69b |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 75ef509da2c340499d454ae96a2c5c34 |
| service_name | swift |
| service_type | object-store |
| url | http://controller:8080/v1 |
+--------------+----------------------------------+
注釈
設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...) は、保持すべきデフォルトの設定オプションを意味します。
パッケージをインストールします。
# apt-get install swift swift-proxy python-swiftclient \
python-keystoneclient python-keystonemiddleware \
memcached
注釈
完全な OpenStack 環境では、これらのいくつかのパッケージはすでにインストールされています。
/etc/swift ディレクトリーを作成します。
プロキシーサービスの設定ファイルを Object Storage のソースディレクトリーから取得します。
# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/liberty
/etc/swift/proxy-server.conf ファイルを編集し、以下の作業をすべて行います。
[DEFAULT] セクションで、バインドするポート、ユーザー、設定ディレクトリーを設定します。
[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
[pipeline:main] セクションで、適切なモジュールを有効にします。
[pipeline:main]
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache
container_sync bulk ratelimit authtoken keystoneauth container-quotas
account-quotas slo dlo versioned_writes proxy-logging proxy-server
注釈
追加機能を有効にする他のモジュールに関する詳細は、Deployment Guide を参照してください。
[app:proxy-server] セクションで、自動アカウント作成を有効にします。
[app:proxy-server]
use = egg:swift#proxy
...
account_autocreate = true
[filter:keystoneauth] セクションで、operator ロールを設定します。
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user
[filter:authtoken] セクションに、Identity サービスへのアクセス方法を設定します。
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = swift
password = SWIFT_PASS
delay_auth_decision = true
SWIFT_PASS は Identity サービスで swift ユーザー用に選択したパスワードで置き換えます。
注釈
[filter:authtoken] セクションにある他のオプションは、コメントアウトまたは削除します。
[filter:cache] セクションに、memcached の位置を設定します。
[filter:cache]
use = egg:swift#memcache
...
memcache_servers = 127.0.0.1:11211
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.