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

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

前提条件

OpenStack Networking (neutron) サービスを設定する前に、データベース、サービスクレデンシャル、API エンドポイントを作成する必要があります。

  1. データベースを作成するには、これらの手順をすべて実行します。

    • データベースクライアントを使用して、データベースサーバーに root ユーザーとして接続します。

      $ mysql -u root -p
      
    • neutron データベースを作成します。

      mysql> CREATE DATABASE neutron;
      
    • neutron データベースに適切なアクセス権を付与します。NEUTRON_DBPASS を適切なパスワードで置き換えます。

      mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      
    • データベースクライアントを終了します。

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

    $ . admin-openrc
    
  3. 以下の手順を実行して、サービスクレデンシャルを作成します。

    • neutron ユーザーを作成します。

      $ openstack user create --domain default --password-prompt neutron
      
      User Password:
      Repeat User Password:
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | 319f34694728440eb8ffcb27b6dd8b8a |
      | name                | neutron                          |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
    • admin ロールを neutron ユーザーに追加します。

      $ openstack role add --project service --user neutron admin
      

      注釈

      このコマンドは何も出力しません。

    • neutron サービスエンティティーを作成します。

      $ openstack service create --name neutron \
        --description "OpenStack Networking" network
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Networking             |
      | enabled     | True                             |
      | id          | f71529314dab4a4d8eca427e701d209e |
      | name        | neutron                          |
      | type        | network                          |
      +-------------+----------------------------------+
      
  4. Networking サービス API エンドポイントを作成します。

    $ openstack endpoint create --region RegionOne \
      network public http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 85d80a6d02fc4b7683f611d7fc1493a3 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network internal http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 09753b537ac74422a68d2d791cf3714f |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network admin http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 1ee14289c9374dffb5db92a5c112fc4e |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    

ネットワークのオプションの設定

Networking サービスは、オプション 1 と 2 の 2 つのアーキテクチャーのいずれかを使ってデプロイできます。

オプション 1 は、可能な限り最も単純なアーキテクチャーをデプロイします。プロバイダー (外部) ネットワークへのインスタンスの接続のみに対応します。セルフサービス (プライベート) ネットワークやルーター、Floating IP アドレスはサポートされません。 admin や他の特権ユーザーだけがプロバイダーネットワークを管理できます。

オプション 2 は、オプション 1 にレイヤー 3 サービスを組み合わせたもので、セルフサービスネットワークへのインスタンスの接続をサポートします。 demo や他の非特権ユーザーがセルフサービスネットワークを管理し、それにはセルフサービスネットワークやプロバイダーネットワークの間の接続性を提供するルーターも含まれます。また、 Floating IP アドレスにより、セルフサービスネットワークに接続されたインスタンスへの、インターネットなどの外部ネットワークからの接続性が提供されます。

セルフサービスネットワークでは一般にはオーバーレイネットワークが使用されます。 VXLAN などのオーバーレイネットワークプロトコルは追加のヘッダーが必要で、このため、オーバーヘッドが増え、ペイロードやユーザーデータで利用可能な空間が減ります。仮想ネットワーク基盤に関する情報がないと、インスタンスが、デフォルトの Ethernet 最大転送単位 (MTU) 1500 バイトを使用して、パケットを送信しようとします。 Networking サービスは、正しい MTU 値を DHCP 経由でインスタンスに自動的に提供します。ただし、クラウドイメージによっては DHCP が使用されなかったり DHCP MTU オプションは無視されたりします。この場合には、メタデータやスクリプトを使って MTU を設定する必要があります。

注釈

オプション 2 では、プロバイダーネットワークへのインスタンスの接続もサポートされます。

以下のネットワークオプションのいずれかを選択して、サービスをオプションに応じて設定します。その後、ここに戻り、 メタデータエージェントの設定 に進んでください。

メタデータエージェントの設定

メタデータエージェント は、クレデンシャルなどの設定情報をインスタンスに提供します。

  • /etc/neutron/metadata_agent.ini ファイルを編集し、以下の作業をすべて行います。

    • [DEFAULT] セクションに、メタデータホストと共有シークレットを設定します。

      [DEFAULT]
      ...
      nova_metadata_ip = controller
      metadata_proxy_shared_secret = METADATA_SECRET
      

      METADATA_SECRET はメタデータプロキシー用に適切なシークレットで置き換えます。

Networking サービスを使用するための Compute サービスの設定

  • /etc/nova/nova.conf ファイルを編集し、以下の作業をすべて行います。

    • [neutron] セクションに、アクセス用のパラメーターを設定し、メタデータプロキシーを有効にし、シークレットを設定します。

      [neutron]
      ...
      url = http://controller:9696
      auth_url = http://controller:35357
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      region_name = RegionOne
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      service_metadata_proxy = True
      metadata_proxy_shared_secret = METADATA_SECRET
      

      NEUTRON_PASS を Identity サービスにおいて neutron ユーザー用に選択したパスワードで置き換えます。

      METADATA_SECRET はメタデータプロキシ用に選択した適切なシークレットで置き換えます。

インストールの最終作業

  1. Networking のサービス初期化スクリプトは、シンボリックリンク /etc/neutron/plugin.ini が ML2 プラグイン設定ファイル /etc/neutron/plugins/ml2/ml2_conf.ini を指していることを期待します。このシンボリックリンクが存在しなければ、以下のコマンドを使用して作成します。

    # ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
    
  2. データベースを展開します。

    # su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
      --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
    

    注釈

    データベースの展開は、スクリプトが設定済みのサーバーとプラグインの設定ファイルを前提としているため、Networking の設定後に行います。

  3. Compute API サービスを再起動します。

    # systemctl restart openstack-nova-api.service
    
  4. Networking サービスを起動し、システム起動時に起動するよう設定します。

    どちらのネットワークオプションの場合も、以下を行います。

    # systemctl enable neutron-server.service \
      neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
      neutron-metadata-agent.service
    # systemctl start neutron-server.service \
      neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
      neutron-metadata-agent.service
    

    ネットワークオプション 2 の場合、L3 サービスも有効にして起動します。

    # systemctl enable neutron-l3-agent.service
    # systemctl start neutron-l3-agent.service
    
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.