111111

Salt-Minion配置文件详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
##### 主要配置设置 #####
 
配置  默认值 说明  例子
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}

  

posted @   赵SIR  阅读(3572)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示