2011-10-30 16:04:21 +00:00
|
|
|
===========================
|
|
|
|
Configuring the Salt Master
|
|
|
|
===========================
|
2011-05-23 06:51:31 +00:00
|
|
|
|
|
|
|
The Salt system is amazingly simple and easy to configure, the two components
|
|
|
|
of the Salt system each have a respective configuration file. The
|
|
|
|
:command:`salt-master` is configured via the master configuration file, and the
|
|
|
|
:command:`salt-minion` is configured via the minion configuration file.
|
|
|
|
|
2012-01-19 05:04:48 +00:00
|
|
|
.. seealso::
|
|
|
|
:ref:`example master configuration file <configuration-examples-master>`
|
2011-05-23 06:51:31 +00:00
|
|
|
|
|
|
|
The configuration file for the salt-master is located at
|
|
|
|
:file:`/etc/salt/master`. The available options are as follows:
|
|
|
|
|
2011-05-31 04:16:25 +00:00
|
|
|
Primary Master Configuration
|
|
|
|
----------------------------
|
|
|
|
|
2011-05-23 06:51:31 +00:00
|
|
|
.. conf_master:: interface
|
|
|
|
|
|
|
|
``interface``
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Default: ``0.0.0.0`` (all interfaces)
|
|
|
|
|
|
|
|
The local interface to bind to.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
interface: 192.168.0.1
|
|
|
|
|
|
|
|
.. conf_master:: publish_port
|
|
|
|
|
|
|
|
``publish_port``
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Default: ``4505``
|
|
|
|
|
|
|
|
The network port to set up the publication interface
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
publish_port: 4505
|
|
|
|
|
2012-01-19 05:04:48 +00:00
|
|
|
.. conf_master:: user
|
|
|
|
|
|
|
|
``user``
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Default: ``root``
|
|
|
|
|
|
|
|
The user to run the Salt processes
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
user: root
|
|
|
|
|
2011-05-23 06:51:31 +00:00
|
|
|
.. conf_master:: worker_threads
|
|
|
|
|
|
|
|
``worker_threads``
|
|
|
|
------------------
|
|
|
|
|
|
|
|
Default: ``5``
|
|
|
|
|
|
|
|
The number of threads to start for receiving commands and replies from minions.
|
|
|
|
If minions are stalling on replies because you have many minions, raise the
|
|
|
|
worker_threads value.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
worker_threads: 5
|
|
|
|
|
|
|
|
.. conf_master:: ret_port
|
|
|
|
|
|
|
|
``ret_port``
|
|
|
|
------------
|
|
|
|
|
|
|
|
Default: ``4506``
|
|
|
|
|
|
|
|
The port used by the return server, this is the server used by Salt to receive
|
|
|
|
execution returns and command executions.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
ret_port: 4506
|
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
.. conf_master:: root_dir
|
|
|
|
|
|
|
|
``root_dir``
|
|
|
|
------------
|
|
|
|
|
|
|
|
Default: :file:`/`
|
|
|
|
|
|
|
|
The system root direcotry to oporate from, change this to make Salt run from
|
|
|
|
an alternative root
|
|
|
|
|
2012-01-16 05:36:49 +00:00
|
|
|
.. code-block:: yaml
|
2012-01-13 19:35:56 +00:00
|
|
|
|
|
|
|
root_dir: /
|
|
|
|
|
2011-05-23 06:51:31 +00:00
|
|
|
.. conf_master:: pki_dir
|
|
|
|
|
|
|
|
``pki_dir``
|
|
|
|
-----------
|
|
|
|
|
|
|
|
Default: :file:`/etc/salt/pki`
|
|
|
|
|
|
|
|
The directory to store the pki authentication keys.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
pki_dir: /etc/salt/pki
|
|
|
|
|
|
|
|
.. conf_master:: cachedir
|
|
|
|
|
|
|
|
``cachedir``
|
|
|
|
------------
|
|
|
|
|
|
|
|
Default: :file:`/var/cache/salt`
|
|
|
|
|
|
|
|
The location used to store cache information, particularly the job information
|
|
|
|
for executed salt commands.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
cachedir: /var/cache/salt
|
|
|
|
|
2011-05-31 04:16:25 +00:00
|
|
|
.. conf_master:: keep_jobs
|
|
|
|
|
|
|
|
``keep_jobs``
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Default: ``24``
|
|
|
|
|
|
|
|
Set the number of hours to keep old job information
|
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
.. conf_master:: sock_dir
|
|
|
|
|
|
|
|
``sock_dir``
|
|
|
|
------------
|
|
|
|
|
|
|
|
Default:: :file:`/tmp/salt-unix`
|
|
|
|
|
|
|
|
Set the location to use for creating Unix sockets for master process
|
|
|
|
communication
|
|
|
|
|
2011-05-31 04:16:25 +00:00
|
|
|
Master Security Settings
|
|
|
|
------------------------
|
|
|
|
|
2011-05-23 06:51:31 +00:00
|
|
|
.. conf_master:: open_mode
|
|
|
|
|
|
|
|
``open_mode``
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Default: ``False``
|
|
|
|
|
|
|
|
Open mode is a dangerous security feature. One problem encountered with pki
|
|
|
|
authentication systems is that keys can become "mixed up" and authentication
|
|
|
|
begins to fail. Open mode turns off authentication and tells the master to
|
2011-07-27 23:46:53 +00:00
|
|
|
accept all authentication. This will clean up the pki keys received from the
|
2011-05-23 06:51:31 +00:00
|
|
|
minions. Open mode should not be turned on for general use, open mode should
|
|
|
|
only be used for a short period of time to clean up pki keys. To turn on open
|
|
|
|
mode the value passed must be ``True``.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
open_mode: False
|
|
|
|
|
2011-05-31 04:16:25 +00:00
|
|
|
.. conf_master:: auto_accept
|
|
|
|
|
|
|
|
``auto_accept``
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Default: ``False``
|
|
|
|
|
|
|
|
Enable auto_accept, this setting will automatically accept all incoming
|
|
|
|
public keys from the minions
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
auto_accept: False
|
|
|
|
|
|
|
|
Master State System Settings
|
2011-06-23 02:55:35 +00:00
|
|
|
----------------------------
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
.. conf_master:: state_top
|
|
|
|
|
|
|
|
``state_top``
|
|
|
|
-------------
|
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
Default: ``top.sls``
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
The state system uses a "top" file to tell the minions what environment to
|
|
|
|
use and what modules to use. The state_top file is defined relative to the
|
|
|
|
root of the base environment
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
state_top: top.sls
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
.. conf_master:: renderer
|
|
|
|
|
|
|
|
``renderer``
|
|
|
|
------------
|
|
|
|
|
|
|
|
Default: ``yaml_jinja``
|
|
|
|
|
|
|
|
The renderer to use on the minions to render the state data
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
renderer: yaml_jinja
|
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
.. conf_master:: failhard
|
|
|
|
|
|
|
|
Default:: ``False``
|
|
|
|
|
|
|
|
Set the global failhard flag, this informs all states to stop running states
|
|
|
|
at the moment a single state fails
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
failhard: False
|
|
|
|
|
2011-05-31 04:16:25 +00:00
|
|
|
Master File Server Settings
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
.. conf_master:: file_roots
|
|
|
|
|
|
|
|
``file_roots``
|
|
|
|
--------------
|
|
|
|
|
|
|
|
Default: ``base: [/srv/salt]``
|
|
|
|
|
|
|
|
Salt runs a lightweight file server written in zeromq to deliver files to
|
|
|
|
minions. This file server is built into the master daemon and does not
|
|
|
|
require a dedicated port.
|
|
|
|
The file server works on environments passed to the master, each environment
|
|
|
|
can have multiple root directories, the subdirectories in the multiple file
|
|
|
|
roots cannot match, otherwise the downloaded files will not be able to be
|
|
|
|
reliably ensured. A base environment is required to house the top file
|
|
|
|
Example:
|
2011-06-25 04:38:27 +00:00
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
file_roots:
|
|
|
|
base:
|
|
|
|
- /srv/salt/
|
|
|
|
dev:
|
|
|
|
- /srv/salt/dev/services
|
|
|
|
- /srv/salt/dev/states
|
|
|
|
prod:
|
|
|
|
- /srv/salt/prod/services
|
|
|
|
- /srv/salt/prod/states
|
2011-05-31 04:16:25 +00:00
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
base:
|
|
|
|
- /srv/salt
|
|
|
|
|
|
|
|
.. conf_master:: hash_type
|
|
|
|
|
|
|
|
``hash_type``
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Default: ``md5``
|
|
|
|
|
|
|
|
The hash_type is the hash to use when discovering the hash of a file on
|
|
|
|
the master server, the default is md5, but sha1, sha224, sha256, sha384
|
|
|
|
and sha512 are also supported.
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
hash_type: md5
|
|
|
|
|
|
|
|
.. conf_master:: file_buffer_size
|
|
|
|
|
|
|
|
``file_buffer_size``
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Default: ``1048576``
|
|
|
|
|
|
|
|
The buffer size in the file server in bytes
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
file_buffer_size: 1048576
|
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
Syndic Server Settings
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
The Salt syndic is used to pass commands through a master from a higher
|
|
|
|
master. Using the syndic is simple, if this is a master that will have
|
|
|
|
syndic servers(s) below it set the "order_masters" setting to True, if this
|
|
|
|
is a master that will be running a syndic daemon for passthrough the
|
|
|
|
"syndic_master" setting needs to be set to the location of the master server
|
|
|
|
to recieve commands from
|
|
|
|
|
|
|
|
.. conf_master:: order_masters
|
|
|
|
|
|
|
|
``order_masters``
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Default: ``False``
|
|
|
|
|
|
|
|
Extra data needs to be sind with publications if the master os controlling a
|
|
|
|
lower level master via a syndic minion. If this is the case the order_masters
|
|
|
|
value must be set to True
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
order_masters: False
|
|
|
|
|
|
|
|
.. conf_master:: syndic_master
|
|
|
|
|
|
|
|
``syndic_master``
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Default: ``None``
|
|
|
|
|
|
|
|
If this master will be running a salt-syndic to connect to a higher level
|
|
|
|
master specify the higher level master with this configuration value
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
syndic_master: masterofmasters
|
|
|
|
|
|
|
|
Peer Publish Settings
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Salt minions can send commands to other minions, but only if the minion is
|
|
|
|
allowed to. By default "Peer Publication" is disabled, and when enabled it
|
|
|
|
is enabled for specific minions and specific commands. This allows secure
|
|
|
|
compartmentalization of commands based on individual minions.
|
|
|
|
|
|
|
|
.. conf_master:: peer
|
|
|
|
|
|
|
|
``peer``
|
|
|
|
--------
|
|
|
|
|
|
|
|
Default: ``{}``
|
|
|
|
|
|
|
|
The configuration uses regular expressions to match minions and then a list
|
|
|
|
of regular expressions to match functions, the following will allow the
|
|
|
|
minion authenticated as foo.example.com to execute functions from the test
|
|
|
|
and pkg modules
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
peer:
|
|
|
|
foo.example.com:
|
|
|
|
- test.*
|
|
|
|
- pkg.*
|
|
|
|
|
|
|
|
This will allow all minions to execute all commands:
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
peer:
|
|
|
|
.*:
|
|
|
|
- .*
|
|
|
|
|
|
|
|
This is not recomanded, since it would allow anyone who gets root on any
|
|
|
|
single minion to instantly have root on all of the minions!
|
|
|
|
|
|
|
|
Node Groups
|
|
|
|
-----------
|
|
|
|
|
|
|
|
.. conf_master:: nodegroups
|
|
|
|
|
|
|
|
Default: ``{}``
|
|
|
|
|
|
|
|
Node groups allow for logical groupings of minion nodes.
|
|
|
|
A group consists of a group name and a compound target.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
nodegroups:
|
|
|
|
group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
|
|
|
|
group2: 'G@os:Debian and foo.domain.com'
|
|
|
|
|
2011-05-31 04:16:25 +00:00
|
|
|
Master Logging Settings
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
.. conf_master:: log_file
|
|
|
|
|
|
|
|
``log_file``
|
|
|
|
------------
|
|
|
|
|
2012-01-14 00:27:21 +00:00
|
|
|
Default: :file:`/var/log/salt/master`
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
The location of the master log file
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
log_file: /var/log/salt/master
|
|
|
|
|
|
|
|
.. conf_master:: log_level
|
|
|
|
|
|
|
|
``log_level``
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Default: ``warning``
|
|
|
|
|
|
|
|
The level of messages to send to the log file.
|
|
|
|
One of 'info', 'quiet', 'critical', 'error', 'debug', 'warning'.
|
|
|
|
|
2011-06-23 02:41:10 +00:00
|
|
|
.. code-block:: yaml
|
2011-05-31 04:16:25 +00:00
|
|
|
|
|
|
|
log_level: warning
|
|
|
|
|
|
|
|
.. conf_master:: log_granular_levels
|
|
|
|
|
|
|
|
``log_granular_levels``
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
Default: ``{}``
|
|
|
|
|
|
|
|
Logger levels can be used to tweak specific loggers logging levels.
|
|
|
|
Imagine you want to have the salt library at the 'warning' level, but, you
|
|
|
|
still wish to have 'salt.modules' at the 'debug' level:
|
2011-06-25 04:38:27 +00:00
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
2012-01-13 19:35:56 +00:00
|
|
|
log_granular_levels:
|
2011-05-31 04:16:25 +00:00
|
|
|
'salt': 'warning',
|
|
|
|
'salt.modules': 'debug'
|