123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- ===============================
- 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 directory of 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
- directory of the file. For salt includes `slspath` is the path to the directory
- of the included file.
- .. code-block:: jinja
- {{ slspath }}
|