# Configuring the Salt Proxy Minion

The Salt system is amazingly simple and easy to configure. The two components of the Salt system each have a respective configuration file. The salt-master is configured via the master configuration file, and the salt-proxy is configured via the proxy configuration file.

See also

example proxy minion configuration file

The Salt Minion configuration is very simple. Typically, the only value that needs to be set is the master value so the proxy knows where to locate its master.

By default, the salt-proxy configuration will be in `/etc/salt/proxy`. A notable exception is FreeBSD, where the configuration will be in `/usr/local/etc/salt/proxy`.

With the Salt 3004 release, the ability to configure proxy minions using the delta proxy was introduced. The delta proxy provides the ability for a single control proxy minion to manage multiple proxy minions.

See also

Installing and Using Deltaproxy

## Proxy-specific Configuration Options

### `add_proxymodule_to_opts`

Added in version 2015.8.2.

Changed in version 2016.3.0.

Default: `False`

Add the proxymodule LazyLoader object to opts.

    add_proxymodule_to_opts: True

### `proxy_merge_grains_in_module`

Added in version 2016.3.0.

Changed in version 2017.7.0.

Default: `True`

If a proxymodule has a function called `grains`, then call it during regular grains loading and merge the results with the proxy's grains dictionary. Otherwise it is assumed that the module calls the grains function in a custom way and returns the data elsewhere.

    proxy_merge_grains_in_module: False

### `proxy_keep_alive`

Added in version 2017.7.0.

Default: `True`

Whether the connection with the remote device should be restarted when dead. The proxy module must implement the `alive` function, otherwise the connection is considered alive.

    proxy_keep_alive: False

### `proxy_keep_alive_interval`

Added in version 2017.7.0.

Default: `1`

The frequency of keepalive checks, in minutes. It requires the `proxy_keep_alive` option to be enabled (and the proxy module to implement the `alive` function).

    proxy_keep_alive_interval: 5

### `proxy_always_alive`

Added in version 2017.7.0.

Default: `True`

Whether the proxy should maintain the connection with the remote device. Similarly to `proxy_keep_alive`, this option is very specific to the design of the proxy module. When `proxy_always_alive` is set to `False`, the connection with the remote device is not maintained and has to be closed after every command.

    proxy_always_alive: False

### `proxy_merge_pillar_in_opts`

Added in version 2017.7.3.

Default: `False`.

Whether the pillar data to be merged into the proxy configuration options. As multiple proxies can run on the same server, we may need different configuration options for each, while there's one single configuration file. The solution is merging the pillar data of each proxy minion into the opts.

    proxy_merge_pillar_in_opts: True

### `proxy_deep_merge_pillar_in_opts`

Added in version 2017.7.3.

Default: `False`.

Deep merge of pillar data into configuration opts. This option is evaluated only when `proxy_merge_pillar_in_opts` is enabled.

### `proxy_merge_pillar_in_opts_strategy`

Added in version 2017.7.3.

Default: `smart`.

The strategy used when merging pillar configuration into opts. This option is evaluated only when `proxy_merge_pillar_in_opts` is enabled.

### `proxy_mines_pillar`

Added in version 2017.7.3.

Default: `True`.

Allow enabling mine details using pillar data. This evaluates the mine configuration under the pillar, for the following regular minion options that are also equally available on the proxy minion: `mine_interval`, and `mine_functions`.