salt.modules.grains

Return/control aspects of the grains data

salt.modules.grains.filter_by(lookup_dict, grain='os_family')

Look up the given grain in a given dictionary for the current OS and return the result

Although this may occasionally be useful at the CLI, the primary intent of this function is for use in Jinja to make short work of creating lookup tables for OS-specific data. For example:

{% set pkg_table = {
    'Debian': {'name': 'apache2'},
    'RedHat': {'name': 'httpd'},
} %}
{% set pkg = salt['grains.filter_by'](pkg_table) %}

myapache:
  pkg:
    - installed
    - name: {{ pkg.name }}

CLI Example:

salt '*' grains.filter_by '{Debian: Debheads rule, RedHat: I love my hat}'
salt.modules.grains.get(key, default='')

Attempt to retrieve the named value from grains, if the named value is not available return the passed default. The default return is an empty string.

The value can also represent a value in a nested dict using a ":" delimiter for the dict. This means that if a dict in grains looks like this:

{'pkg': {'apache': 'httpd'}}

To retrieve the value associated with the apache key in the pkg dict this key can be passed:

pkg:apache

CLI Example:

salt '*' grains.get pkg:apache
salt.modules.grains.item(*args, **kwargs)

Return one or more grains

CLI Example:

salt '*' grains.item os
salt '*' grains.item os osrelease oscodename

Sanitized CLI Example:

salt '*' grains.item host sanitize=True
salt.modules.grains.items(sanitize=False)

Return all of the minion's grains

CLI Example:

salt '*' grains.items

Sanitized CLI output:

salt '*' grains.items sanitize=True
salt.modules.grains.ls()

Return a list of all available grains

CLI Example:

salt '*' grains.ls
salt.modules.grains.setval(key, val)

Set a grains value in the grains config file

CLI Example:

salt '*' grains.setval key val

Previous topic

salt.modules.glance

Next topic

salt.modules.groupadd