附录 A. 模板编写参考


嵌入式 Ruby (ERB)是一个基于模板生成文本文件的工具,模板将纯文本与 Ruby 代码组合。Red Hat Satellite 在置备模板中使用 ERB 语法(第 9.3.9 节 “自定义模板”Red Hat Satellite Provisioning Guide中的 Provisioning Templates )、远程执行 作业模板 (第 12 章 在 Satellite 主机上运行作业)、分区表 (第 9.3.8 节 “分区表”)的模板和智能 参数 (第 9.2.2 节 “配置智能变量”)。本节概述了 ERB 模板中使用的 Satellite 特定功能和变量,以及一些用法示例。请注意,Red Hat Satellite (Hosts Provisioning templates Job templates )提供的默认模板也提供了 ERB 语法示例的良好来源。
在置备主机或运行远程作业时,ERB 中的代码会被执行,变量将被替换为特定于主机的值。这个过程被称为 渲染。Satellite 服务器默认启用 securemode 渲染选项,这可以防止从模板执行任何有害的代码。

A.1. 编写 ERB 模板

以下总结 ERB 语法:
  • <% % >- 标记在 ERB 模板中使用 Ruby 代码。代码在渲染模板时执行。它可以包含 Ruby 控制流结构,以及 Satellite 特定功能和变量。例如:
    <% if @host.operatingsystem.family == "Redhat" && @host.operatingsystem.major.to_i > 6 %>
    systemctl <%= input("action") %> <%= input("service") %>
    <% else %>
    service <%= input("service") %> <%= input("action") %>
    <% end -%>
    Copy to Clipboard Toggle word wrap
  • <%= % >- 代码输出插入到模板中。这对变量替换很有用,例如:
    echo <%= @host.name %>
    Copy to Clipboard Toggle word wrap
  • <% -% & gt; , <%= -% >- 默认,如果在某个行结束时关闭,会在 Ruby 块后面插入换行符。要阻止此行为,请修改 enclosing 标记。例如,以下模板:
    curl <%= @host.ip -%>
    /mydir
    Copy to Clipboard Toggle word wrap
    呈现与以下相同:
    curl <%= @host.ip %>/mydir
    Copy to Clipboard Toggle word wrap
    在实践中,这用于减少渲染模板中的行数(其中 Ruby 语法允许)。
  • <% issues % >- 标记在模板渲染过程中会忽略的注释:
    <%# A comment %>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat