salt-minion配置文件详解

本文系统:centos6.5

1
2
3
4
[root@master salt]# rpm -qa |grep salt
salt-minion-2014.1.7-3.el6.noarch
salt-master-2014.1.7-3.el6.noarch
salt-2014.1.7-3.el6.noarch

salt-minion位置:

1
/etc/salt/minion

##### Primary configuration settings #####

#default_include: minion.d/*.conf      #默认值 :minion.d/*.conf  ; minion 可以从其他文件读取配置,默认情况下minion将自动的将minion.d/*.conf中的配置读取出来并应用,其中minion.d目录是相对存在于主配置文件所在的目录

1
default_include: minion.d/*.conf

#master: salt   #默认值 : salt  ; master服务器的ID

1
master: 192.168.28.141

# retry_dns: 30    # 默认值 : 30 ;minion在解析master的ip失败后的重试等待时间,设置为0,则关闭重试

1
retry_dns: 30

#master_port: 4506  #默认值 :4506  ;  设置主回复和认证服务器使用的端口

1
master_port: 4506

#user: root   #默认值 :root ; minion的运行用户,关系到minion执行命令的权限 

1
user: root

#pidfile: /var/run/salt-minion.pid  # 默认值 : pidfile: /var/run/salt-minion.pid  ; minion的pid文件位置

1
pidfile: /var/run/salt-minion.pid

#root_dir: /    #默认值 : /  ;指定该目录为salt运行的根目录,改变它可以使salt从另外一个目录开始运行,好比chroot 

1
root_dir: /

#pki_dir: /etc/salt/pki/minion     # 默认值 : /etc/salt/pki/minion   ; 存储PIK信息的目录

1
pki_dir: /etc/salt/pki/minion

#id:      # 默认值 : null   ;    指定给ID,作为minion与master交互的身份标识,不指定的话,salt通过socket.getfqdn()来获取主机的名称来作为标识

1
id: _host_serv_1.lansgg.com

#append_domain:   # 默认值 : null   ;指定一个主机名称或是一个域名,当socket.getfqdn()获取主机标识失败时候,可以用来作为替补ID

1
append_domain:  error_192_168_28_140

#grains:        #默认值 :         ;使用sls文件给minion自定义静态的grain信息。grains相当于对minion特别信息的匹配对象组,例如例子里面的匹配粒子信息中roles值为webserber,memcache的minion

1
2
3
4
5
6
7
8
grains:
  roles:
    - webserver
    - memcache
  deployment: datacenter4
  cabinet: 13
  cab_u: 14-15
#cachedir: /var/cache/salt/minion   # 默认值 : /var/cache/salt/minion  ; 存放缓存信息,salt工作执行的命令信息
1
cachedir: /var/cache/salt/minion

#verify_env: True       # 默认值 : True    ; 启动时候对配置目录进行验证并设置权限

1
verify_env: True

#cache_jobs: False     # 默认值 :False  ; minion会在本地缓存salt执行过的命令返回数据。可以减少命令执行时间,减低IO,但结果可能不会实时

1
cache_jobs: False

#sock_dir: /var/run/salt/minion  # 默认值 : /var/run/salt/minion  ; minion socket保存目录

1
sock_dir: /var/run/salt/minion

#output: nested    # 默认值 : nested   ; 设置salt-call的默认输出方式,nested是使用默认设置的来输出 

1
output: nested

#color: True      # 默认值 :True      ; 是否对输出结果进行颜色渲染  

1
color: True

# /etc/ssh/sshd_config:
#   file.managed:
#     - source: salt://ssh/sshd_config
#     - backup: minion
#  默认值 : 本功能关闭      ;备份文件,管理文件递归在“cachedir”/ file_backups相对于原始位置和附加时间戳;唯一有效的设置是“minion”  默认情况下禁用。另外这个状态可以为每个文件指定文件

#backup_mode: minion       # 默认值 : minion  ; 当进行文件更新,修改操作时,备份文件的方式,minion是本地进行备份   

1
2
3
4
5
6
7
/etc/ssh/sshd_config:
 
     file.managed:
 
      source: salt://ssh/sshd_config
 
      - backup: minion

#acceptance_wait_time: 10   # 默认值 : 10   ; 等待master接受minion的认证时间

1
acceptance_wait_time: 10

#acceptance_wait_time_max: 0  # 默认值 : 0  ; 断线重试次数,如果设置为0,无限次重试,如果大于0,则连接重试到该设置值

1
acceptance_wait_time_max: 0

#rejected_retry: False     # 默认值 : False   ; 向master申请key的时候,被拒绝,是否重试

1
ejected_retry: False

#random_reauth_delay: 60   # 默认值 : 60      ;随机重认证间隔(秒),例如当master修改key时,所有的minion需要重新认证,这个时候容易产生syn风暴,设置该随机值,可以使  minion分不同时间进行重新认证,避免该问题

1
random_reauth_delay: 60

auth_timeout: 3      # 默认值   : 3     ;认证超时时间(s)

1
auth_timeout: 5

#loop_interval: 60     # 默认值 : 60    ;minion定时任务执行时间间隔  s

1
loop_interval: 300

#grains_refresh_every = 1    # 默认值  1       ;   对grains定时检测,(min),0为不检测

1
#grains_refresh_every = 1

# grains_cache: False   # 默认值 : False       ;对grains进行缓存

1
grains_cache: False

#dns_check: True     # 默认值  : True  ; 检测dns解析是否正常的

1
dns_check: True

#ipc_mode: ipc     # 默认值 : ipc  ; windows缺少IPC协议支持,而是使用更慢的TCP来作为内部进程交流的协议,在windows上需要设置为tcp

1
ipc_mode: ipc

#tcp_pub_port: 4510
#tcp_pull_port: 4511                ;上面 当设置为tcp模式时候,该参数覆盖掉原先minon指定的tcp端口

1
2
tcp_pub_port: 4510
tcp_pull_port: 4511

# include: /etc/salt/extra_config      # 默认值 : /etc/salt/extra_config      ;可以包含其他文件中的配置,要启用此功能,通过此参数定义路径或文件,此路径可以是相对的也可以是绝对的,相对的,会被看作相对于主配置文件所在的目录, 路径中还可以使用类似于shell风格的通配符,如果没有文件匹配的路径传递给此选项,那么master将会在日志中记录一条警告的消息 

1
2
3
#include:
  /etc/salt/extra_config
  /etc/roles/webserver

#####   Minion module management     #####

#disable_modules: [cmd,test]    #         ;  限制允许执行的模块,对特别的权限可以进行设置,防止服务器重启等

1
disable_modules: [cmd,test]

#module_dirs: []
#returner_dirs: []
#states_dirs: []
#render_dirs: []

########模块可以通过指定任意目录进行加载;指定一系列的外部目录用于搜索minion的模块以及returners。指定的路径必须给minion完全的操作权限

1
2
3
4
module_dirs: []
returner_dirs: []
states_dirs: []
render_dirs: []

#providers:        #           ;    minion的模块provider可以通过参数providers来进行特别指定

1
2
providers:
  pkg: yumpkg5

#####    State Management Settings    #####

#renderer: yaml_jinja     # 默认值   : yaml_jinja       ;state配置文件支持下面的配置语法,通过执行该参数,告诉saltstatck解析state模板的语言方法# yaml_jinja

# yaml_mako    # yaml_wempy    # json_jinja        # json_mako      # json_wempy

1
renderer: yaml_jinja

#failhard: False      # 默认值 : False     ;   设置一个全局的failhard表示,当单个的状态执行失败后,将会通知所有的状态停止运行状态

1
failhard: False

#autoload_dynamic_modules: True    # 默认值  : True  ;自动发现并加载master上的模块

1
autoload_dynamic_modules: True

#clean_dynamic_modules: True     # 默认值     : True     ;如果发现master上的模块已经清除,则自动清楚对应的模块

1
clean_dynamic_modules: True

#environment: None         # 默认值  : None   ;master在运行states的时候,通常不会把minion分割出来给任意一个单独的环境,但在minion端,可以自行进行独立的环境设置

1
environment: None

#state_top: top.sls      # 默认值   : top.sls  ; 指定top.sls文件的位置  

1
state_top: top.sls

#startup_states: ''          # 默认值: ‘‘   ;在minion daemon开始时执行states.       # 'highstate' -- 执行 state.highstate       # 'sls' -- 读取 sls_list 参数配置的路径下的sls文件列表并执行          # 'top' -- 读取top_file参数设置的文件并执行master上面设置的sls配置

1
startup_states: ''

#sls_list:      # 默认值  :   ;  当startup_states配置为sls,该参数列出minion要运行的states文件

1
2
3
sls_list:
  - edit.vim
  - hyper

#top_file: ''    # 默认值  :’’  ;    当startup_states是top时,指定要执行的top文件    

1
top_file: ''

#####     File Directory Settings    #####

#file_client: remote      # 默认值  : remote   ; 设置minion的文件客户端,reomote,默认选项,minon会到master去查找文件;设置为local,则minion会在本地查找配置文件

1
file_client: remote

#file_roots:
#  base:
#    - /srv/salt      # 默认值 :      ;  设置文件客户端路径

1
2
3
4
5
6
7
8
9
 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   # 默认值 : False   ;设置saltstack查找state文件时候,仅遍历查找带sls后缀的文件或是带_modules后缀的目录

1
fileserver_limit_traversal: False

#pillar_roots:      # 默认值    :         ; 当file_client设置为local时候,该参数制定pillar的搜索路径

1
2
3
pillar_roots:
  base:
    /srv/pillar

######        Security settings       #####

#open_mode: False   # 默认值  : False   ;  open_mode是一个危险的安全特性,当master遇到pki认证系统,秘钥混淆和身份验证失效时,打开open_mode,master将会接受 所有的身份验证。这将会清理掉pki秘钥接受的minions。通常情况下open_mode不应该被打开,它只适用于短时间内清理pki keys,若要打开它,可将值调整为True

1
open_mode: False

#permissive_pki_access: False   # 默认值  : False   ;pki keys的查看权限

1
permissive_pki_access:False

#state_verbose: True      # 默认值 :True   ;state_verbose允许从minions返回更多详细的信息,通常清空下只返回失败或者已经更改,但是将state_verbose设置为True,将会返回所有的状态检查

1
state_verbose: True

#state_output: full   # 默认值 : full  ;state_output的设置将会改变信息输出的格式,当被设置为”full”时,将全部的输出一行一行的显示输出;当被设置为”terse“时,将会 被缩短为一行进行输出;当被设置为”mixed”时,输出样式将会是简洁的,除非状态失败,这种情况下将会全部输出;当被设置为”change”时,输出 将会完全输出除非状态没有改变

1
state_output: full

#master_finger: ''   # 默认值 : ' ' ;

1
master_finger: ''

######         Thread settings        #####


#log_file: /var/log/salt/minion   # 默认值 : /var/log/salt/minion  ; log输出路径设置  ;并且可以输送到远端

1
2
3
#log_file: /var/log/salt/minion
#log_file: file:///dev/log
log_file: udp://loghost:10514

#key_logfile: /var/log/salt/key  # 默认值 : /var/log/salt/key  ; key log输出路径

1
key_logfile: /var/log/salt/key

#log_level: warning  # 默认值 : warning  ;控制台(console)日志默认输出等级: 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'

1
log_level: warning

#log_level_logfile:  # 默认值 : warning  ;日志文件输出等级:'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'.

1
log_level_logfile:warning

#log_datefmt: '%H:%M:%S'   # 默认值 : '%H:%M:%S'  ; 控制台日志日期格式 

1
log_datefmt: '%H:%M:%S'

#log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'   # 默认值 :'%Y-%m-%d %H:%M:%S'  ;  日志文件日期格式

1
log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

#log_fmt_console: '[%(levelname)-8s] %(message)s'  # 默认值 : '[%(levelname)-8s] %(message)s'  ; 控制台日志格式

1
log_fmt_console: '[%(levelname)-8s] %(message)s'

#log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'  # 默认值 :  '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'      ;  日志文件信息格式

1
log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'

#log_granular_levels: {}   # 默认值 : {}  ;  更加高级的指定日志输出

1
2
3
   log_granular_levels:
     'salt''warning',
     'salt.modules''debug'

######      Module configuration      #####

#test: True          # 默认值 : True     ; 指定允许所有的模块运行测试模式

1
test: True

#test.foo: foo     # 默认值  : foo   ; 给测试模块test.foo指定一个简单的值

1
test.foo: foo

#test.bar: [baz,quo]   # 默认值 : [baz,quo]  ;  列表的测试模块值

1
test.bar: [baz,quo]

#test.baz: {spam: sausage, cheese: bread}  # 默认值 : {spam: sausage, cheese: bread}  ; 测试模块指定字典格式的值

1
test.baz: {spam: sausage, cheese: bread}




本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1543351
上一篇:被忽略的企业网络中的硬件漏洞


下一篇:SLS新版告警-告警属性及其应用