##### 主要配置设置 ##### 配置 默认值 说明 例子 default_include minion.d/*.conf master能够从其余文件读取配置,默认状况下master将自动的将master.d/*.conf中的配置读取出来并应用,其中master.d目录是相对存在于主配置文件所在的目录 default_include: minion.d/*.conf master salt master服务器的ID master : salt ipv6 False minion是否应该经过IPV6链接master ipv6 : False retry_dns 30 minion在解析master的ip失败后的重试等待时间,设置为0,则关闭重试 retry_dns : 30 user root minion的运行用户,关系到minion执行命令的权限 user : root pidfile /var/run/salt-minion.pid minion的pid文件位置 pidfile: /var/run/salt-minion.pid root_dir / 指定该目录为salt运行的根目录,改变它可使salt从另一个目录开始运行,比如chroot root_dir: / pki_dir /etc/salt/pki/minion 存储PIK信息的目录 pki_dir: /etc/salt/pki/minion id 不指定的话,salt经过socket.getfqdn()来获取主机的名称来做为标识,指定给ID,做为minion与master交互的身份标识 id: 192.168.0.100 append_domain 指定一个主机名称或是一个域名,当socket.getfqdn()获取主机标识失败时候,能够用来做为替补ID append_domain : 192.168.0.100 grains 使用sls文件给minion自定义静态的grain信息。 grains至关于对minion特别信息的匹配对象组,例如例子里面的匹配粒子信息中roles值为webserber,memcache的minion ## 注意sls文件是利用缩进两个空格来做为缩进标识 grains: roles: - webserver - memcache deployment: datacenter4 cabinet: 13 cab_u: 14-15 cachedir /var/cache/salt/minion 这个目录是用来存放缓存信息,特别是salt工做执行的命令信息 cachedir: /var/cache/salt/minion verify_env True 启动时候对配置目录进行验证并设置权限 verify_env: True cache_jobs False minion会在本地缓存salt执行过的命令返回数据。能够减小命令执行时间,减低IO,但结果可能不会实时 cache_jobs: False sock_dir /var/run/salt/minion minion socke保存目录 sock_dir: /var/run/salt/minion output nested 设置salt-call的默认输出方式,nested是使用默认设置的来输出 output: nested color True 是否对输出结果进行颜色渲染 color : True backup_mode minion 当进行文件更新,修改,***操做时,备份文件的方式,minion是本地进行备份 /etc/ssh/sshd_config: file.managed: - source: salt://ssh/sshd_config - backup: minion acceptance_wait_time 10 等待master接受minion的认证时间 acceptance_wait_time: 10 acceptance_wait_time_max 0 断线重试次数,若是设置为0,无限次重试,若是大于0,则链接重试到该设置值 acceptance_wait_time_max: 0 random_reauth_delay 60 随机重认证间隔(秒),例如当master修改key时,全部的minion须要从新认证,这个时候容易产生syn风暴,设置该随机值,可使minion分不一样时间进行从新认证,避免该问题 random_reauth_delay:60 loop_interval 60 minion定时任务执行时间间隔 loop_interval: 60 dns_check True 确保原先的dns解析是正常的 dns_check: True ipc_mode ipc windows缺乏IPC协议支持,而是使用更慢的TCP来做为内部进程交流的协议,在windows上须要设置为tcp ipc_mode: ipc tcp_pub_port 4510 当设置为tcp模式时候,该参数覆盖掉原先minon指定的tcp端口 tcp_pub_port: 4510 tcp_pull_port 4511 tcp_pull_port: 4511 include /etc/salt/extra_config 能够包含其余文件中的配置,要启用此功能,经过此参数定义路径或文件,此路径能够是相对的也能够是绝对的,相对的,会被看做相对于主配置文件所在的目录,路径中还可使用相似于shell风格的通配符,若是没有文件匹配的路径传递给此选项,那么master将会在日志中记录一条警告的消息 include: - /etc/salt/extra_config - /etc/roles/webserver ##### Minion 模块管理配置 ##### disable_modules [] 限制容许执行的模块,对特别的权限能够进行设置,防止服务器重启等 disable_modules: [cmd,test] module_dirs [] 模块能够经过指定任意目录进行加载;指定一系列的外部目录用于搜索minion的模块以及returners。指定的路径必须给minion彻底的操做权限 module_dirs: [] returner_dirs [] returner_dirs: [] states_dirs [] states_dirs: [] render_dirs [] render_dirs: [] providers minion的模块provider能够经过参数providers来进行特别指定 providers: pkg: yumpkg5 ython_enable False 容许加载加密的模块 ython_enable: False ##### State 管理设置 ##### renderer yaml_jinja state配置文件支持下面的配置语法,经过执行该参数,告诉saltstatck解析state模板的语言方法 # yaml_jinja # yaml_mako # yaml_wempy # json_jinja # json_mako # json_wempy renderer: yaml_jinja failhard False 设置一个全局的failhard表示,当单个的状态执行失败后,将会通知全部的状态中止运行状态 failhard: False autoload_dynamic_modules True 自动发现并加载master上的模块 autoload_dynamic_modules: True clean_dynamic_modules True 若是发现master上的模块已经清除,则自动清楚对应的模块 clean_dynamic_modules : True environment None master在运行states的时候,一般不会把minion分割出来给任意一个单独的环境,但在minion端,能够自行进行独立的环境设置 environment:None state_top top.sls 指定top.sls文件的位置 state_top: top.sls startup_states '' 在minion daemon开始时执行states. # 'highstate' -- 执行 state.highstate # 'sls' -- 读取 sls_list 参数配置的路径下的sls文件列表并执行 # 'top' -- 读取top_file参数设置的文件并执行master上面设置的sls配置 startup_states: '' sls_list 当startup_states配置为sls,该参数列出minion要运行的states文件 sls_list: - edit.vim - hyper top_file " 当startup_states是top时,指定要执行的top文件 top_file: '' ##### 文件目录设置 ##### ######################### file_client remote 设置minion的文件客户端,reomote,默认选项,minon会到master去查找文件;设置为local,则minion会在本地查找配置文件 file_client: remote file_roots file_roots: base: - /srv/salt 设置文件客户端路径 file_roots: base: - /srv/salt/ dev: - /srv/salt/dev/services - /srv/salt/dev/states prod: - /srv/salt/prod/services - /srv/salt/prod/states fileserver_limit_traversal False 设置saltstack查找state文件时候,仅遍历查找带sls后缀的文件或是带_modules后缀的目录 fileserver_limit_traversal: False pillar_roots pillar_roots: base: - /srv/pillar 当file_client设置为local时候,该参数制定pillar的搜索路径 pillar_roots: base: - /srv/pillar ###### 安全设置 ##### open_mode False open_mode是一个危险的安全特性,当master遇到pki认证系统,秘钥混淆和身份验证失效时,打开open_mode,master将会接受全部的身份验证。这将会清理掉pki秘钥接受的minions。一般状况下open_mode不该该被打开,它只适用于短期内清理pki keys,若要打开它,可将值调整为True open_mode: False permissive_pki_access False permissive_pki_access:False state_verbose True state_verbose容许从minions返回更多详细的信息,一般清空下只返回失败或者已经更改,可是将state_verbose设置为True,将会返回全部的状态检查 state_verbose:True state_output full state_output的设置将会改变信息输出的格式,当被设置为”full”时,将所有的输出一行一行的显示输出;当被设置为”terse“时,将会被缩短为一行进行输出;当被设置为”mixed”时,输出样式将会是简洁的,除非状态失败,这种状况下将会所有输出;当被设置为”change”时,输出将会彻底输出除非状态没有改变 state_output:full master_finger '' master_finger:'' ###### Thread 设置 ##### multiprocessing True 多线程支持 multiprocessing: True ##### Logging 设置 ##### log_file /var/log/salt/minion log输出路径设置 #log_file: /var/log/salt/minion #log_file: file:///dev/log #log_file: udp://loghost:10514 # #log_file: /var/log/salt/minion #key_logfile: /var/log/salt/key log_level warning 控制台(console)日志默认输出等级: 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical' log_level: warning log_level_logfile warning 日志文件输出等级: 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'. log_level_logfile:warning log_datefmt '%H:%M:%S' 控制台日志日期格式 log_datefmt: '%H:%M:%S' log_datefmt_logfile %Y-%m-%d %H:%M:%S' 日志文件日期格式 log_datefmt_logfile: '%Y-%m-%d %H:%M:%S' log_fmt_console '[%(levelname)-8s] %(message)s' 控制台日志格式 log_fmt_console: '[%(levelname)-8s] %(message)s' log_fmt_logfile '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s' 日志文件信息格式 log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s' log_granular_levels {} 更加高级的指定日志输出 log_granular_levels: 'salt': 'warning', 'salt.modules': 'debug' ###### Module 配置 ##### test True 指定容许全部的模块运行测试模式 test:True test.foo foo 给测试模块test.foo指定一个简单的值 test.foo: foo test.bar [baz,quo] 列表的测试模块值 test.bar: [baz,quo] test.baz {spam: sausage, cheese: bread} 测试模块指定字典格式的值 test.baz: {spam: sausage, cheese: bread}