第11章 director Operator を使用して RHOSP オーバークラウドのマイナー更新を実行する
openstackclient
Pod を更新した後、オーバークラウドとコンテナーイメージの準備デプロイメントを実行し、ノードを更新し、オーバークラウド更新収束デプロイメントを実行して、オーバークラウドを更新します。マイナー更新中は、コントロールプレーン API が利用可能です。
Red Hat OpenStack Platform (RHOSP) 環境のマイナー更新には、オーバークラウドノード上の RPM パッケージとコンテナーの更新が含まれます。一部のサービスの設定を更新する必要がある場合もあります。データプレーンとコントロールプレーンは、マイナー更新中に完全に利用可能になります。RHOSP 環境を更新するには、次の各手順を完了する必要があります。
- マイナー更新用に RHOSP 環境を準備します。
-
オプション:
ovn-controller
コンテナーを更新します。 - Pacemaker サービスを含むコントローラーノードとコンポーザブルノードを更新します。
- コンピュートノードを更新します。
- Red Hat Ceph Storage ノードを更新します。
- Red Hat Ceph Storage クラスターを更新します。
- オーバークラウドノードを再起動します。
前提条件
- RHOSP デプロイメントのバックアップがある。詳細は、director Operator を使用してデプロイしたオーバークラウドのバックアップと復元 を参照してください。
11.1. マイナー更新用の director オペレーターの準備
director Operator (OSPdO) を使用してマイナー更新を実行できるように Red Hat OpenStack Platform (RHOSP) 環境を準備するには、次のタスクを実行します。
- RHOSP 環境を Red Hat Enterprise Linux (RHEL) リリースにロックします。
- RHOSP リポジトリーを更新します。
- コンテナーイメージ準備ファイルを更新します。
- オーバークラウドでフェンシングを無効にします。
11.1.1. RHOSP 環境を RHEL リリースにロックする
Red Hat OpenStack Platform (RHOSP) 17.1 は Red Hat Enterprise Linux 9.2 (RHEL) でサポートされています。更新を実行する前に、オーバークラウドのリポジトリーを RHEL 9.2 リリースにロックして、オペレーティングシステムが新しいマイナーリリースにアップグレードされないようにします。
手順
オーバークラウドのサブスクリプション管理用環境ファイル
rhsm.yaml
をopenstackclient
にコピーします。$ oc cp rhsm.yaml openstackclient:/home/cloud-admin/rhsm.yaml
openstackclient
Pod のリモートシェルにアクセスします。$ oc rsh openstackclient
rhsm.yaml
ファイルを開き、Subscription Management 設定にrhsm_release
パラメーターが含まれているかどうかを確認します。rhsm_release
パラメーターが存在しない場合は、追加して9.2
に設定します。parameter_defaults: RhsmVars: … rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd" rhsm_method: "portal" rhsm_release: "9.2"
-
rhsm.yaml
ファイルを保存します。 すべてのノードでオペレーティングシステムのバージョンを RHEL 9.2 にロックするタスクを内包した、
set_release.yaml
という名前の Playbook を作成します。- hosts: all gather_facts: false tasks: - name: set release to 9.2 command: subscription-manager release --set=9.2 become: true
openstackclient
Pod で、set_release.yaml
Playbook を実行します。$ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/set_release.yaml --limit Controller,Compute
--limit
オプションを使用して、コンテンツをすべての RHOSP ノードに適用します。Red Hat Ceph Storage ノードには別のサブスクリプションがある可能性があるため、これらのノードに対してこの Playbook を実行しないでください。注記手動でノードを特定のバージョンにロックするには、ノードにログインして
subscription-manager release
コマンドを実行します。$ sudo subscription-manager release --set=9.2
openstackclient
Pod のリモートシェルを終了します。$ exit
11.1.2. RHOSP リポジトリーの更新
Red Hat OpenStack Platform (RHOSP) 17.1 を使用するようにリポジトリーを更新します。
手順
rhsm.yaml
ファイルを開き、rhsm_repos
パラメーターを正しいリポジトリーバージョンに更新します。parameter_defaults: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-eus-rpms - rhel-9-for-x86_64-appstream-eus-rpms - rhel-9-for-x86_64-highavailability-eus-rpms - openstack-17.1-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms
-
rhsm.yaml
ファイルを保存します。 openstackclient
Pod のリモートシェルにアクセスします。$ oc rsh openstackclient
すべてのノードで、リポジトリーを
RHOSP 17.1
に設定するタスクを含む Playbook を、update_rhosp_repos.yaml
という名前で作成します。- hosts: all gather_facts: false tasks: - name: change osp repos command: subscription-manager repos --enable=openstack-17.1-for-rhel-9-x86_64-rpms become: true
openstackclient
Pod でupdate_rhosp_repos.yaml
Playbook を実行します。$ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_rhosp_repos.yaml --limit Controller,Compute
--limit
オプションを使用して、コンテンツをすべての RHOSP ノードに適用します。Red Hat Ceph Storage ノードは通常異なるサブスクリプションを使用するため、この Playbook を Ceph Storage ノードに対して実行しないでください。すべての Red Hat Ceph Storage ノードで、リポジトリーを
RHOSP 17.1
に設定するタスクを含む Playbook を、update_ceph_repos.yaml
という名前で作成します。- hosts: all gather_facts: false tasks: - name: change ceph repos command: subscription-manager repos --enable=openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms become: true
openstackclient
Pod でupdate_ceph_repos.yaml
Playbook を実行します。$ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_ceph_repos.yaml --limit CephStorage
--limit
オプションを使用して、コンテンツを Red Hat Ceph Storage ノードに適用します。openstackclient
Pod のリモートシェルを終了します。$ exit
11.1.3. コンテナーイメージ準備ファイルの更新
コンテナー準備ファイルは、ContainerImagePrepare
パラメーターが含まれるファイルです。このファイルを使用して、オーバークラウドのコンテナーイメージを取得するためのルールを定義します。
環境を更新する前に、ファイルを確認して正しいイメージバージョンを取得するようにしてください。
手順
-
コンテナー準備ファイルを編集します。このファイルのデフォルト名は
containers-prepare-parameter.yaml
です。 それぞれのルールセットで、
tag
パラメーターが17.1
に設定されていることを確認します。parameter_defaults: ContainerImagePrepare: - push_destination: false set: ... tag: '17.1' tag_from_label: '{version}-{release}'
注記更新に特定のタグ (
17.1
や17.1.1
など) を使用しない場合は、tag
キーと値のペアを削除し、tag_from_label
のみを指定します。tag_from_label
タグは、インストールされている Red Hat OpenStack Platform (RHOSP) バージョンを使用して、更新プロセスの一部として使用するタグの値を決定します。-
containers-prepare-parameter.yaml
ファイルを保存します。
11.1.4. オーバークラウドでのフェンシングの無効化
オーバークラウドを更新する前に、フェンシングが無効になっていることを確認します。
コントローラーノードの更新プロセス中にフェンシングが環境にデプロイされると、オーバークラウドは特定ノードが無効であることを検出し、フェンシング操作を試みる場合があります。これにより、意図しない結果が生じる可能性があります。
オーバークラウドでフェンシングを有効にした場合、更新中はフェンシングを一時的に無効にする必要があります。
手順
openstackclient
Pod のリモートシェルにアクセスします。$ oc rsh openstackclient
コントローラーノードにログインし、Pacemaker コマンドを実行してフェンシングを無効にします。
$ ssh <controller-0.ctlplane> "sudo pcs property set stonith-enabled=false"
-
<controller-0.ctlplane>
をコントローラーノードの名前に置き換えます。
-
openstackclient
Pod のリモートシェルを終了します。$ exit