14장. 네트워크 구성 업데이트

오버클라우드 업그레이드를 준비하려면 일부 네트워크 구성을 완료해야 합니다.

14.1. 네트워크 인터페이스 템플릿 업데이트

Red Hat OpenStack Platform에는 누락된 매개 변수를 NIC 템플릿 파일에 자동으로 추가하는 스크립트가 포함되어 있습니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. 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.