如何创建Salt状态让Minion启动或重连时自动执行?
针对Windows Salt Minion自动应用状态的解决方案
一、Minion启动/重连时自动执行指定状态
1. 全局Minion配置
在Windows Minion的配置文件(通常为C:\salt\conf\minion)中添加或修改以下配置:
- 自动执行全量高状态:
此配置会让Minion每次启动或重新连接Master时,自动执行startup_states: highstatestate.highstate。 - 执行指定状态文件:
若仅需运行特定状态(比如名为windows_base的状态),可改为:
这里的startup_states: sls startup_sls: windows_basewindows_base对应Master上salt://windows_base/init.sls或salt://windows_base.sls的状态文件。
2. 特定组Minion配置
通过Master的pillar给目标分组的Minion分配专属启动状态:
- 在Master的
/srv/pillar目录下创建分组配置文件,比如groups/windows_physical.sls:startup_states: sls startup_sls: windows_physical_config - 在
top.sls中关联目标Minion组:base: 'role:windows_physical': - groups.windows_physical
仅匹配role:windows_physical的Minion会在启动/重连时自动执行指定状态。
二、无需手动触发的Salt任务配置
1. Minion端定时任务(周期性自动执行)
在Windows Minion配置文件中添加schedule参数,实现周期性自动执行状态:
schedule: daily_maintenance: function: state.apply args: - windows_daily_check minutes: 1440 # 每天执行一次 return_job: True
Minion离线期间错过的任务,会在重连后自动补执行。
2. Master端分批触发(兼容离线主机)
使用batch模式触发状态,避免离线主机阻塞任务:
salt -G 'role:windows_physical' --batch 10% state.apply windows_base_config --retcode-passthrough
离线Minion上线后,会在重连时自动同步Master的状态配置。
三、Windows平台注意事项
- 修改Minion配置后,需在
services.msc中重启Salt Minion服务使配置生效。 - 确保Minion运行账户拥有执行状态操作的足够权限(如修改系统设置、安装软件等)。
内容的提问来源于stack exchange,提问作者v.doro2
相关产品推荐
相关产品推荐

