A.11. 模板片断示例


检查主机是否启用了 Puppet 和 Puppetlabs

以下示例检查主机是否启用了 Puppet 和 Puppetlabs 存储库:

<%
pm_set = @host.puppetmaster.empty? ? false : true
puppet_enabled = pm_set || host_param_true?('force-puppet')
puppetlabs_enabled = host_param_true?('enable-puppetlabs-repo')
%>

捕获主机操作系统的 Major 和 Minor 版本

以下示例演示了如何捕获主机操作系统的次要和主要版本,它们可用于软件包相关的决策:

<%
os_major = @host.operatingsystem.major.to_i
os_minor = @host.operatingsystem.minor.to_i
%>

<% if ((os_minor < 2) && (os_major < 14)) -%>
...
<% end -%>

将片段导入到模板

以下示例将 subscription_manager_registration 片断导入到模板,并将其缩进四个空格:

<%= indent 4 do
snippet 'subscription_manager_registration'
end %>

有条件地导入 Kickstart 片段

如果主机子网启用了 DHCP 引导模式,以下示例导入 kickstart_networking_setup 片断:

<% subnet = @host.subnet %>
<% if subnet.respond_to?(:dhcp_boot_mode?) -%>
<%= snippet 'kickstart_networking_setup' %>
<% end -%>

从主机自定义事实解析值

您可以使用 host.facts 变量从主机的事实和自定义事实解析值。在本例中,luks_stat 是一个自定义事实,您可以使用与 dmi::system::serial_number 相同的方式进行解析,这是一个主机事实:

'Serial': host.facts['dmi::system::serial_number'],
'Encrypted': host.facts['luks_stat'],

在本例中,您可以自定义 Applicable Errata report 模板,以解析有关每个主机的内核版本的自定义信息:

<%-     report_row(
          'Host': host.name,
          'Operating System': host.operatingsystem,
          'Kernel': host.facts['uname::release'],
          'Environment': host.single_lifecycle_environment ? host.single_lifecycle_environment.name : nil,
          'Erratum': erratum.errata_id,
          'Type': erratum.errata_type,
          'Published': erratum.issued,
          'Applicable since': erratum.created_at,
          'Severity': erratum.severity,
          'Packages': erratum.package_names,
          'CVEs': erratum.cves,
          'Reboot suggested': erratum.reboot_suggested,
        ) -%>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.