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} |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构