You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SaltStack多环境配置异常:base与dev minion模块重复

问题描述

我是SaltStack新手,已创建base环境且运行正常。现尝试配置dev和prod环境,期望dev环境既有自定义模块,也能继承base环境的部分模块。但即使在master配置中设置了dev环境,base和dev的minion仍获取到相同的模块。


已做配置修改

Master文件服务器设置

file_roots:
  base:
    - /opt/base/
  dev:
    - /opt/dev/
    - /opt/base/
  prod:
    - /opt/prod/


top_file_merging_strategy: same

Master节点组配置

nodegroups:
  dev: 'L@rnd301.com,rnd302.com,rnd304.com,rnd305.com'

Master Pillar设置

pillar_roots:
  base:
    - /opt/pillar
  dev:
    - /opt/dev/pillar

dev环境top.sls

dev:
  '*':
    - pw_new

base:
  '*':
    - sudo
    - sshkeys

base环境top.sls

base:
  '*':
    - common
    - sudo
    - dns
    - ntp
    - repos
    - history
    - rootpw

当前现象

执行salt-call后,dev minion和base minion都获取到了所有base环境的文件,示例执行结果:

ID: pw_new
Function: user.present
  Result: True
 Comment: User rootpw_new is present and up to date
 Started: 12:39:09.350877
Duration: 4.361 ms
 Changes:

本地执行总结:成功:49


问题分析与解决
  1. 调整top文件合并策略
    你设置的top_file_merging_strategy: same会强制所有环境使用相同的top文件合并规则,导致base环境的模块被全量继承。若要实现dev环境选择性继承base模块,建议将该参数改为merge,或直接删除(默认值即为merge)。

  2. 修正dev环境top.sls写法
    当前dev的top.sls中直接定义了base环境的全局匹配规则,会让所有minion都加载base下的sudo和sshkeys。正确做法是仅让dev节点组加载指定模块:

    dev:
      'G@nodegroup:dev':
        - pw_new
        - sudo
        - sshkeys
    

    这样只有dev节点组的minion会加载自定义模块pw_new,以及需要继承的base模块sudo和sshkeys,base环境的minion仅加载自身top文件中的内容。

  3. 确认minion环境配置
    确保dev节点组的minion已指定使用dev环境:

    • 在minion配置文件/etc/salt/minion中添加environment: dev
    • 执行salt 'rnd301.com' grains.get saltmaster.environment验证minion当前环境
  4. 刷新缓存生效配置
    修改配置后,先刷新master文件服务器缓存:

    salt-run fileserver.update
    

    再让dev节点组的minion同步所有资源:

    salt 'G@nodegroup:dev' saltutil.sync_all
    
  5. 配置Pillar环境继承
    若需要dev环境继承base的pillar内容,需修改pillar_roots配置:

    pillar_roots:
      base:
        - /opt/pillar
      dev:
        - /opt/dev/pillar
        - /opt/pillar
    

    这样dev环境会优先加载自身pillar目录内容,再继承base的pillar内容。

内容的提问来源于stack exchange,提问作者fndogonza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:52:56