3.2. director のアップグレード
以下の手順を実行する前に、「重要事前アップグレードノート」 にある情報を読み取ってください。
stack ユーザーとして director にログインし、OpenStack Platform の主要なサービスを停止します。
sudo systemctl stop 'openstack-*' 'neutron-*' httpd
$ sudo systemctl stop 'openstack-*' 'neutron-*' httpd
これにより、アンダークラウドで短時間のダウンタイムが生じます。アンダークラウドの更新中も、オーバークラウドは引き続き機能します。
director パッケージを最新のメジャーバージョンに更新するには、OpenStack Platform リポジトリーを古いバージョンから新しいバージョンに変更します。以下に例を示します。
sudo subscription-manager repos --disable=rhel-7-server-openstack-7.0-rpms --disable=rhel-7-server-openstack-7.0-director-rpms sudo subscription-manager repos --enable=rhel-7-server-openstack-8-rpms --enable=rhel-7-server-openstack-8-director-rpms
$ sudo subscription-manager repos --disable=rhel-7-server-openstack-7.0-rpms --disable=rhel-7-server-openstack-7.0-director-rpms
$ sudo subscription-manager repos --enable=rhel-7-server-openstack-8-rpms --enable=rhel-7-server-openstack-8-director-rpms
これにより、yum が最新のリポジトリーを使用するように設定します。yum を使用して director を更新します。
sudo yum upgrade
$ sudo yum upgrade
yum の更新 が完了すると、一部の OpenStack サービスが失敗する場合があります。これは予想される動作です。アンダークラウドの upgrade コマンドは、これらのサービスの設定を修正します。
director は openstack undercloud upgrade コマンドを使用して、アンダークラウドの環境をアップグレードします。アップグレードのコマンドを実行します。
openstack undercloud upgrade
$ openstack undercloud upgrade
これにより、director の設定が更新され、バージョンの変更後に未設定の設定が入力されます。このコマンドを実行しても、オーバークラウドスタックデータや環境内の既存ノードのデータなど、保存されたデータは削除されません。
更新が完了したら、director の OpenStack サービスを確認します。
sudo systemctl list-units openstack-*
$ sudo systemctl list-units openstack-*
openstack-keystone は、障害の発生したサービスとして表示される場合があります。これは、サービスが httpd サービスを WSGI アプリケーションとして実行されるようになったためです。openstack-keystone サービスは、director パッケージを更新し、openstack undercloud upgrade を実行してから、安全に無効にできます。
更新を完了するには、オーバークラウドとそのノードが存在することを確認します。
source ~/stackrc openstack server list ironic node-list heat stack-list
$ source ~/stackrc
$ openstack server list
$ ironic node-list
$ heat stack-list
オーバークラウドを Red Hat OpenStack Platform 8 にアップグレードした後、以下の点に注意してください。
SSL を使用するアンダークラウドでは、アップグレード中に仮想 IP へのアクセスが失われる可能性があります。その場合、アンダークラウドで
keepalivedサービスを再起動します。systemctl restart keepalived
$ systemctl restart keepalivedCopy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドの
管理者ユーザーは、Red Hat OpenStack Platform 8 に含まれない追加のロール(_member_)が必要になる場合があります。このロールは、オーバークラウドの通信に重要です。このロールを確認します。keystone role-list
$ keystone role-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow このロールが存在しない場合は、作成します。
keystone role-create --name _member_
$ keystone role-create --name _member_Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールを
adminテナントのadminユーザーに追加します。keystone user-role-add --user admin --role _member_ --tenant admin
$ keystone user-role-add --user admin --role _member_ --tenant adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow カスタマイズされたコア Heat テンプレートを使用する場合には、更新されたコア Heat テンプレートと現在のセットの違いを確認してください。Red Hat は、以降のリリースで Heat テンプレートコレクションへの更新を提供します。変更されたテンプレートコレクションを使用すると、カスタムコピーと
/usr/share/openstack-tripleo-heat-templates内の元のコピー間で異なる可能性があります。以下のコマンドを実行して、カスタム Heat テンプレートコレクションと更新された元のバージョンの違いを確認します。diff -Nary /usr/share/openstack-tripleo-heat-templates/ ~/templates/my-overcloud/
# diff -Nary /usr/share/openstack-tripleo-heat-templates/ ~/templates/my-overcloud/Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらの更新をカスタムの Heat テンプレートコレクションに適用するか、
/usr/share/openstack-tripleo-heat-templates/でテンプレートの新しいコピーを作成してカスタマイズを適用します。