第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 を参照してください。

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. stackrc アンダークラウド認証情報ファイルを入手します。

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. アンダークラウドのアップグレード中にエクスポートされた以下のファイルに、オーバークラウドのアップグレードで想定される設定が含まれていることを確認します。~/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.pyconvert_heat_nic_config_to_ansible_j2.py などの自動変換ツールで作成された各 nic-config テンプレートから、すべての Jinja2 コメントブロックを削除する必要があります。これらのコメントブロックを削除しないと、スケールアウトノードはプロビジョニングに失敗します。または、network_config_updatetrue に設定されている場合、コントロールプレーンネットワークが失われる可能性があります。

      {{# 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 Toggle word wrap
    重要

    マルチセル環境をお使いの場合は、マルチセル環境でのオーバークラウドの導入 を参照し、ファイルを各セルスタックにコピーする例を確認してください。

  4. メインスタックで、passwords.yaml ファイルを ~/overcloud-deploy/$(<stack>) ディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。

    $ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yaml
    Copy to Clipboard Toggle word wrap
  5. メインスタックで、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 Toggle word wrap

    詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理オーバークラウドのプロビジョニングとデプロイ を参照してください。

  6. お使いの環境に事前にプロビジョニングされたノードがある場合は、以下の手順を実行します。

    1. 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 Toggle word wrap
    2. tripleo-<stack>-virtual-ips.yaml ファイルの最後に以下の設定を追加します。

      dns_name: overcloud
        ip_address: <ctrlplane_virtual_ip> 
      1
      
        name: control_virtual_ip 
      2
      
        network: ctlplane
        subnet: ctlplane-subnet
      Copy to Clipboard Toggle word wrap
      1
      &lt ;ctrlplane_virtual_ip> をコントロールプレーンの仮想 IP に置き換えます。
      2
      VIP のデフォルト名。
  7. メインスタックで、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
    Copy to Clipboard Toggle word wrap
  8. メインスタックで、network-environment.yaml ファイルをスタックユーザーのホームディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。

    $ cp ~/overcloud-deploy/<stack>/<stack>-network-environment.yaml ~/templates/<stack>-network-environment.yaml
    Copy to Clipboard Toggle word wrap
    注記

    NetworkConfigTemplate パラメーターが生成された .j2 ファイルを指し、overcloud-network-environment.yaml ファイルの resource_registry マッピングを削除していることを確認します。詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の NIC テンプレートの Jinja2 Ansible 形式への手動変換 参照してください。

  9. メインスタックで、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 Toggle word wrap
    注記

    これはオーバークラウド導入の最終ステップです。オーバークラウドの導入が完了するまでに 10 分以上かかる場合は、Red Hat サポートにお問い合わせください。

  10. コンテナーを準備するには、以下の手順を実行します。

    1. アンダークラウドのアップグレードに使用した containers-prepare-parameter.yaml ファイルをバックアップします。

      $ cp containers-prepare-parameter.yaml \
      containers-prepare-parameter.yaml.orig
      Copy to Clipboard Toggle word wrap
    2. スクリプトを実行して 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}' \
        /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \
        | grep -vi compute
        Copy to Clipboard Toggle word wrap
        • <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
        Copy to Clipboard Toggle word wrap
      • 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 ファイル設定の例です。

          NAMESPACE='"namespace":"registry.redhat.io/rhosp-rhel9",'
          EL8_NAMESPACE='"namespace":"registry.redhat.io/rhosp-rhel8",'
          NEUTRON_DRIVER='"neutron_driver":"ovn",'
          EL8_TAGS='"tag":"17.1",'
          EL9_TAGS='"tag":"17.1",'
          CONTROL_PLANE_ROLES="--role Controller"
          COMPUTE_ROLES="--role Compute1 --role Compute2"
          CEPH_TAGS='"ceph_tag":"5",'
          Copy to Clipboard Toggle word wrap
    3. 以下のスクリプトを実行して、containers-prepare-parameter.yaml ファイルを更新します。

      警告

      Red Hat Ceph Storage をデプロイした場合は、次のコマンドを実行する前に、CEPH_OVERRIDE 環境変数が正しい値に設定されていることを確認してください。これを行わないと、Red Hat Ceph Storage のアップグレード時に問題が発生します。

      $ python3 /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \
           ${COMPUTE_ROLES} \
           ${CONTROL_PLANE_ROLES} \
           --enable-multi-rhel \
           --excludes collectd \
           --excludes nova-libvirt \
           --minor-override "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \
           --major-override "{${EL9_TAGS}${NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \
           --output-env-file \
          /home/stack/containers-prepare-parameter.yaml
      Copy to Clipboard Toggle word wrap

      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 ファイル。
    4. Red Hat Ceph Storage をデプロイした場合は、containers-prepare-parameter.yaml ファイルを開いて、Red Hat Ceph Storage 5 コンテナーイメージが指定されていること、および Red Hat Ceph Storage 6 コンテナーイメージへの参照がないことを確認します。
  11. director でデプロイされた Red Hat Ceph Storage デプロイメントがある場合は、ceph_params.yaml というファイルを作成し、次の内容を含めます。

    parameter_defaults:
      CephSpecFqdn: true
      CephConfigPath: "/etc/ceph"
      CephAnsibleRepo: "rhceph-5-tools-for-rhel-8-x86_64-rpms"
      DeployedCeph: true
      GrafanaPlugins: []
    Copy to Clipboard Toggle word wrap
    重要

    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 のアップグレードが失敗します。

  12. テンプレートディレクトリーに upgrades-environment.yaml という環境ファイルを作成し、以下の内容を含めます。

    parameter_defaults:
      ExtraConfig:
        nova::workarounds::disable_compute_service_check_for_ffu: true
      DnsServers: ["<dns_servers>"]
      DockerInsecureRegistryAddress: [<undercloud_FQDN>]
      UpgradeInitCommand: |
        sudo subscription-manager repos --disable=*
          if $( grep -q  9.2  /etc/os-release )
          then
            sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-e4s-rpms --enable=rhel-9-for-x86_64-appstream-e4s-rpms --enable=rhel-9-for-x86_64-highavailability-e4s-rpms --enable=openstack-17.1-for-rhel-9-x86_64-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms
            sudo podman ps | grep -q ceph && subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
            sudo subscription-manager release --set=9.2
          else
            sudo subscription-manager repos --enable=rhel-8-for-x86_64-baseos-aus-rpms --enable=rhel-8-for-x86_64-appstream-aus-rpms --enable=rhel-8-for-x86_64-highavailability-aus-rpms --enable=openstack-17.1-for-rhel-8-x86_64-rpms --enable=fast-datapath-for-rhel-8-x86_64-rpms
            sudo podman ps | grep -q ceph && subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
            sudo subscription-manager release --set=8.4
          fi
    
          if $(sudo podman ps | grep -q ceph )
          then
            sudo dnf -y install cephadm
          fi
    Copy to Clipboard Toggle word wrap
    • <dns_servers> を、DNS サーバーの IP アドレスのコンマ区切りのリスト (["10.0.0.36", "10.0.0.37"] など) に置き換えます。
    • & lt;undercloud_FQDN > をアンダークラウドホストの完全修飾ドメイン名(FQDN)に置き換えます(例: ["undercloud-0.ctlplane.redhat.local:8787"] )。

      環境ファイルで設定できるアップグレードパラメーターに関する詳細は、アップグレードパラメーター を参照してください。

  13. アンダークラウドで、テンプレートディレクトリーに overcloud_upgrade_prepare.sh というファイルを作成します。このファイルは、環境内のスタックごとに作成する必要があります。このファイルには、オーバークラウドのデプロイファイルの元の内容と、使用中の環境に関連する環境ファイルが含まれています。以下に例を示します。

    #!/bin/bash
    openstack overcloud upgrade prepare --yes \
      --timeout 460 \
      --templates /usr/share/openstack-tripleo-heat-templates \
      --ntp-server 192.168.24.1 \
      --stack <stack> \
      -r /home/stack/roles_data.yaml \
      -e /home/stack/templates/internal.yaml \
      -e /home/stack/templates/network/network-environment.yaml \
      -e /home/stack/templates/inject-trust-anchor.yaml \
      -e /home/stack/templates/hostnames.yml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
      -e /home/stack/templates/nodes_data.yaml \
      -e /home/stack/templates/debug.yaml \
      -e /home/stack/templates/firstboot.yaml \
      -e /home/stack/templates/upgrades-environment.yaml \
      -e /home/stack/overcloud-params.yaml \
      -e /home/stack/templates/overcloud-network-environment.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/nova-hw-machine-type-upgrade.yaml \
      -e /home/stack/skip_rhel_release.yaml \
      -e ~/containers-prepare-parameter.yaml \
      -e /home/stack/templates/baremetal-deployment.yaml \
      -e /home/stack/templates/generated-networks-deployed.yaml \
      -e /home/stack/templates/generated-vip-deployed.yaml
    Copy to Clipboard Toggle word wrap
    注記

    マルチセル環境をお使いの場合は、マルチセル環境でのオーバークラウドの導入 を参照し、セルスタックごとに overcloud_upgrade_prepare.sh ファイルを作成する例を確認してください。

    1. 元の network-environment.yaml ファイル (/home/stack/templates/network/network-environment.yaml) で、OS::TripleO::*::Net::SoftwareConfig を指す resource_registry リソースをすべて削除します。
    2. 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.yamlvip-deployed.yamlbaremetal-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 にアップグレードした後、このファイルを設定から削除してスタックを更新できます。

    3. 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
      Copy to Clipboard Toggle word wrap
    4. 外部 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
      Copy to Clipboard Toggle word wrap

      次の環境ファイルを追加します。

      -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
      Copy to Clipboard Toggle word wrap
  14. 環境内のスタックごとにアップグレード準備スクリプトを実行します。

    $ source stackrc
    $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh
    $ sh /home/stack/overcloud_upgrade_prepare.sh
    Copy to Clipboard Toggle word wrap
    注記

    マルチセル環境をお使いの場合は、各セルスタック用に作成した overcloud_upgrade_prepare.sh ファイルごとにスクリプトを実行する必要があります。例については、マルチセル環境でのオーバークラウドの導入 を参照してください。

  15. アップグレードの準備が完了するまで待ちます。
  16. コンテナーイメージをダウンロードします。

    $ openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepare
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat