Project

General

Profile

Actions

TemplateWriting » History » Revision 12

« Previous | Revision 12/110 (diff) | Next »
Justin Sherrill, 02/02/2011 09:31 AM


Templates

The following functions and macros can be used within templates. These are guaranteed to work via the safemode rendering, to ensure a template can do nothing harmful. With safemode disabled ($$ADD instructions here$$), other macros may work, but are not supported at this time.

Accessing Templates

There are two ways to render a template, based on a single host, or based on a Hostgroup. The host or hostgroup provides all the details with which to render the template.

Host-based Rendering

Only a single template of each type may be rendered for a system.

To access a template of a certain type simply use this url:

/unattended/KIND_NAME

for example: /unattended/provision
would render the provisioning template. The host will be based on the IP Address it is accessed from. To spoof a template simply access the url in this manner:

/unattended/provision?spoof=192.168.0.1

where 192.168.0.1 is the ip address of the system you want to spoof. This allows you to view a template for a particular system from anywhere.

Hostgroup-based rendering

Allows any template to be rendered for any Hostgroup. When rendering using a hostgroup, @host is actually the hostgroup instead of a defined host. The default values for the hostgroup are used for templated values. This means if a value is not set in the hostgroup, you may get an error when rendering the template. To access a template using a Hostgroup to render, simply use this URL:

/unattended/template/Template Name/Hostgroup Name

For example, a hostgroup of name Finance, and a template named WebServerKickstart could be rendered using the url:

/unattended/template/WebServerKickstart/Finance

PXE Menus

Pxe Menus can be deployed to smart proxies from the Config Tempalates.

Writing templates

Functions and macros:

Name Description Example
root_pass The root password configured for the system
ks_console
snippets(name) Renders the specified snippet
foreman_url(kind) Provides the full URL to a host-rendered template of the given kind foreman_url("provision") => http://HOST/unattended/provision
@host The name of the host
@host.name The name of the host
@host.diskLayout The disklayout of the host (could come from the operating system)
@host.puppetmaster The puppetmaster the host should use
@host.architecture The arch of the host (i.e. x86_64)
@host.operatingsystem The operating system name
@host.operatingsystem.media_url
@host.operatingsystem.major The major version of the OS
@host.operatingsystem.minor The minor version of the OS
@host.operatingsystem.family The OS Family (I.e. redhat, debian, etc.)
@host.url_for_boot(:kernel)
@host.url_for_boot(:initrd)

Kickstart only variables:

Name Description Example
@dynamic
@osver
@arch
@mediapath
@epel
@yumrepo
@static

Preseed attributes:

Name Description Example
@preseed_path
@preseed_server

Updated by Justin Sherrill over 13 years ago · 12 revisions