A.3. Satellite Specific Functions and Variables
Table A.1. Generic Functions
| Name | Description |
|---|---|
| indent(n) | Indents the block of code by n spaces, useful when using a snippet template that is not indented. |
| foreman_url(kind) | Returns the full URL to host-rendered templates of the given kind. For example, templates of the "provision" type usually reside at http://HOST/unattended/provision. |
| snippet(name) | Renders the specified snippet template. Useful for nesting provisioning templates. |
| snippets(file) | Renders the specified snippet found in the Foreman database, attempts to load it from the unattended/snippets/ directory if it is not found in the database. |
| snippet_if_exists(name) | Renders the specified snippet, skips if no snippet with the specified name is found. |
Example A.1. Using the snippet and indent Functions
<%= indent 4 do snippet 'subscription_manager_registration' end %>
Table A.2. Functions Specific to Job Templates
| Name | Description |
|---|---|
| input(input_name) | Returns the value of the specified input on the job execution. |
| render_template(name, parameters) | Renders the specified template, similar to the generic snippet() function but enables passing arguments to the template. |
Table A.3. Host Specific Variables and Functions
| Name | Description |
|---|---|
| @host.architecture | The architecture of the host. |
| @host.bond_interfaces | Returns an array of all bonded interfaces. See Note. |
| @host.capabilities | The method of system provisioning, can be either build (for example kickstart) or image. |
| @host.certname | The SSL certificate name of the host. |
| @host.diskLayout | The disk layout of the host. Can be inherited from the operating system. |
| @host.domain | The domain of the host. |
| @host.environment | The Puppet environment of the host. |
| @host.facts | Returns a Ruby hash of facts from Facter. For example to access the 'ipaddress' fact from the output, specify @host.facts['ipaddress']. |
| @host.grub_pass | Returns the host's GRUB password. |
| @host.hostgroup | The host group of the host. |
| @host.info['parameters'] | Returns a Ruby hash containing information on host parameters. For example, use @host.info['parameters']['lifecycle_environment'] to get the life cycle environment of a host. |
| @host.image_build? | Returns true if the host is provisioned using an image. |
| @host.interfaces | Contains an array of all available host interfaces including the primary interface. See Note. |
| @host.interfaces_with_identifier('IDs') | Returns array of interfaces with given identifier. You can pass an array of multiple identifiers as an input, for example @host.interfaces_with_identifier(['eth0', 'eth1']). See Note. |
| @host.ip | The IP address of the host. |
| @host.location | The location of the host. |
| @host.mac | The MAC address of the host. |
| @host.managed_interfaces | Returns an array of managed interfaces (excluding BMC and bonded interfaces). See Note. |
| @host.medium | The assigned operating system installation medium. |
| @host.name | The full name of the host. |
| @host.operatingsystem.family | The operating system family. |
| @host.operatingsystem.major | The major version number of the assigned operating system. |
| @host.operatingsystem.minor | The minor version number of the assigned operating system. |
| @host.operatingsystem.name | The assigned operating system name. |
| @host.operatingsystem.boot_files_uri(@host.medium,@host.architecture) | Full path to the kernel and initrd, returns an array. |
| @host.os.medium_uri(@host) | The URI used for provisioning (path configured in installation media). |
| @host.param_false?(name) | Returns false if host parameter of a given name evaluates to false. |
| @host.param_true?(name) | Returns true if host parameter of a given name evaluates to true. |
| @host.params['parameter_name'] | Returns the value of specified parameters. |
| @host.primary_interface | Returns the primary interface of the host. |
| @host.provider | The compute resource provider. |
| @host.provision_interface | Returns the provisioning interface of the host. Returns an interface object. |
| @host.ptable | The partition table name. |
| @host.puppetmaster | The Puppet master the host should use. |
| @host.pxe_build? | Returns true if the host is provisioned using the network or PXE. |
| @host.shortname | The short name of the host. |
| @host.sp_ip | The IP address of the BMC interface. |
| @host.sp_mac | The MAC address of the BMC interface. |
| @host.sp_name | The name of the BMC interface. |
| @host.sp_subnet | The subnet of the BMC network. |
| @host.subnet.dhcp | Returns true if a DHCP proxy is configured for this host. |
| @host.subnet.dns_primary | The primary DNS server of the host. |
| @host.subnet.dns_secondary | The secondary DNS server of the host. |
| @host.subnet.gateway | The gateway of the host. |
| @host.subnet.mask | The subnet mask of the host. |
| @host.url_for_boot(:initrd) | Full path to the initrd image associated with this host. Not recommended, as it does not interpolate variables. |
| @host.url_for_boot(:kernel) | Full path to the kernel associated with this host. Not recommended, as it does not interpolate variables, prefer boot_files_uri. |
| @provisioning_type | Equals to 'host' or 'hostgroup' depending on type of provisioning. |
| @static | Returns true if the network configuration is static. |
| @template_name | Name of the template being rendered. |
| grub_pass | Returns the GRUB password wrapped in md5pass argument, that is --md5pass=#{@host.grub_pass}. |
| ks_console | Returns a string assembled using the port and the baud rate of the host which can be added to a kernel line. For example console=ttyS1,9600. |
| root_pass | Returns the root password configured for the system. |
Note
@host.interfaces or @host.bond_interfaces return interface data grouped in an array. To extract a parameter value of a specific interface, use Ruby methods to parse the array. For example, to get information about the first interface from an array and use it in a kickstart template:
<% myinterface = @host.interfaces.first %> IPADDR="<%= myinterface.ip %>" NETMASK="<%= myinterface.subnet.mask %>" GATEWAY="<%= myinterface.subnet.gateway %>"
<% ifnames = [] @host.interfaces.each do |i| ifnames.push(i.name) end %>
Example A.2. Using Host Specific Variables
<%
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 -%>
<% subnet = @host.subnet %> <% if subnet.respond_to?(:dhcp_boot_mode?) -%> <%= snippet 'kickstart_networking_setup' %> <% end -%>
<% @host.ip.split('.').last %>Table A.4. Kickstart Specific Variables
| Name | Description |
|---|---|
| @arch | The host architecture name, same as @host.architecture.name. |
| @dynamic | Returns true if the partition table being used is a %pre script (has the #Dynamic option as the first line of the table). |
| @epel | A command which will automatically install the correct version of the epel-release rpm. Use in a %post script. |
| @mediapath | The full kickstart line to provide the URL command. |
| @osver | The operating system major version number, same as @host.operatingsystem.major. |

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.