Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第7章 オーバークラウドの作成

OpenStack 環境作成における最後の段階では、openstack overcloud deploy コマンドを実行して OpenStack 環境を作成します。このコマンドを実行する前に、キーオプションやカスタムの環境ファイルの追加方法を十分に理解しておく必要があります。本章では、openstack overcloud deploy コマンドと、それに関連するオプションについて説明します。

警告

バックグラウンドプロセスとして openstack overcloud deploy を実行しないでください。バックグラウンドのプロセスとして開始された場合にはオーバークラウドの作成は途中で停止してしまう可能性があります。

7.1. オーバークラウドのパラメーター設定

以下の表では、openstack overcloud deploy コマンドを使用する際の追加パラメーターを一覧表示します。

表7.1 デプロイメントパラメーター

パラメーター

説明

--templates [TEMPLATES]

デプロイする Heat テンプレートが格納されているディレクトリー。空欄にした場合には、コマンドはデフォルトのテンプレートの場所である /usr/share/openstack-tripleo-heat-templates/ を使用します。

~/templates/my-overcloud

--stack STACK

作成または更新するスタックの名前

overcloud

-t [TIMEOUT], --timeout [TIMEOUT]

デプロイメントのタイムアウト (分単位)

240

--control-scale [CONTROL_SCALE]

スケールアウトするコントローラーノード数

3

--compute-scale [COMPUTE_SCALE]

スケールアウトするコンピュートノード数

3

--ceph-storage-scale [CEPH_STORAGE_SCALE]

スケールアウトする Ceph Storage ノードの数

3

--block-storage-scale [BLOCK_STORAGE_SCALE]

スケールアウトする Cinder ノード数

3

--swift-storage-scale [SWIFT_STORAGE_SCALE]

スケールアウトする Swift ノード数

3

--control-flavor [CONTROL_FLAVOR]

コントローラーノードに使用するフレーバー

control

--compute-flavor [COMPUTE_FLAVOR]

コンピュートノードに使用するフレーバー

compute

--ceph-storage-flavor [CEPH_STORAGE_FLAVOR]

Ceph Storage ノードに使用するフレーバー

ceph-storage

--block-storage-flavor [BLOCK_STORAGE_FLAVOR]

Cinder ノードに使用するフレーバー

cinder-storage

--swift-storage-flavor [SWIFT_STORAGE_FLAVOR]

Swift Storage ノードに使用するフレーバー

swift-storage

--neutron-flat-networks [NEUTRON_FLAT_NETWORKS]

(非推奨) フラットなネットワークが neutron プラグインで設定されるように定義します。デフォルトは「datacentre」に設定され、外部ネットワークの作成が許可されます。

datacentre

--neutron-physical-bridge [NEUTRON_PHYSICAL_BRIDGE]

(非推奨) 各ハイパーバイザーで作成する Open vSwitch ブリッジ。デフォルト値は「br-ex」で、通常この値は変更する必要はないはずです。

br-ex

--neutron-bridge-mappings [NEUTRON_BRIDGE_MAPPINGS]

(非推奨) 使用する論理ブリッジから物理ブリッジへのマッピング。ホスト (br-ex) の外部ブリッジを物理名 (datacentre) にマッピングするようにデフォルト設定されています。これは、デフォルトの Floating ネットワークに使用されます。

datacentre:br-ex

--neutron-public-interface [NEUTRON_PUBLIC_INTERFACE]

(非推奨) ネットワークノード向けにインターフェースを br-ex にブリッジするインターフェースを定義します。

nic1、eth0

--neutron-network-type [NEUTRON_NETWORK_TYPE]

(非推奨) Neutron のテナントネットワーク種別

gre または vxlan

--neutron-tunnel-types [NEUTRON_TUNNEL_TYPES]

(非推奨) neutron テナントネットワークのトンネリング種別。複数の値を指定するには、コンマ区切りの文字列を使用します。

vxlan gre,vxlan

--neutron-tunnel-id-ranges [NEUTRON_TUNNEL_ID_RANGES]

(非推奨) テナントネットワークの割り当てに使用できる GRE トンネリングの ID 範囲

1:1000

--neutron-vni-ranges [NEUTRON_VNI_RANGES]

(非推奨) テナントネットワークの割り当てに使用できる VXLAN VNI の ID 範囲

1:1000

--neutron-disable-tunneling

(非推奨) VLAN で区切られたネットワークまたは neutron でのフラットネットワークを使用するためにトンネリングを無効化します。

 

--neutron-network-vlan-ranges [NEUTRON_NETWORK_VLAN_RANGES]

(非推奨) サポートされる Neutron ML2 および Open vSwitch VLAN マッピングの範囲。デフォルトでは、物理ネットワーク「datacentre」上の VLAN を許可するように設定されています。

datacentre:1:1000

--neutron-mechanism-drivers [NEUTRON_MECHANISM_DRIVERS]

(非推奨) neutron テナントネットワークのメカニズムドライバー。デフォルトでは、「openvswitch」に設定されており、複数の値を指定するにはコンマ区切りの文字列を使用します。

openvswitch,l2population

--libvirt-type [LIBVIRT_TYPE]

ハイパーバイザーに使用する仮想化タイプ

kvm、qemu

--ntp-server [NTP_SERVER]

時刻の同期に使用する Network Time Protocol (NTP) サーバー。コンマ区切りリストで複数の NTP サーバーを指定することも可能です (例: --ntp-server 0.centos.pool.org,1.centos.pool.org)。高可用性クラスターのデプロイメントの場合には、コントローラーが一貫して同じタイムソースを参照することが必須となります。標準的な環境には、確立された慣行によって、NTP タイムソースがすでに指定されている可能性がある点に注意してください。

pool.ntp.org

--no-proxy [NO_PROXY]

環境変数 no_proxy のカスタム値を定義します。これにより、プロキシー通信からの特定のドメイン拡張は除外されます。

 

--overcloud-ssh-user OVERCLOUD_SSH_USER

オーバークラウドノードにアクセスする SSH ユーザーを定義します。通常、SSH アクセスは heat-admin ユーザーで実行されます。

ocuser

-e [EXTRA HEAT TEMPLATE], --extra-template [EXTRA HEAT TEMPLATE]

オーバークラウドデプロイメントに渡す追加の環境ファイル。複数回指定することが可能です。openstack overcloud deploy コマンドに渡す環境ファイルの順序が重要である点に注意してください。たとえば、逐次的に渡される各環境ファイルは、前の環境ファイルのパラメーターを上書きします。

-e ~/templates/my-config.yaml

--environment-directory

デプロイメントに追加する環境ファイルが格納されているディレクトリー。このコマンドは、これらの環境ファイルを番号順で処理した後に、アルファベット順で処理します。

--environment-directory ~/templates

--validation-errors-fatal

オーバークラウドの作成プロセスでは、一式のデプロイメントチェックが行われます。このオプションは、事前デプロイメントチェックで何らかのエラーが発生した場合に存在します。どのようなエラーが発生してもデプロイメントが失敗するので、このオプションを使用することを推奨します。

 

--validation-warnings-fatal

オーバークラウドの作成プロセスで、デプロイ前に一連のチェックを行います。このオプションは、デプロイ前のチェックでクリティカルではない警告が発生した場合に存在します。

 

--dry-run

オーバークラウドに対する検証チェックを実行しますが、オーバークラウドを実際には作成しません。

 

--force-postconfig

オーバークラウドのデプロイ後の設定を強制的に行います。

--force-postconfig

--answers-file ANSWERS_FILE

引数とパラメーターが記載された YAML ファイルへのパス

--answers-file ~/answers.yaml

--rhel-reg

カスタマーポータルまたは Satellite 6 にオーバークラウドノードを登録します。

 

--reg-method

オーバークラウドノードに使用する登録メソッド

Red Hat Satellite 6 または Red Hat Satellite 5 は satellite、カスタマーポータルは portal

--reg-org [REG_ORG]

登録に使用する組織

 

--reg-force

すでに登録済みの場合でもシステムを登録します。

 

--reg-sat-url [REG_SAT_URL]

オーバークラウドノードを登録する Satellite サーバーのベース URL。このパラメーターには、HTTPS URL ではなく、Satellite の HTTP URL を使用します。たとえば、https://satellite.example.com ではなく http://satellite.example.com を使用します。オーバークラウドの作成プロセスではこの URL を使用して、どのサーバーが Red Hat Satellite 5 または Red Hat Satellite 6 サーバーであるかを判断します。Red Hat Satellite 6 サーバーの場合は、オーバークラウドは katello-ca-consumer-latest.noarch.rpm ファイルを取得して subscription-manager に登録し、katello-agent をインストールします。Red Hat Satellite 5 サーバーの場合はオーバークラウドは、RHN-ORG-TRUSTED-SSL-CERT ファイルを取得して rhnreg_ks に登録します。

 

--reg-activation-key [REG_ACTIVATION_KEY]

登録に使用するアクティベーションキー

 
注記

オプションの完全一覧については、以下のコマンドを実行します。

$ openstack help overcloud deploy

7.2. オーバークラウド作成時の環境ファイルの追加

オーバークラウドをカスタマイズするには、-e を指定して、環境ファイルを追加します。必要に応じていくつでも環境ファイルを追加することができますが、後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順番は重要です。以下の一覧は、環境ファイルの順序の例です。

  • Heat テンプレートコレクションの初期化ファイル (environments/network-isolation.yaml) を含むネットワーク分離ファイルと、次にカスタムの NIC 設定ファイル。ネットワークの分離についての詳しい情報は、「ネットワークの分離」を参照してください。
  • 外部のロードバランシングの環境ファイル
  • Ceph Storage、NFS、iSCSI などのストレージ環境ファイル
  • Red Hat CDN または Satellite 登録用の環境ファイル
  • その他のカスタム環境ファイル

-e オプションを使用してオーバークラウドに追加した環境ファイルはいずれも、オーバークラウドのスタック定義の一部となります。

また同様に、--environment-directory オプションを使用して、環境ファイルを格納しているディレクトリー全体を追加することも可能です。デプロイメントコマンドにより、このディレクトリー内の環境ファイルは、最初に番号順、その後にアルファベット順で処理されます。この方法を使用する場合には、ファイル名に数字のプレフィックスを使用することを推奨します。以下に例を示します。

$ ls -1 ~/templates
10-network-isolation.yaml
20-network-environment.yaml
30-storage-environment.yaml
40-rhel-registration.yaml

director は、「8章オーバークラウド作成後のタスクの実行」に記載の再デプロイおよびデプロイ後の機能にこれらの環境ファイルを必要とします。これらのファイルが含まれていない場合には、オーバークラウドが破損する可能性があります。

オーバークラウド設定を後で変更する予定の場合には、以下の作業を行う必要があります。

  1. カスタムの環境ファイルおよび Heat テンプレートのパラメーターを変更します。
  2. 同じ環境ファイルを指定してopenstack overcloud deploy コマンドを再度実行します。

オーバークラウドを手動で編集しても、director を使用してオーバークラウドスタックの更新を行う際に director の設定で上書きされてしまうので、設定は直接編集しないでください。

重要

後で使用および変更するために、最初のデプロイメントコマンドを保存しておきます。たとえば、deploy-overcloud.sh という名前のスクリプトファイルでデプロイメントコマンドを保存するには、以下のように編集します。

#!/bin/bash
openstack overcloud deploy --templates \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e ~/templates/network-environment.yaml \
  -e ~/templates/storage-environment.yaml \
  -t 150 \
  --control-scale 3 \
  --compute-scale 3 \
  --ceph-storage-scale 3 \
  --swift-storage-scale 0 \
  --block-storage-scale 0 \
  --compute-flavor compute \
  --control-flavor control \
  --ceph-storage-flavor ceph-storage \
  --swift-storage-flavor swift-storage \
  --block-storage-flavor block-storage \
  --ntp-server pool.ntp.org \
  --libvirt-type qemu

