2.7. 使用自定义核心 Heat 模板


在创建 overcloud 时,director 使用位于 /usr/share/openstack-tripleo-heat-templates 中的一组核心 Heat 模板。如果要自定义此核心模板集合,请使用 Git 工作流来跟踪更改和合并更新。使用以下 git 进程来帮助管理自定义模板集合:

初始化自定义模板集合

使用以下步骤创建包含 Heat 模板集合的初始 Git 存储库:

  1. 将模板集合复制到 stack 用户目录。这个示例将集合复制到 ~/templates 目录:

    $ cd ~/templates
    $ cp -r /usr/share/openstack-tripleo-heat-templates .
    Copy to Clipboard Toggle word wrap
  2. 进入自定义模板目录并初始化 Git 存储库:

    $ cd openstack-tripleo-heat-templates
    $ git init .
    Copy to Clipboard Toggle word wrap
  3. 配置您的 Git 用户名和电子邮件地址:

    $ git config --global user.name "<USER_NAME>"
    $ git config --global user.email "<EMAIL_ADDRESS>"
    Copy to Clipboard Toggle word wrap

    <USER_NAME > 替换为您要使用的用户名。将 <EMAIL_ADDRESS > 替换为您的电子邮件地址。

  4. 为初始提交暂存所有模板:

    $ git add *
    Copy to Clipboard Toggle word wrap
  5. 创建初始提交:

    $ git commit -m "Initial creation of custom core heat templates"
    Copy to Clipboard Toggle word wrap

这会创建一个包含最新核心模板集合的初始 master 分支。使用此分支作为自定义分支的基础,并将新模板版本合并到此分支。

创建自定义分支和提交更改

使用自定义分支将您的更改存储到核心模板集合中。使用以下步骤创建 my-customizations 分支并向其添加自定义:

  1. 创建 my-customizations 分支并切换到它:

    $ git checkout -b my-customizations
    Copy to Clipboard Toggle word wrap
  2. 编辑自定义分支中的文件。
  3. 在 git 中暂存更改:

    $ git add [edited files]
    Copy to Clipboard Toggle word wrap
  4. 将更改提交到自定义分支:

    $ git commit -m "[Commit message for custom changes]"
    Copy to Clipboard Toggle word wrap

这会将您的更改作为提交添加到 my-customizations 分支。当 master 分支更新时,您可以 rebase my-customizations off master,这会导致 git 把这些提交添加到更新的模板集合中。这有助于跟踪您的自定义,并在将来的模板更新时重新播放它们。

更新自定义模板集合:

更新 undercloud 时,openstack-tripleo-heat-templates 软件包也会更新。当发生这种情况时,请按照以下步骤更新自定义模板集合:

  1. openstack-tripleo-heat-templates 软件包版本保存为环境变量:

    $ export PACKAGE=$(rpm -qv openstack-tripleo-heat-templates)
    Copy to Clipboard Toggle word wrap
  2. 进入模板集合目录并为更新的模板创建新分支:

    $ cd ~/templates/openstack-tripleo-heat-templates
    $ git checkout -b $PACKAGE
    Copy to Clipboard Toggle word wrap
  3. 删除分支中的所有文件,并将其替换为新版本:

    $ git rm -rf *
    $ cp -r /usr/share/openstack-tripleo-heat-templates/* .
    Copy to Clipboard Toggle word wrap
  4. 为初始提交添加所有模板:

    $ git add *
    Copy to Clipboard Toggle word wrap
  5. 为软件包更新创建提交:

    $ git commit -m "Updates for $PACKAGE"
    Copy to Clipboard Toggle word wrap
  6. 将分支合并到 master 中。如果使用 Git 管理系统(如 GitLab)则使用管理工作流。如果在本地使用 git,请切换到 master 分支并运行 git merge 命令:

    $ git checkout master
    $ git merge $PACKAGE
    Copy to Clipboard Toggle word wrap

master 分支现在包含核心模板集合的最新版本。现在,您可以从这个更新的集合中 rebase my-customization 分支。

重新调整自定义分支

使用以下步骤更新 my-customization 分支:

  1. 进入 my-customizations 分支:

    $ git checkout my-customizations
    Copy to Clipboard Toggle word wrap
  2. 将分支重基为 master

    $ git rebase master
    Copy to Clipboard Toggle word wrap

这会更新 my-customizations 分支,并重播向此分支发出的自定义提交。

如果 git 在 rebase 期间报告任何冲突,请使用以下步骤:

  1. 检查哪些文件包含冲突:

    $ git status
    Copy to Clipboard Toggle word wrap
  2. 解决标识的模板文件冲突。
  3. 添加解析的文件

    $ git add [resolved files]
    Copy to Clipboard Toggle word wrap
  4. 继续 rebase:

    $ git rebase --continue
    Copy to Clipboard Toggle word wrap

部署自定义模板

使用以下步骤部署自定义模板集合:

  1. 确保已切换到 my-customization 分支:

    git checkout my-customizations
    Copy to Clipboard Toggle word wrap
  2. 使用 --templates 选项运行 openstack overcloud deploy 命令,以指定您的本地模板目录:

    $ openstack overcloud deploy --templates /home/stack/templates/openstack-tripleo-heat-templates [OTHER OPTIONS]
    Copy to Clipboard Toggle word wrap
注意

如果您指定没有目录的 --templates 选项,director 将使用默认模板目录(/usr/share/openstack-tripleo-heat-templates)。

重要

红帽建议使用 第 4 章 配置 Hook 中的方法而不是修改 heat 模板集合。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat