A.6. 模板宏


如果要编写自定义模板,您可以使用以下一些宏。根据模板类型,以下一些宏有不同的要求。

有关报告模板可用宏的更多信息,请在 Satellite Web UI 中进入到 Monitor > Reports > Report Templates,然后点 Create Template。在 Create Template 窗口中,单击 Help 选项卡。

有关作业模板可用宏的更多信息,在 Satellite Web UI 中导航到 Hosts > Templates > Job templates,然后点击 New Job Template。在 New Job Template 窗口中,单击 Help 选项卡。

输入

使用 输入 宏,您可以自定义模板可以使用的输入数据。您可以定义可用于用户的输入名称、类型和选项。对于报告模板,只能使用用户输入。当您定义新输入并保存模板时,您可以在模板正文的 ERB 语法中引用输入。

<%= input('cpus') %>

这会从用户输入 cpus 加载值。

load_hosts

使用 load_hosts 宏,您可以生成完整的主机列表。

<%- load_hosts().each_record do |host| -%>
<%=     host.name %>

使用带有 each_record 宏的 load_hosts 宏来批量加载 1000 个记录,以减少内存消耗。

如果要过滤报告的主机列表,您可以添加选项 search: input ('Example_Host')

<% load_hosts(search: input('Example_Host')).each_record do |host| -%>
<%=  host.name %>
<% end -%>

在本例中,您首先会创建一个输入,然后使用该输入优化 load_hosts 宏检索的搜索条件。

report_row

使用 report_row 宏,您可以创建一个格式化的报告来简化分析。report_row 宏需要 report_render 宏来生成输出。

输入示例:

<%- load_hosts(search: input('Example_Host')).each_record do |host| -%>
<%-   report_row(
        'Server FQDN': host.name
      ) -%>
<%- end -%>
<%= report_render -%>

渲染示例:

Server FQDN
host1.example.com
host2.example.com
host3.example.com
host4.example.com
host5.example.com
host6.example.com

您可以通过添加另一个标头来向报告添加额外的列。以下示例在报告中添加 IP 地址:

输入示例:

<%- load_hosts(search: input('host')).each_record do |host| -%>
<%-   report_row(
      'Server FQDN': host.name,
           'IP': host.ip
      ) -%>
<%- end -%>
<%= report_render -%>

渲染示例:

Server FQDN,IP
host1.example.com,10.8.30.228
host2.example.com,10.8.30.227
host3.example.com,10.8.30.226
host4.example.com,10.8.30.225
host5.example.com,10.8.30.224
host6.example.com,10.8.30.223

report_render

这个宏仅适用于报告模板。

使用 report_render 宏,您可以为报告创建输出。在模板渲染过程中,您可以选择您要报告的格式。支持 YAML、JSON、HTML 和 CSV 格式。

<%= report_render -%>
render_template()

这个宏仅适用于作业模板。

使用这个宏,您可以呈现特定的模板。您还可以启用和定义您要传递给模板的参数。

真实性

使用 truthy 宏,您可以声明传递的值是否为 true 或 false,无论值是否为整数或布尔值或字符串。

此宏有助于避免模板包含多个值类型时出现混淆。例如,布尔值 true 与字符串值 "true" 不同。使用这个宏,您可以声明如何希望模板解释值并避免混淆。

您可以使用 truthy 来声明值,如下所示:

truthy?("true") => true
truthy?(1) => true
truthy?("false") => false
truthy?(0) => false
Falsy

falsy 宏与数据源宏的作用相同。

使用 falsy 宏,您可以声明传递的值是否为 true 或 false,无论值是否为整数或布尔值或字符串。

您可以使用 falsy 来声明值,如下所示:

falsy?("true") => false
falsy?(1) => false
falsy?("false") => true
falsy?(0) => true
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.