これにより、将来オーバークラウドに変更を加えたり、スケーリングしたりする際に使用するオーバークラウドのデプロイメントコマンドのパラメーターと環境ファイルが保持されるので、今後オーバークラウドをカスタマイズする際にこのスクリプトを編集して再度実行することができます。

7.3. オーバークラウドの作成例

以下のコマンドは、カスタムの環境ファイルを追加で指定して、どのようにオーバークラウドの作成を開始するかに関する例です。

$ openstack overcloud deploy --templates \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e ~/templates/network-environment.yaml \
  -e ~/templates/storage-environment.yaml \
  --control-scale 3 \
  --compute-scale 3 \
  --ceph-storage-scale 3 \
  --control-flavor control \
  --compute-flavor compute \
  --ceph-storage-flavor ceph-storage \
  --ntp-server pool.ntp.org \

このコマンドでは、以下の追加オプションも使用できます。

  • --templates: /usr/share/openstack-tripleo-heat-templates の Heat テンプレートコレクションを使用してオーバークラウドを作成します。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml: -e オプションは、オーバークラウドデプロイメントに別の環境ファイルを追加します。この場合は、ネットワーク分離の設定を初期化する環境ファイルです。
  • -e ~/templates/network-environment.yaml: -e オプションは、オーバークラウドデプロイメントに別の環境ファイルを追加します。この場合は、 「ネットワーク環境ファイルの作成」 で作成したネットワーク環境ファイルです。
  • -e ~/templates/storage-environment.yaml: -e オプションは、オーバークラウドデプロイメントに別の環境ファイルを追加します。この場合は、ストレージの設定を初期化する環境ファイルです。
  • --control-scale 3 : コントローラーノードを 3 台にスケーリングします。
  • --compute-scale 3: コンピュートノードを 3 台にスケーリングします。
  • --ceph-storage-scale 3: Ceph Storage ノードを 3 台にスケーリングします。
  • --control-flavor control: 対象のコントローラーノードに特定のフレーバーを使用します。
  • --compute-flavor compute: コンピュートノードに特定のフレーバーを使用します。
  • --ceph-storage-flavor ceph-storage: Ceph Storage ノードに特定のフレーバーを使用します。
  • --ntp-server pool.ntp.org: 時刻の同期に NTP サーバーを使用します。これは、コントローラーノードクラスターの同期を保つ際に便利です。

7.4. オーバークラウド作成の監視

オーバークラウドの作成プロセスが開始され、director によりノードがプロビジョニングされます。このプロセスは完了するまで多少時間がかかります。オーバークラウドの作成のステータスを確認するには、stack ユーザーとして別のターミナルを開き、以下を実行します。

$ source ~/stackrc                # Initializes the stack user to use the CLI commands
$ heat stack-list --show-nested

heat stack-list --show-nested コマンドは、オーバークラウド作成の現在のステージを表示します。

7.5. オーバークラウドへのアクセス

director は、director ホストからオーバークラウドに対話するための設定を行い、認証をサポートするスクリプトを作成して、stack ユーザーのホームディレクトリーにこのファイル (overcloudrc) を保存します。このファイルを使用するには、以下のコマンドを実行します。

$ source ~/overcloudrc

これで、director のホストの CLI からオーバークラウドと対話するために必要な環境変数が読み込まれます。director のホストとの対話に戻るには、以下のコマンドを実行します。

$ source ~/stackrc

オーバークラウドの各ノードには、heat-admin と呼ばれるユーザーが含まれます。stack ユーザーには、各ノードに存在するこのユーザーに SSH 経由でアクセスすることができます。SSH でノードにアクセスするには、希望のノードの IP アドレスを特定します。

$ nova list

次に、heat-admin ユーザーとノードの IP アドレスを使用して、ノードに接続します。

$ ssh heat-admin@192.0.2.23

7.6. オーバークラウド作成の完了

これでオーバークラウドの作成が完了しました。作成後の機能については、「8章オーバークラウド作成後のタスクの実行」を参照してください。