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') %>
捕获主机操作系统的主版本和次版本
以下示例演示了如何捕获主机操作系统的次版本和主版本,可用于软件包相关决策:
<% 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, ) -%>