7.2. オーバークラウドデプロイメントの開始
アンダークラウドのインストール時に、undercloud.conf
ファイルに generate_service_certificate=false
を設定します。設定しない場合は、オーバークラウドの高度なカスタマイズガイドの オーバークラウドのパブリックエンドポイントでの SSL/TLS の有効化 で説明したように、オーバークラウドのデプロイ時にトラストアンカーを挿入する必要があります。
- 注記
- オーバークラウドのデプロイメント中に Ceph Dashboard を追加する場合は、8章Red Hat Ceph Storage Dashboard のオーバークラウドデプロイメントへの追加を参照してください。
オーバークラウドの作成には、openstack overcloud deploy
コマンドに追加の引数を指定する必要があります。以下に例を示します。
$ openstack overcloud deploy --templates -r /home/stack/templates/roles_data_custom.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml \ -e /home/stack/templates/storage-config.yaml \ -e /home/stack/templates/ceph-config.yaml \ --ntp-server pool.ntp.org
上記のコマンドは、以下のオプションを使用します。
-
--templates
: デフォルトの Heat テンプレートコレクション (/usr/share/openstack-tripleo-heat-templates/
) からオーバークラウドを作成します。 -
-r /home/stack/templates/roles_data_custom.yaml
:3章専用ノード上での Ceph サービスのデプロイでカスタマイズしたロールの定義ファイルを指定し、カスタムロールを Ceph MON サービスまたは Ceph MDS サービスに追加します。これらのロールにより、いずれかのサービスを専用のノードにインストールすることができます。 -
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
: Ceph クラスターを作成するように director を設定します。この環境ファイルは、特に コンテナー化された Ceph Storage ノードを持つ Ceph クラスターをデプロイします。 -
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml
:「Ceph Object Gateway の有効化」で説明するように、Ceph Object Gateway を有効にします。 -
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml
:「Ceph Metadata Server の有効化」で説明するように、Ceph Metadata Server を有効にします。 -
-e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml
:「バックアップサービスで Ceph を使用する設定」で説明するように、Block Storage Backup サービス (cinder-backup
) を有効にします。 -
-e /home/stack/templates/storage-config.yaml
: Ceph Storage のカスタム設定が含まれる環境ファイルを追加します。 -
-e /home/stack/templates/ceph-config.yaml
:5章Ceph Storage クラスターのカスタマイズで説明するように、Ceph クラスターのカスタム設定が含まれる環境ファイルを追加します。 -
--ntp-server pool.ntp.org
: NTP サーバーを設定します。
アンサーファイル を使用して、すべてのテンプレートおよび環境ファイルを呼び出すこともできます。たとえば、以下のコマンドを使用して、同一のオーバークラウドをデプロイすることができます。
$ openstack overcloud deploy -r /home/stack/templates/roles_data_custom.yaml \ --answers-file /home/stack/templates/answers.yaml --ntp-server pool.ntp.org
この場合、アンサーファイル /home/stack/templates/answers.yaml
の内容は以下のようになります。
templates: /usr/share/openstack-tripleo-heat-templates/ environments: - /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml - /usr/share/openstack-tripleo-heat-templates/environments/ceph-rgw.yaml - /usr/share/openstack-tripleo-heat-templates/environments/ceph-mds.yaml - /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml - /home/stack/templates/storage-config.yaml - /home/stack/templates/ceph-config.yaml
詳細は、オーバークラウドデプロイメントへの環境ファイルの追加 を参照してください。
オプションの完全なリストを表示するには、以下のコマンドを入力します。
$ openstack help overcloud deploy
詳細は、director のインストールと使用方法ガイドの CLI ツールを使用した基本的なオーバークラウドの設定 を参照してください。
オーバークラウドの作成プロセスが開始され、director によりノードがプロビジョニングされます。このプロセスは完了するまで多少時間がかかります。オーバークラウドの作成のステータスを確認するには、stack
ユーザーとして別のターミナルを開き、以下のコマンドを入力します。
$ source ~/stackrc $ openstack stack list --nested
7.2.1. ceph-ansible
を実行するノードの限定
ceph-ansible
を実行するノードを限定することで、デプロイメントの更新時間を短縮することができます。Red Hat OpenStack Platform (RHOSP) で Ceph の設定に config-download
が使用されている場合、デプロイメント全体に対して config-download
および ceph-ansible
を実行する代わりに、--limit
オプションを使用してノードのリストを指定することができます。この機能は、たとえばオーバークラウドをスケールアップする場合や障害の発生したディスクを置き換える場合に役立ちます。このようなシナリオでは、環境に追加する新規ノードでのみデプロイメントを実行することができます。
障害の発生したディスクの置き換え時に --limit
を使用するシナリオの例
以下の手順例では、Ceph ストレージノード oc0-cephstorage-0
でディスク障害が発生したため、ベンダーでフォーマット済みの新規ディスクを受け入れます。新しいディスクを OSD として使用することができるように、Ansible を oc0-cephstorage-0
ノード上で実行する必要があります。しかし、その他すべての Ceph Storage ノードで実行する必要はありません。例として記述した環境ファイルおよびノードの名前を、実際の環境に適した名前に置き換えてください。
手順
アンダークラウドノードに
stack
ユーザーとしてログインし、source コマンドでstackrc
認証情報ファイルを読み込みます。# source stackrc
新規ディスクが不足している OSD を起動するのに使用されるように、以下の手順の 1 つを実施します。
--limit
オプションを使用してceph-ansible
を実行するノードを指定し、スタックの更新を実行する。$ openstack overcloud deploy --templates \ -r /home/stack/roles_data.yaml \ -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e ~/my-ceph-settings.yaml \ -e <other-environment_files> \ --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
この例では、Ceph mon の OSD 定義を変更するのに Ansible が必要なため、コントローラーが含まれています。
config-download
がansible-playbook-command.sh
スクリプトを生成した場合は、--limit
オプションを指定してスクリプトを実行し、指定されたノードをceph-ansible
に渡すこともできます。./ansible-playbook-command.sh --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
- Warning
-
必ずアンダークラウドを制限リストに含める必要があります。含めないと、
--limit
を使用する際にceph-ansible
を実行することができません。この注意が必要なのは、アンダークラウドでのみ実行されるexternal_deploy_steps_tasks
Playbook によりceph-ansible
が実行されるためです。