如何为特定环境运行state.highstate?

问题描述:

我的环境结构在/ etc /盐/主看起来像这样如何为特定环境运行state.highstate?

file_roots: 
    base: 
    - /srv/salt 
    dev: 
    - /srv/salt/dev 
    stg: 
    - /srv/salt/stg 
    prod: 
    - /srv/salt/prod 

而且我top.sls文件是/ SRV /盐

dev: 
    'ip-10-1-1-28': 
    - devtest 

stg: 
    'ip-10-1-1-252': 
    - stgtest 

prod: 
    'ip-10-1-1-200': 
    - prodtest 

现在我想运行state.highstate为一个特定的环境,比如'stg'。我正在寻找类似的东西,

salt '*' state.highstate env=stg 

我该如何做到这一点?我的要求是每次运行命令时,我都不想在所有环境中使用小工具来运行SLS文件。任何解决方案

你有这个能力,但正确的命令是:

salt '*' state.highstate saltenv=stg 

Salt state documentation

+0

它没有为我工作。当我执行该命令时,出现以下错误:ip-10-1-1-252: ---------- ID:states 功能:no.None 结果:错误 评论:无顶文件或外部节点的数据找到匹配 入门: 时间: 变化: 摘要 ------------ 成功:0 失败:1 ------- ----- 总运行状态:1。我得到了这两个小喽啰 – 2015-03-26 13:20:33

+0

请显示您的“pillar_roots”配置。 2 top.sls文件必须同步saltenv(top.sls柱状和top.sls状态) – jakcam 2015-03-26 13:32:46

+0

能否请您更详细地了解pillar_roots?我没有修改任何用于pillar_roots配置的东西。我只修改了我在帖子中显示的主配置文件中的file_roots。 – 2015-03-26 19:04:18