Git 使用SaltStack设置环境
如何让仆从使用特定的盐堆环境? 分支将映射到使用分支名称作为标识符的环境的状态。如何将这些环境暴露给我的下属 作为一个例子,让我们假设命名为“pippy”。我想把那个分支部署到特定的仆从那里Git 使用SaltStack设置环境,git,salt-stack,Git,Salt Stack,如何让仆从使用特定的盐堆环境? 分支将映射到使用分支名称作为标识符的环境的状态。如何将这些环境暴露给我的下属 作为一个例子,让我们假设命名为“pippy”。我想把那个分支部署到特定的仆从那里 似乎我可以通过仆从的配置文件设置环境。salt master还有其他方法吗?这里的关键是top.sls文件是跨环境的。在我们开始之前,需要注意的是,虽然大多数分支将映射到同名的环境,但例外情况是master分支将映射到base环境 无论如何,请转到top.sls。在top.sls中定义您的环境,哪些仆从是该
似乎我可以通过仆从的配置文件设置环境。salt master还有其他方法吗?这里的关键是
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
文件。只有目标仆从将从其他每个环境运行状态
还有更多的信息
在仆从配置中定义环境选项只是将仆从隔离到特定环境。从topfile定义环境更加灵活和强大。我现在明白了。我一直跳过topfile部分,认为我的
top.sls
将在git repo中,这不是跨分支推送(并在top.sls中更改)的正确选项。如果top.sls文件在分支之间不同,会发生什么?文档中有一条注释,但基本上,每个环境中的顶层文件都将合并到一个顶层数据结构中。基础环境将在冲突中获胜。通常,最简单的方法是将顶部文件保存在基本(主)环境中。@Kyle:首先处理基本环境的顶部文件。在base top.sls中定义的任何环境以及其他环境的top文件将使用在base中配置的环境实例,并忽略所有其他实例。换句话说,在定义环境时,基-顶文件是权威的。来源:22.26.18.3,第1节)“在minion配置中定义环境选项…”我发现自己在这里试图弄清楚如何使用环境通过dev/test/prod对状态配置进行版本化和升级。我不确定这是否是一个用例,因为我遇到了一些问题。我在邮件列表中详细介绍了这一点: