第8章 オーバークラウドの導入と準備
環境内の各スタックでオーバークラウドの導入とアップグレードの準備を実行します。DCN 環境でオーバークラウドの導入とアップグレードの準備を実行するには、DCN 環境でのオーバークラウドの導入と準備 を参照してください。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
8.1. オーバークラウドの導入と準備の実行 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドを導入するには、次のタスクを実行する必要があります。
- 各スタックで、ネットワークとホストのプロビジョニング設定エクスポートをオーバークラウドに導入します。
- 新しいコンテナーと追加の互換性設定を定義します。
導入後、次のタスクを実行するアップグレード準備スクリプトを実行する必要があります。
- オーバークラウドのプランを OpenStack Platform 17.1 に更新する。
- アップグレードに向けてノードを準備する。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
ロールに多数のノードが含まれている場合は、既存のロールを分割し、ロール間でノードを分割することで、RHOSP のアップグレードを高速化できます。詳細は、Red Hat ナレッジベースソリューション How to split roles during upgrade from RHOSP 16.2 to RHOSP 17.1 を参照してください。
前提条件
-
ベアメタルでプロビジョニングされるすべてのノードが
ACTIVE
状態にあることを確認します。いずれかのノードがMAINTENANCE
状態のままの場合、アップグレードを続行できません。ノードのACTIVE
への設定の詳細は、Setting bare-metal provisioned nodes to the active state を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドのアップグレード中にエクスポートされた以下のファイルに、オーバークラウドのアップグレードで想定される設定が含まれていることを確認します。
~/overcloud-deploy
ディレクトリーには以下のファイルがあります。-
tripleo-<stack>-passwords.yaml
-
tripleo-<stack>-network-data.yaml
-
tripleo-<stack>-virtual-ips.yaml
-
<stack>-network-environment.yaml
tripleo-<stack>-baremetal-deployment.yaml
-
<stack>
は、スタックの名前に置き換えます。 -
tripleo-<stack>-baremetal-deployment.yaml
ファイルのベアメタルノードの UUID、ホスト名、および IP アドレス間のマッピングが現在のオーバークラウドと一致していることを確認します。必要に応じてマッピングを修正します。
警告Jinja2 のコメントの問題に対応し、アンダークラウドのアップグレード中に
convert_v1_net_data.py
やconvert_heat_nic_config_to_ansible_j2.py
などの自動変換ツールで作成された各 nic-config テンプレートから、すべての Jinja2 コメントブロックを削除する必要があります。これらのコメントブロックを削除しないと、スケールアウトノードはプロビジョニングに失敗します。または、network_config_update
がtrue
に設定されている場合、コントロールプレーンネットワークが失われる可能性があります。{{# NOTE! Custom parameter {} was hard-coded in ' 'the converted template. To parameterize use the ' '{{role.name}}ExtraGroupVars THT interface and update the ' 'template to use an ansible var. +#}}
{{# NOTE! Custom parameter {} was hard-coded in ' 'the converted template. To parameterize use the ' '{{role.name}}ExtraGroupVars THT interface and update the ' 'template to use an ansible var. +#}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
重要マルチセル環境をお使いの場合は、マルチセル環境でのオーバークラウドの導入 を参照し、ファイルを各セルスタックにコピーする例を確認してください。
-
メインスタックで、
passwords.yaml
ファイルを~/overcloud-deploy/$(<stack>)
ディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yaml
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow メインスタックで、
network-data.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーし、ネットワークをデプロイします。環境内の各スタックでこの手順を繰り返します。cp ~/overcloud-deploy/<stack>/tripleo-<stack>-network-data.yaml ~/ openstack overcloud network provision --debug \ --output /home/stack/templates/generated-networks-deployed.yaml tripleo-<stack>-network-data.yaml
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-network-data.yaml ~/ $ openstack overcloud network provision --debug \ --output /home/stack/templates/generated-networks-deployed.yaml tripleo-<stack>-network-data.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の オーバークラウドのプロビジョニングとデプロイ を参照してください。
お使いの環境に事前にプロビジョニングされたノードがある場合は、以下の手順を実行します。
stack ユーザーのホームディレクトリー内の
tripleo-<stack>-virtual-ips.yaml
ファイルのバックアップコピーを作成します。cp ~/overcloud-deploy/<stack>/tripleo-<stack>-virtual-ips.yaml ~/
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-virtual-ips.yaml ~/ ~/overcloud-deploy/<stack>/tripleo-<stack>-virtual-ips.yaml.orig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tripleo-<stack>-virtual-ips.yaml ファイルの最後に以下の設定を追加します。
dns_name: overcloud ip_address: <ctrlplane_virtual_ip> name: control_virtual_ip network: ctlplane subnet: ctlplane-subnet
dns_name: overcloud ip_address: <ctrlplane_virtual_ip>
1 name: control_virtual_ip
2 network: ctlplane subnet: ctlplane-subnet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
メインスタックで、
virtual-ips.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーし、ネットワーク VIP をプロビジョニングします。環境内の各スタックでこの手順を繰り返します。cp ~/overcloud-deploy/<stack>/tripleo-<stack>-virtual-ips.yaml ~/ openstack overcloud network vip provision --debug \ --stack <stack> --output \ /home/stack/templates/generated-vip-deployed.yaml tripleo-<stack>-virtual-ips.yaml
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-virtual-ips.yaml ~/ $ openstack overcloud network vip provision --debug \ --stack <stack> --output \ /home/stack/templates/generated-vip-deployed.yaml tripleo-<stack>-virtual-ips.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow メインスタックで、
network-environment.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。cp ~/overcloud-deploy/<stack>/<stack>-network-environment.yaml ~/templates/<stack>-network-environment.yaml
$ cp ~/overcloud-deploy/<stack>/<stack>-network-environment.yaml ~/templates/<stack>-network-environment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記NetworkConfigTemplate
パラメーターが生成された.j2
ファイルを指し、overcloud-network-environment.yaml
ファイルのresource_registry
マッピングを削除していることを確認します。詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の NIC テンプレートの Jinja2 Ansible 形式への手動変換 を 参照してください。メインスタックで、
baremetal-deployment.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーし、オーバークラウドノードをプロビジョニングします。環境内の各スタックでこの手順を繰り返します。cp ~/overcloud-deploy/<stack>/tripleo-<stack>-baremetal-deployment.yaml ~/ openstack overcloud node provision --debug --stack <stack> \ --output /home/stack/templates/baremetal-deployment.yaml \ tripleo-<stack>-baremetal-deployment.yaml
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-baremetal-deployment.yaml ~/ $ openstack overcloud node provision --debug --stack <stack> \ --output /home/stack/templates/baremetal-deployment.yaml \ tripleo-<stack>-baremetal-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記これはオーバークラウド導入の最終ステップです。オーバークラウドの導入が完了するまでに 10 分以上かかる場合は、Red Hat サポートにお問い合わせください。
コンテナーを準備するには、以下の手順を実行します。
アンダークラウドのアップグレードに使用した
containers-prepare-parameter.yaml
ファイルをバックアップします。cp containers-prepare-parameter.yaml \ containers-prepare-parameter.yaml.orig
$ cp containers-prepare-parameter.yaml \ containers-prepare-parameter.yaml.orig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトを実行して
containers-prepare-parameter.yaml
ファイルを更新する前に、以下の環境変数を定義します。-
NAMESPACE
: UBI9 イメージの名前空間。たとえば、NAMESPACE='"namespace":"example.redhat.com:5002",'
など。 -
EL8_NAMESPACE
: UBI8 イメージの名前空間。 -
NEUTRON_DRIVER
: 使用する OpenStack Networking (neutron) コンテナーを定義するために使用するドライバー。元のスタックのデプロイに使用したコンテナーのタイプに設定します。たとえば、OVN ベースのコンテナーを使用するには、NEUTRON_DRIVER='"neutron_driver":"ovn",'
に設定します。 EL8_TAGS
: UBI8 イメージのタグ (例:EL8_TAGS='"tag":"17.1",'
)。-
"17.1",
は、コンテンツビューで使用するタグに置き換えます。
-
EL9_TAGS
: UBI9 イメージのタグ (例:EL9_TAGS='"tag":"17.1",'
)。"17.1",
は、コンテンツビューで使用するタグに置き換えます。tag
パラメーターの詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の コンテナーイメージ準備のパラメーター を参照してください。
CONTROL_PLANE_ROLES
:--role
オプションを使用したコントロールプレーンロールのリスト (例:--role ControllerOpenstack, --role Database, --role Messaging, --role Networker, --role CephStorage
)。環境内のコントロールプレーンのロールのリストを表示するには、以下のコマンドを実行します。export STACK=<stack> \ $ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -vi compute
$ export STACK=<stack> \ $ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -vi compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<stack>
は、スタックの名前に置き換えます。
-
COMPUTE_ROLES
:--role
オプションを使用したコンピュートロールのリスト (--Compute-1
など)。環境内のコンピュートロールのリストを表示するには、以下のコマンドを実行します。sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -i compute
$ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -i compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CEPH_OVERRIDE
: Red Hat Ceph Storage をデプロイした場合は、Red Hat Ceph Storage 5 コンテナーイメージを指定します。以下に例を示します。CEPH_OVERRIDE='"ceph_image":"rhceph-5-rhel8","ceph_tag":"<latest>",'
<latest>
は、最新のceph_tag
バージョン (5-499
など) に置き換えます。以下は、
containers-prepare-parameter.yaml
ファイル設定の例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
以下のスクリプトを実行して、
containers-prepare-parameter.yaml
ファイルを更新します。警告Red Hat Ceph Storage をデプロイした場合は、次のコマンドを実行する前に、
CEPH_OVERRIDE
環境変数が正しい値に設定されていることを確認してください。これを行わないと、Red Hat Ceph Storage のアップグレード時に問題が発生します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow multi-rhel-container-image-prepare.py
スクリプトは、次のパラメーターをサポートしています。--output-env-file
-
デフォルトの
ContainerImagePrepare
値を含む環境ファイルを書き込みます。 --local-push-destination
- ローカルレジストリーへのアップロードをトリガーします。
--enable-registry-login
-
コンテナーをプルする前に、システムがリモートレジストリーへのログインを試行できるようにするフラグを有効にします。このフラグは、
--local-push-destination
が使用されておらず、ターゲットシステムにリモートレジストリーへのネットワーク接続がある場合に使用します。このフラグは、リモートレジストリーへのネットワーク接続がない可能性があるオーバークラウドには使用しないでください。 --enable-multi-rhel
- multi-rhel を有効にします。
--excludes
- 除外するサービスをリストします。
--major-override
- メジャーリリースのオーバーライドパラメーターをリストします。
--minor-override
- マイナーリリースのオーバーライドパラメーターをリストします。
--role
- ロールのリスト。
--role-file
-
role_data.yaml
ファイル。
-
Red Hat Ceph Storage をデプロイした場合は、
containers-prepare-parameter.yaml
ファイルを開いて、Red Hat Ceph Storage 5 コンテナーイメージが指定されていること、および Red Hat Ceph Storage 6 コンテナーイメージへの参照がないことを確認します。
director でデプロイされた Red Hat Ceph Storage デプロイメントがある場合は、
ceph_params.yaml
というファイルを作成し、次の内容を含めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要RHOSP のアップグレード完了後に
ceph_params.yaml
ファイルを削除しないでください。このファイルは、director でデプロイされた Red Hat Ceph Storage 環境に存在する必要があります。さらに、openstack overcloud deploy
を実行するときは、-e ceph_params.yaml
を指定するなどして、常にceph_params.yaml
ファイルを含める必要があります。注記Red Hat Ceph Storage デプロイメントに短縮名が含まれている場合は、
CephSpecFqdn
パラメーターをfalse
に設定する必要があります。true
に設定すると、短縮名とドメイン名の両方を使用してインベントリーが生成され、Red Hat Ceph Storage のアップグレードが失敗します。テンプレートディレクトリーに
upgrades-environment.yaml
という環境ファイルを作成し、以下の内容を含めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<dns_servers>
を、DNS サーバーの IP アドレスのコンマ区切りのリスト (["10.0.0.36", "10.0.0.37"]
など) に置き換えます。 &
lt;undercloud_FQDN
> をアンダークラウドホストの完全修飾ドメイン名(FQDN)に置き換えます(例:["undercloud-0.ctlplane.redhat.local:8787"]
)。環境ファイルで設定できるアップグレードパラメーターに関する詳細は、アップグレードパラメーター を参照してください。
-
アンダークラウドで、テンプレートディレクトリーに
overcloud_upgrade_prepare.sh
というファイルを作成します。このファイルは、環境内のスタックごとに作成する必要があります。このファイルには、オーバークラウドのデプロイファイルの元の内容と、使用中の環境に関連する環境ファイルが含まれています。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記マルチセル環境をお使いの場合は、マルチセル環境でのオーバークラウドの導入 を参照し、セルスタックごとに
overcloud_upgrade_prepare.sh
ファイルを作成する例を確認してください。-
元の
network-environment.yaml
ファイル (/home/stack/templates/network/network-environment.yaml
) で、OS::TripleO::*::Net::SoftwareConfig
を指す resource_registry リソースをすべて削除します。 overcloud_upgrade_prepare.sh
ファイルに、環境に関連する以下のオプションを含めます。-
アップグレード固有のパラメーターを持つ環境ファイル (
upgrades-environment.yaml
) (-e
) -
新しいコンテナーイメージの場所を定義した環境ファイル (
containers-prepare-parameter.yaml
) (-e
)。多くの場合、アンダークラウドが使用する環境ファイルと同じファイルです。 -
リリースパラメーター (
-e
) を持つ環境ファイル (skip_rhel_release.yaml
)。 -
デプロイメントに関連するカスタム設定環境ファイル (
-e
) -
該当する場合は、
--roles-file
を使用してカスタムロール (roles_data
) ファイルを指定します。 -
Ceph デプロイメントの場合、Ceph パラメーター (
-e
) を持つ環境ファイル (ceph_params.yaml
)。 -
該当する場合は、IPA サービス (
-e
) を持つ環境ファイル (ipa-environment.yaml
)。 -
コンポーザブルネットワークを使用している場合は、
--network-file
を使用して (network_data
) ファイルを指定します。 -
オーバークラウドの導入中に生成されたファイル (
network-deployed.yaml
、vip-deployed.yaml
、baremetal-deployment.yaml
) (-e
)。これらのファイルは、オーバークラウドアップグレード準備スクリプトの最後に配置する必要があります。 OVS を使用する場合は、OVS 環境ファイルを以下の順序で追加します。
-
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml
-
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml
-
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dpdk.yaml
-
OVN を使用する場合は、OVN 環境ファイルを次の順序で追加します。
-
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dpdk.yaml
-
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-sriov.yaml
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml
注記オーバークラウドのデプロイファイルや
overcloud_upgrade_prepare.sh
ファイルにnetwork-isolation.yaml
ファイルを含めないでください。ネットワークの分離はnetwork_data.yaml
ファイルで定義します。
-
カスタムのスタック名を使用する場合は、
--stack
オプションでその名前を渡します。注記環境内のすべての RHEL 8 コンピュートノードが RHEL 9 にアップグレードされるまで、テンプレートに
nova-hw-machine-type-upgrade.yaml
ファイルを含める必要があります。このファイルを除外すると、/var/log/containers/nova
ディレクトリーのnova_compute.log
にエラーが表示されます。すべての RHEL 8 コンピュートノードを RHEL 9 にアップグレードした後、このファイルを設定から削除してスタックを更新できます。
-
アップグレード固有のパラメーターを持つ環境ファイル (
director でデプロイされた Red Hat Ceph Storage のユースケースでは、アップグレードするデプロイメントで、CephFS NFS を使用する Shared File Systems サービス (manila) を有効にしていた場合、
overcloud_upgrade_prepare.sh
スクリプトファイルの最後に追加の環境ファイルを指定する必要があります。環境ファイルは、スクリプトの前の方で指定されている別の環境ファイルをオーバーライドするため、スクリプトの最後に追加する必要があります。-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 外部 Red Hat Ceph Storage のユースケースでは、アップグレードするデプロイメントで、CephFS NFS を使用する Shared File Systems サービス (manila) を有効にしていた場合、
overcloud_upgrade_prepare.sh
スクリプト内の関連する環境ファイルが tripleo ベースのceph-nfs
ロールを参照することを確認する必要があります。次の環境ファイルが存在する場合は、削除します。-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の環境ファイルを追加します。
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
元の
環境内のスタックごとにアップグレード準備スクリプトを実行します。
source stackrc chmod 755 /home/stack/overcloud_upgrade_prepare.sh sh /home/stack/overcloud_upgrade_prepare.sh
$ source stackrc $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh $ sh /home/stack/overcloud_upgrade_prepare.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記マルチセル環境をお使いの場合は、各セルスタック用に作成した
overcloud_upgrade_prepare.sh
ファイルごとにスクリプトを実行する必要があります。例については、マルチセル環境でのオーバークラウドの導入 を参照してください。- アップグレードの準備が完了するまで待ちます。
コンテナーイメージをダウンロードします。
openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepare
$ openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepare
Copy to Clipboard Copied! Toggle word wrap Toggle overflow