Menu Close
Settings Close

Language and Page Formatting Options

第14章 ネットワーク設定の更新

オーバークラウドのアップグレードに向けた準備を行うには、いくつかのネットワーク設定を完了する必要があります。

14.1. ネットワークインターフェイステンプレートの更新

Red Hat OpenStack Platform には、不足しているパラメーターを NIC テンプレートファイルに自動的に追加するスクリプトが用意されています。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  3. アンダークラウドにおいて、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 を実行して、スクリプトに追加するオプションの一覧を確認します。
  4. スクリプトに実行権限を追加します。

    $ chmod +x update-nic-templates.sh
  5. (オプション) RHOSP 環境にスパイン/リーフ型ネットワークトポロジーを使用する場合には、roles_data.yaml ファイルをチェックして、デプロイメントの NIC テンプレートに正しいロール名が使用されていることを確認します。このスクリプトは、roles_data.yaml ファイルの deprecated_nic_config_name パラメーターの値を使用します。
  6. スクリプトを実行します。

    $ ./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.