2.6. 사용자 지정 코어 heat 템플릿 사용

오버클라우드를 생성할 때 director는 /usr/share/openstack-tripleo-heat-templates 에 있는 코어 heat 템플릿 세트를 사용합니다. 이 코어 템플릿 컬렉션을 사용자 지정하려면 다음 Git 워크플로를 사용하여 사용자 정의 템플릿 컬렉션을 관리합니다.

절차

  • heat 템플릿 컬렉션이 포함된 초기 Git 리포지토리를 생성합니다.

    1. 템플릿 컬렉션을 /home/stack/templates 디렉터리에 복사합니다.

      $ cd ~/templates
      $ cp -r /usr/share/openstack-tripleo-heat-templates .
    2. 사용자 지정 템플릿 디렉터리로 변경하고 Git 리포지토리를 초기화합니다.

      $ cd ~/templates/openstack-tripleo-heat-templates
      $ git init .
    3. Git 사용자 이름 및 이메일 주소를 구성합니다.

      $ git config --global user.name "<USER_NAME>"
      $ git config --global user.email "<EMAIL_ADDRESS>"

      <USER_NAME> 을 사용하려는 사용자 이름으로 바꿉니다. <EMAIL_ADDRESS> 를 이메일 주소로 바꿉니다.

    4. 초기 커밋을 위한 모든 템플릿을 스테이징합니다.

      $ git add *
    5. 초기 커밋을 생성합니다.

      $ git commit -m "Initial creation of custom core heat templates"

      이렇게 하면 최신 코어 템플릿 컬렉션이 포함된 초기 master 분기가 생성됩니다. 이 분기를 사용자 지정 분기의 기반으로 사용하고 새 템플릿 버전을 이 분기에 병합합니다.

  • 사용자 지정 분기를 사용하여 코어 템플릿 컬렉션에 변경 사항을 저장합니다. 다음 절차를 사용하여 my-customizations 분기를 생성하고 사용자 지정을 추가합니다.

    1. my-customizations 분기를 생성하여 해당 분기로 전환합니다.

      $ git checkout -b my-customizations
    2. 사용자 지정 분기의 파일을 편집합니다.
    3. git에서 변경 사항을 스테이징합니다.

      $ git add [edited files]
    4. 사용자 정의 분기의 변경 사항을 커밋합니다.

      $ git commit -m "[Commit message for custom changes]"

      그러면 my-customizations 분기에 대한 커밋으로 변경 사항이 추가됩니다. master 분기가 업데이트되면 마스터에서 my-customizations 를 다시 평가 하여 git에서 이러한 커밋을 업데이트된 템플릿 컬렉션에 추가할 수 있습니다. 이렇게 하면 사용자 지정을 추적하고 향후 템플릿 업데이트에서 재생하는 데 도움이 됩니다.

  • 언더클라우드를 업데이트하면 openstack-tripleo-heat-templates 패키지도 업데이트를 수신할 수 있습니다. 이 경우 사용자 정의 템플릿 컬렉션을 업데이트해야 합니다.

    1. openstack-tripleo-heat-templates 패키지 버전을 환경 변수로 저장합니다.

      $ export PACKAGE=$(rpm -qv openstack-tripleo-heat-templates)
    2. 템플릿 컬렉션 디렉터리로 변경하고 업데이트된 템플릿의 새 분기를 생성합니다.

      $ cd ~/templates/openstack-tripleo-heat-templates
      $ git checkout -b $PACKAGE
    3. 분기의 모든 파일을 제거하고 새 버전으로 바꿉니다.

      $ git rm -rf *
      $ cp -r /usr/share/openstack-tripleo-heat-templates/* .
    4. 초기 커밋을 위한 모든 템플릿을 추가합니다.

      $ git add *
    5. 패키지 업데이트에 대한 커밋을 생성합니다.

      $ git commit -m "Updates for $PACKAGE"
    6. 분기를 master에 병합합니다. Git 관리 시스템(예: GitLab)을 사용하는 경우 관리 워크플로를 사용합니다. Git을 로컬로 사용하는 경우 master 분기로 전환하여 병합하고 git merge 명령을 실행합니다.

      $ git checkout master
      $ git merge $PACKAGE

이제 master 분기에 최신 버전의 코어 템플릿 컬렉션이 포함됩니다. 이제 이 업데이트된 컬렉션에서 my-customization 분기를 다시 평가할 수 있습니다.

  • my-customization 분기를 업데이트합니다.

    1. my-customizations 분기로 변경합니다.

      $ git checkout my-customizations
    2. 마스터에서 분기를 다시베이스합니다.

      $ git rebase master

      그러면 my-customizations 분기를 업데이트하고 이 분기에 대한 사용자 지정 커밋을 재생합니다.

  • 리베이스 중에 발생하는 모든 충돌을 해결합니다.

    1. 충돌이 포함된 파일을 확인합니다.

      $ git status
    2. 식별된 템플릿 파일의 충돌을 해결합니다.
    3. 해결된 파일을 추가합니다.

      $ git add [resolved files]
    4. 업데이트를 계속합니다.

      $ git rebase --continue
  • 사용자 지정 템플릿 컬렉션을 배포합니다.

    1. my-customization 분기로 전환되었는지 확인합니다.

      git checkout my-customizations
    2. 로컬 템플릿 디렉터리를 지정하려면 --templates 옵션과 함께 openstack overcloud deploy 명령을 실행합니다.

      $ openstack overcloud deploy --templates /home/stack/templates/openstack-tripleo-heat-templates [OTHER OPTIONS]
참고

디렉터리 없이 --templates 옵션을 지정하는 경우 director는 기본 템플릿 디렉터리(/usr/share/openstack-tripleo-heat-templates )를 사용합니다.

중요

Red Hat은 heat 템플릿 컬렉션을 수정하는 대신 4장. 구성 후크 에서 방법을 사용하는 것이 좋습니다.