2.6. 사용자 지정 코어 heat 템플릿 사용
오버클라우드를 생성할 때 director는 /usr/share/openstack-tripleo-heat-templates
에 있는 코어 heat 템플릿 세트를 사용합니다. 이 코어 템플릿 컬렉션을 사용자 지정하려면 다음 Git 워크플로를 사용하여 사용자 정의 템플릿 컬렉션을 관리합니다.
절차
heat 템플릿 컬렉션이 포함된 초기 Git 리포지토리를 생성합니다.
템플릿 컬렉션을
/home/stack/templates
디렉터리에 복사합니다.$ cd ~/templates $ cp -r /usr/share/openstack-tripleo-heat-templates .
사용자 지정 템플릿 디렉터리로 변경하고 Git 리포지토리를 초기화합니다.
$ cd ~/templates/openstack-tripleo-heat-templates $ git init .
Git 사용자 이름 및 이메일 주소를 구성합니다.
$ git config --global user.name "<USER_NAME>" $ git config --global user.email "<EMAIL_ADDRESS>"
<USER_NAME>
을 사용하려는 사용자 이름으로 바꿉니다.<EMAIL_ADDRESS>
를 이메일 주소로 바꿉니다.초기 커밋을 위한 모든 템플릿을 스테이징합니다.
$ git add *
초기 커밋을 생성합니다.
$ git commit -m "Initial creation of custom core heat templates"
이렇게 하면 최신 코어 템플릿 컬렉션이 포함된 초기
master
분기가 생성됩니다. 이 분기를 사용자 지정 분기의 기반으로 사용하고 새 템플릿 버전을 이 분기에 병합합니다.
사용자 지정 분기를 사용하여 코어 템플릿 컬렉션에 변경 사항을 저장합니다. 다음 절차를 사용하여
my-customizations
분기를 생성하고 사용자 지정을 추가합니다.my-customizations
분기를 생성하여 해당 분기로 전환합니다.$ git checkout -b my-customizations
- 사용자 지정 분기의 파일을 편집합니다.
git에서 변경 사항을 스테이징합니다.
$ git add [edited files]
사용자 정의 분기의 변경 사항을 커밋합니다.
$ git commit -m "[Commit message for custom changes]"
그러면
my-customizations
분기에 대한 커밋으로 변경 사항이 추가됩니다.master
분기가 업데이트되면 마스터에서my-customizations
를 다시 평가하여
git에서 이러한 커밋을 업데이트된 템플릿 컬렉션에 추가할 수 있습니다. 이렇게 하면 사용자 지정을 추적하고 향후 템플릿 업데이트에서 재생하는 데 도움이 됩니다.
언더클라우드를 업데이트하면
openstack-tripleo-heat-templates
패키지도 업데이트를 수신할 수 있습니다. 이 경우 사용자 정의 템플릿 컬렉션을 업데이트해야 합니다.openstack-tripleo-heat-templates
패키지 버전을 환경 변수로 저장합니다.$ export PACKAGE=$(rpm -qv openstack-tripleo-heat-templates)
템플릿 컬렉션 디렉터리로 변경하고 업데이트된 템플릿의 새 분기를 생성합니다.
$ cd ~/templates/openstack-tripleo-heat-templates $ git checkout -b $PACKAGE
분기의 모든 파일을 제거하고 새 버전으로 바꿉니다.
$ git rm -rf * $ cp -r /usr/share/openstack-tripleo-heat-templates/* .
초기 커밋을 위한 모든 템플릿을 추가합니다.
$ git add *
패키지 업데이트에 대한 커밋을 생성합니다.
$ git commit -m "Updates for $PACKAGE"
분기를 master에 병합합니다. Git 관리 시스템(예: GitLab)을 사용하는 경우 관리 워크플로를 사용합니다. Git을 로컬로 사용하는 경우
master
분기로 전환하여 병합하고git merge
명령을 실행합니다.$ git checkout master $ git merge $PACKAGE
이제 master
분기에 최신 버전의 코어 템플릿 컬렉션이 포함됩니다. 이제 이 업데이트된 컬렉션에서 my-customization
분기를 다시 평가할 수 있습니다.
my-customization
분기를 업데이트합니다.my-customizations
분기로 변경합니다.$ git checkout my-customizations
마스터에서
분기를 다시베이스합니다.$ git rebase master
그러면
my-customizations
분기를 업데이트하고 이 분기에 대한 사용자 지정 커밋을 재생합니다.
리베이스 중에 발생하는 모든 충돌을 해결합니다.
충돌이 포함된 파일을 확인합니다.
$ git status
- 식별된 템플릿 파일의 충돌을 해결합니다.
해결된 파일을 추가합니다.
$ git add [resolved files]
업데이트를 계속합니다.
$ git rebase --continue
사용자 지정 템플릿 컬렉션을 배포합니다.
my-customization
분기로 전환되었는지 확인합니다.git checkout my-customizations
로컬 템플릿 디렉터리를 지정하려면
--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장. 구성 후크 에서 방법을 사용하는 것이 좋습니다.