salt配置文件
master:
1.主要配置信息#可以将主配置文件拆分不同文件放置到此目录中
default_include: master.d/*.conf
#绑定地址
interface: 0.0.0.0
#设置ipv6地址监听
ipv6: False
#消息发布使用端口TCP
publish_port: 4505
#运行master的用户
user: root
#最大文件打开限制
max_open_files: 20000
#salt管理线程数目
worker_threads: 5
#return接口端口,支持认证、文件服务、结构收集
ret_port: 4506
#pid文件位置
pidfile: /var/run/salt-master.pid
#salt运行的根目录
root_dir: /
#pki认证密钥目录
pki_dir: /etc/salt/pki/master
#salt工作和缓存数据目录
cachedir: /var/cache/salt/master
# Directory for custom modules. This directory can contain subdirectories for
# each of Salt's module types such as "runners", "output", "wheel", "modules",
# "states", "returners", etc.
#extension_modules:
# Directory for custom modules. This directory can contain subdirectories for
# each of Salt's module types such as "runners", "output", "wheel", "modules",
# "states", "returners", etc.
# Like 'extension_modules' but can take an array of paths
#module_dirs:
# - /var/cache/salt/minion/extmods
#服务启动时,验证和设置配置目录权限
verify_env: True
#设置工作缓存中所存储的旧工作信息的小时数
keep_jobs: 24
#设置salt和api命令超时时间
timeout: 3
#salt进程检测周期,此选项控制master的维护进程检测周期秒数,更新文件服务器后台清空工作缓存并执行日志
loop_interval: 60
#salt输出类型
output: nested
#show_timeout: True
#输出是否彩色
color: True
#strip_colors: False
#socket目录
sock_dir: /var/run/salt/master
#设置grains收集gpu信息
enable_gpu_grains: False
#开启工作缓存记录
job_cache: True
#minion的grains和pillar缓存在cache中
minion_data_cache: True
#event_return: mysql
# event_return_whitelist:
# - salt/master/a_tag
# - salt/master/another_tag
# event_return_blacklist:
# - salt/master/not_this_tag
# - salt/master/or_this_one
#max_event_size: 1048576
# ping_on_rotate: False
#preserve_minion_cache: False
# include: /etc/salt/extra_config
# include:
# - /etc/salt/extra_config
2.安全设置#开放模式,危险操作。当密钥失效时此选项开启后,master会接受所有minions并会清理所有pki
open_mode: False
#是否开启自动接收,若指定了autosign-file,则会自动接受autosign-file指定的密钥。
auto_accept: True
#认证超时时间
autosign_timeout: 120
#autosign_file文件目录
autosign_file: /etc/salt/autosign.conf
#autoreject_file: /etc/salt/autoreject.conf
#设置pki文件的访问权限
permissive_pki_access: False
#定义用户模块执行权限
#client_acl:
# larry:
# - test.ping
# - network.*
#定义用户模块和黑名单
#client_acl_blacklist:
# users:
# - root
# - '^(?!sudo_).*$' # all non sudo users
# modules:
# - cmd
# Enforce client_acl & client_acl_blacklist when users have sudo
# access to the salt command.
#
#sudo_acl: False
# The external auth system uses the Salt auth modules to authenticate and
# validate users to access areas of the Salt system.
#external_auth:
# pam:
# fred:
# - test.*
#
# Time (in seconds) for a newly generated token to live. Default: 12 hours
#token_expire: 43200
# Allow minions to push files to the master. This is disabled by default, for
# security purposes.
#file_recv: False
# Set a hard-limit on the size of the files that can be pushed to the master.
# It will be interpreted as megabytes. Default: 100
#file_recv_max_size: 100
# Signature verification on messages published from the master.
# This causes the master to cryptographically sign all messages published to its event
# bus, and minions then verify that signature before acting on the message.
# This is False by default.
#
# Note that to facilitate interoperability with masters and minions that are different
# versions, if sign_pub_messages is True but a message is received by a minion with
# no signature, it will still be accepted, and a warning message will be logged.
# Conversely, if sign_pub_messages is False, but a minion receives a signed
# message it will be accepted, the signature will not be checked, and a warning message
# will be logged. This behavior went away in Salt 2014.1.0 and these two situations
# will cause minion to throw an exception and drop the message.
# sign_pub_messages: False
3.ssh管理#roster文件目录
roster_file: /etc/salt/roster
# Pass in minion option overrides that will be inserted into the SHIM for
# salt-ssh calls. The local minion config is not used for salt-ssh. Can be
# overridden on a per-minion basis in the roster (`minion_opts`)
#ssh_minion_opts:
# gpg_keydir: /root/gpg
4.master模块管理#模块加载方式
# Add any additional locations to look for master runners:
#runner_dirs: []
# Enable Cython for master side modules:
#cython_enable: False
5.state系统设置#state入口文件
state_top: top.sls
#设置外部top方式
master_tops: {}
#设置external_nodes
external_nodes: None
#state默认模版
renderer: yaml_jinja
jinja_trim_blocks: False
jinja_lstrip_blocks: False
failhard: False
state_verbose: True
#
state_output: full
# state_aggregate:
# - pkg
#
#state_aggregate: False
#state_events: False
6.文件服务器设置file_roots:
base:
- /srv/salt
#设置文件校验hash类型
hash_type: md5
#文件缓存区大小
file_buffer_size: 1048576
#同步文件忽略前面正则
#file_ignore_regex:
# - '/\.svn($|/)'
# - '/\.git($|/)'
#同步文件忽略glob
# file_ignore_glob:
# - '*.pyc'
# - '*/somefolder/*.bak'
# - '*.swp'
#是否允许第三方系统管理文件并提供给minions
fileserver_backend:
- roots
#允许文件链接
fileserver_followsymlinks: False
#忽略文件链接
fileserver_ignoresymlinks: True
#限制遍历
fileserver_limit_traversal: False
#设置fileserver-events
fileserver_events: False
#gitfs_remotes:
# - git://github.com/saltstack/salt-states.git
# -
#gitfs_root: somefolder/otherfolder
7.pillar系统设置#pillar目录设置
pillar_roots:
base:
- /srv/pillar
#是否开启ext_pillar
#ext_pillar:
# - hiera: /etc/hiera.yaml
# - cmd_yaml: cat /etc/salt/yaml
#开启ext_pillar_first
#ext_pillar_first: False
#开启ssl验证
#pillar_gitfs_ssl_verify: True
#开启pillar读取opts参数
pillar_opts: False
#render错误信息
#pillar_safe_render_error: True
#合并策略
#pillar_source_merging_strategy: smart
8.syndic设置#order_masters: False
# If this master will be running a salt syndic daemon, syndic_master tells
# this master where to receive commands from.
#syndic_master: masterofmaster
# This is the 'ret_port' of the MasterOfMaster:
#syndic_master_port: 4506
# PID file of the syndic daemon:
#syndic_pidfile: /var/run/salt-syndic.pid
# LOG file of the syndic daemon:
#syndic_log_file: syndic.log
9.##### 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.
# 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.
#peer:
# foo.example.com:
# - test.*
# - pkg.*
#
# This will allow all minions to execute all commands:
#peer:
# .*:
# - .*
#
# This is not recommended, since it would allow anyone who gets root on any
# single minion to instantly have root on all of the minions!
# Minions can also be allowed to execute runners from the salt master.
# Since executing a runner from the minion could be considered a security risk,
# it needs to be enabled. This setting functions just like the peer setting
# except that it opens up runners instead of module functions.
#
# All peer runner support is turned off by default and must be enabled before
# using. This will enable all peer runners for all minions:
#peer_run:
# .*:
# - .*
#
# To enable just the manage.up runner for the minion foo.example.com:
#peer_run:
# foo.example.com:
# - manage.up
10.mine settings##### Mine settings #####
##########################################
# Restrict mine.get access from minions. By default any minion has a full access
# to get all mine data from master cache. In acl definion below, only pcre matches
# are allowed.
# mine_get:
# .*:
# - .*
#
# The example below enables minion foo.example.com to get 'network.interfaces' mine
# data only, minions web* to get all network.* and disk.* mine data and all other
# minions won't get any mine data.
# mine_get:
# foo.example.com:
# - network.interfaces
# web.*:
# - network.*
# - disk.*
11.日志管理#日志文件
log_file: /var/log/salt/master
#key日志文件
key_logfile: /var/log/salt/key
#日志级别
log_level: warning
#日志记录级别
log_level_logfile: warning
#日志时间格式
log_datefmt: '%H:%M:%S'
log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'
#记录日志时间格式
log_fmt_console: '[%(levelname)-8s] %(message)s'
log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'
#lib库的日志级别
# log_granular_levels:
# 'salt': 'warning'
# 'salt.modules': 'debug'
#
log_granular_levels: {}
12.其他设置(Node Groups...)##### Node Groups #####
##########################################
# Node groups allow for logical groupings of minion nodes. A group consists of a group
# name and a compound target.
nodegroups:
web: '136 or 137'
test: '138 or 139'
##### Range Cluster settings #####
##########################################
# The range server (and optional port) that serves your cluster information
# https://github.com/ytoolshed/range/wiki/%22yamlfile%22-module-file-spec
#
#range_server: range:80
##### Windows Software Repo settings #####
##############################################
# Location of the repo on the master:
#win_repo: '/srv/salt/win/repo'
#
# Location of the master's repo cache file:
#win_repo_mastercachefile: '/srv/salt/win/repo/winrepo.p'
#
# List of git repositories to include with the local repo:
#win_gitrepos:
# - 'https://github.com/saltstack/salt-winrepo.git'
##### Returner settings ######
############################################
# Which returner(s) will be used for minion's result:
#return: mysql