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') %>
<%
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 -%>
<%
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 スニペットをテンプレートにインポートし、4 スペース分インデントします。
<%= indent 4 do snippet 'subscription_manager_registration' end %>
<%= indent 4 do
snippet 'subscription_manager_registration'
end %>
キックスタートスニペットの条件付きインポート
以下の例では、ホストのサブネットで DHCP ブートモードが有効な場合に kickstart_networking_setup
スニペットをインポートします。
<% subnet = @host.subnet %> <% if subnet.respond_to?(:dhcp_boot_mode?) -%> <%= snippet 'kickstart_networking_setup' %> <% end -%>
<% 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'],
'Serial': host.facts['dmi::system::serial_number'],
'Encrypted': host.facts['luks_stat'],
この例では、適用可能なエラータレポートテンプレートをカスタマイズして、各ホストのカーネルバージョンに関するカスタム情報を解析できます。
<%- report_row( 'Host': host.name, 'Operating System': host.operatingsystem, 'Kernel': host.facts['uname::release'], 'Environment': host.lifecycle_environment, '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, ) -%>
<%- report_row(
'Host': host.name,
'Operating System': host.operatingsystem,
'Kernel': host.facts['uname::release'],
'Environment': host.lifecycle_environment,
'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,
) -%>