第14章 ネットワーク設定の更新
オーバークラウドのアップグレードに向けた準備を行うには、いくつかのネットワーク設定を完了する必要があります。
14.1. ネットワークインターフェイステンプレートの更新
Red Hat OpenStack Platform には、不足しているパラメーターを NIC テンプレートファイルに自動的に追加するスクリプトが用意されています。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 source コマンドで
stackrc
ファイルを読み込みます。$ source ~/stackrc
アンダークラウドにおいて、
update-nic-templates.sh
という名前のファイルを作成し、以下の内容を追加します。#!/bin/bash STACK_NAME="overcloud" ROLES_DATA="/usr/share/openstack-tripleo-heat-templates/roles_data.yaml" NETWORK_DATA="/usr/share/openstack-tripleo-heat-templates/network_data.yaml" NIC_CONFIG_LINES=$(openstack stack environment show $STACK_NAME | grep "::Net::SoftwareConfig" | sed -E 's/ *OS::TripleO::// ; s/::Net::SoftwareConfig:// ; s/ http.*user-files/ /') echo "$NIC_CONFIG_LINES" | while read LINE; do ROLE=$(echo "$LINE" | awk '{print $1;}') NIC_CONFIG=$(echo "$LINE" | awk '{print $2;}') if [ -f "$NIC_CONFIG" ]; then echo "Updating template for $ROLE role." python3 /usr/share/openstack-tripleo-heat-templates/tools/merge-new-params-nic-config-script.py \ --tht-dir /usr/share/openstack-tripleo-heat-templates \ --roles-data $ROLES_DATA \ --network-data $NETWORK_DATA \ --role-name "$ROLE" \ --discard-comments yes \ --template "$NIC_CONFIG" else echo "No NIC template detected for $ROLE role. Skipping $ROLE role." fi done
-
カスタムのオーバークラウド名を使用している場合には、
STACK_NAME
変数をそのオーバークラウドの名前に設定します。オーバークラウドスタックのデフォルト名はovercloud
です。 -
カスタムの
roles_data
ファイルを使用する場合は、ROLES_DATA
変数をカスタムファイルの場所に設定します。デフォルトのroles_data
ファイルを使用する場合には、変数を/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
のままにします。 -
カスタムの
network_data
ファイルを使用する場合は、NETWORK_DATA
変数をカスタムファイルの場所に設定します。デフォルトのnetwork_data
ファイルを使用する場合には、変数を/usr/share/openstack-tripleo-heat-templates/network_data.yaml
のままにします。 -
/usr/share/openstack-tripleo-heat-templates/tools/merge-new-params-nic-config-script.py -h
を実行して、スクリプトに追加するオプションのリストを確認します。
-
カスタムのオーバークラウド名を使用している場合には、
スクリプトに実行権限を追加します。
$ chmod +x update-nic-templates.sh
-
(オプション) RHOSP 環境にスパイン/リーフ型ネットワークトポロジーを使用する場合には、
roles_data.yaml
ファイルをチェックして、デプロイメントの NIC テンプレートに正しいロール名が使用されていることを確認します。このスクリプトは、roles_data.yaml
ファイルのdeprecated_nic_config_name
パラメーターの値を使用します。 スクリプトを実行します。
$ ./update-nic-templates.sh
スクリプトにより各カスタム NIC テンプレートのコピーが保存され、不足しているパラメーターで各テンプレートが更新されます。このスクリプトは、カスタムテンプレートを持たないロールもスキップします。
No NIC template detected for BlockStorage role. Skipping BlockStorage role. Updating template for CephStorage role. The original template was saved as: /home/stack/templates/custom-nics/ceph-storage.yaml.20200903144835 The update template was saved as: /home/stack/templates/custom-nics/ceph-storage.yaml Updating template for Compute role. The original template was saved as: /home/stack/templates/custom-nics/compute.yaml.20200903144838 The update template was saved as: /home/stack/templates/custom-nics/compute.yaml Updating template for Controller role. The original template was saved as: /home/stack/templates/custom-nics/controller.yaml.20200903144841 The update template was saved as: /home/stack/templates/custom-nics/controller.yaml No NIC template detected for ObjectStorage role. Skipping ObjectStorage role.