Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 使用SaltStack设置环境_Git_Salt Stack - Fatal编程技术网

Git 使用SaltStack设置环境

Git 使用SaltStack设置环境,git,salt-stack,Git,Salt Stack,如何让仆从使用特定的盐堆环境? 分支将映射到使用分支名称作为标识符的环境的状态。如何将这些环境暴露给我的下属 作为一个例子,让我们假设命名为“pippy”。我想把那个分支部署到特定的仆从那里 似乎我可以通过仆从的配置文件设置环境。salt master还有其他方法吗?这里的关键是top.sls文件是跨环境的。在我们开始之前,需要注意的是,虽然大多数分支将映射到同名的环境,但例外情况是master分支将映射到base环境 无论如何,请转到top.sls。在top.sls中定义您的环境,哪些仆从是该

如何让仆从使用特定的盐堆环境?

分支将映射到使用分支名称作为标识符的环境的状态。如何将这些环境暴露给我的下属

作为一个例子,让我们假设命名为“pippy”。我想把那个分支部署到特定的仆从那里


似乎我可以通过仆从的配置文件设置环境。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对状态配置进行版本化和升级。我不确定这是否是一个用例,因为我遇到了一些问题。我在邮件列表中详细介绍了这一点: