2013-10-10 77 views
9

如何使小工具使用特定的SaltStack环境?使用SaltStack设置环境

GitFS backend tutorial指出分支将映射到使用分支名称作为标识的环境。我如何将这些环境暴露给我的爪牙?

举个例子,假设名为“pippy”的I have a branch。我想将这个分支部署到特定的爪牙。

看来我可以通过小人的配置文件设置环境。有没有其他方法可以从盐师傅完成?

+1

我发现自己在这里试图弄清楚如何使用环境来通过dev/test/prod版本和促进状态配置。我不确定这是否是用例,因为我遇到了一些问题。我在邮件列表中详细地发布了更多信息:https://groups.google.com/forum/#!topic/salt-users/4P9YpaFdRTQ – thaddeusmt

回答

16

这里的关键是top.sls文件是跨环境的。在介绍之前,需要注意的是,尽管大多数分支将映射到同名环境,但例外情况是master分支将映射到base环境。

无论如何,请登录top.sls。在top.sls中,您定义了您的环境,这些环境是该环境的成员,并且将从该环境运行哪个状态文件以获得state.highstate

base: 
    '*': 
    - basestate 
dev: 
    'webserver*dev*': 
    - webserver 
    'db*dev*': 
    - db 
qa: 
    'webserver*qa*': 
    - webserver 
    'db*qa*': 
    - db 
pippy: 
    'webserver*pippy*': 
    - webserver 
    'db*pippy*': 
    - db 

因此,所有的爪牙将运行从base环境basestate.sls文件。只有目标小众才能从其他每个环境中运行状态。

还有更多的信息in the topfile documentation

在小配置配置中定义环境选项只是将小生物分隔到特定环境。从顶层文件定义您的环境更加灵活和强大。

+1

我现在看到了。我一直在跳过topfile部分,认为我的'top.sls'会在git repo中,而这样做并不适合跨越分支(以及top.sls中的更改)。 –

+1

如果top.sls文件在不同分支之间会发生什么? –

+1

在该文档中有一个关于中途的注释,但基本上来自每个环境的顶层文件将被合并到单个顶层数据结构中。基地环境将赢得冲突。通常,将顶级文件保留在基本(主)环境中是最容易的。 – basepi