コントローラーノードのインストールと設定

コントローラーノードのインストールと設定

このセクションは、プロキシーサービスをインストールして設定する方法を説明します。プロキシーサービスは、ストレージノードで動作するアカウントサービス、コンテナーサービス、オブジェクトサービスに対するリクエストを処理します。簡単のため、このガイドでは、コントローラーノードにプロキシーサービスをインストールして設定を行います。ただし、ストレージノードとネットワーク接続性のあるノードであれば、任意のノードでプロキシーサービスを実行できます。また、パフォーマンスと冗長性を向上させるために、複数のノードにプロキシーサービスをインストールして設定できます。詳細は Deployment Guide を参照してください。

前提条件

プロキシーサービスは、Identity サービスなどの認証認可機構を必要とします。しかしながら、他のサービスと異なり、他の OpenStack のサービスなしで動作できる組み込みの認証認可機能も提供されています。しかしながら、このガイドでは、簡単のため、Identity service の追加 で説明する Identity サービスを参照します。Object Storage サービスを設定する前に、サービスクレデンシャルと API エンドポイントを作成する必要があります。

注釈

Object Storage サービスは、コントローラーノードの SQL データベースを使用しません。代わりに、各ストレージノードに分散した SQLite データベースを使用します。

  1. admin クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。

    $ source admin-openrc.sh
    
  2. これらの手順をすべて行い、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                     |
      +-------------+----------------------------------+
      
  3. 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        |
    +--------------+----------------------------------+
    

コンポーネントのインストールと設定

注釈

設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...) は、保持すべきデフォルトの設定オプションを意味します。

  1. パッケージをインストールします。

    # zypper install openstack-swift-proxy python-swiftclient \
      python-keystoneclient python-keystonemiddleware \
      python-xml memcached
    

    注釈

    完全な OpenStack 環境では、これらのいくつかのパッケージはすでにインストールされています。

  1. /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
      
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

Search