mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 08:58:59 +00:00
107 lines
2.7 KiB
ReStructuredText
107 lines
2.7 KiB
ReStructuredText
===============================
|
|
SLS Template Variable Reference
|
|
===============================
|
|
|
|
The template engines available to sls files and file templates come loaded
|
|
with a number of context variables. These variables contain information and
|
|
functions to assist in the generation of templates. See each variable below
|
|
for its availability -- not all variables are available in all templating
|
|
contexts.
|
|
|
|
Salt
|
|
====
|
|
|
|
The `salt` variable is available to abstract the salt library functions. This
|
|
variable is a python dictionary containing all of the functions available to
|
|
the running salt minion. It is available in all salt templates.
|
|
|
|
.. code-block:: jinja
|
|
|
|
{% for file in salt['cmd.run']('ls -1 /opt/to_remove').splitlines() %}
|
|
/opt/to_remove/{{ file }}:
|
|
file.absent
|
|
{% endfor %}
|
|
|
|
Opts
|
|
====
|
|
|
|
The `opts` variable abstracts the contents of the minion's configuration file
|
|
directly to the template. The `opts` variable is a dictionary. It is available
|
|
in all templates.
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ opts['cachedir'] }}
|
|
|
|
The ``config.get`` function also searches for values in the `opts` dictionary.
|
|
|
|
Pillar
|
|
======
|
|
|
|
The `pillar` dictionary can be referenced directly, and is available in all
|
|
templates:
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ pillar['key'] }}
|
|
|
|
Using the ``pillar.get`` function via the `salt` variable is generally
|
|
recommended since a default can be safely set in the event that the value
|
|
is not available in pillar and dictionaries can be traversed directly:
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ salt['pillar.get']('key', 'failover_value') }}
|
|
{{ salt['pillar.get']('stuff:more:deeper') }}
|
|
|
|
Grains
|
|
======
|
|
|
|
The `grains` dictionary makes the minion's grains directly available, and is
|
|
available in all templates:
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ grains['os'] }}
|
|
|
|
The ``grains.get`` function can be used to traverse deeper grains and set
|
|
defaults:
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ salt['grains.get']('os') }}
|
|
|
|
saltenv
|
|
=======
|
|
|
|
The `saltenv` variable is available in only in sls files when gathering the sls
|
|
from an environment.
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ saltenv }}
|
|
|
|
sls
|
|
====
|
|
|
|
The `sls` variable contains the sls reference value, and is only available in
|
|
the actual SLS file (not in any files referenced in that SLS). The sls
|
|
reference value is the value used to include the sls in top files or via the
|
|
include option.
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ sls }}
|
|
|
|
slspath
|
|
=======
|
|
|
|
The `slspath` variable contains the path to the current sls file. The value
|
|
of `slspath` in files referenced in the current sls depends on the reference
|
|
method. For jinja includes `slspath` is the path to the current file. For
|
|
salt includes `slspath` is the path to the included file.
|
|
|
|
.. code-block:: jinja
|
|
|
|
{{ slspath }}
|