2016-11-28 159 views
1

我是新来的厨师,我现在正在为此付出代价。我们目前在Windows环境中使用厨师独奏。我们每3个月发布一次产品。 Chef在我们的组织中用于设置生产构建环境,开发人员机器等。这些环境的设置涉及安装一些开发人员工具,如Visual Studio,第三方软件等。设置环境所需的工具/软件列表可以不断更新各版本。例如:如果产品版本1.0要求安装Visual Studio 2015,则产品版本2.0可能需要Visual Studio 2015 Update 1等。厨师和产品版本 - 不同产品版本的配置环境

更确切地说,所有服务器应该有完全相同的软件/配置对他们**特定**产品版本**。我们没有舞台和制作的概念。我们在开发人员系统上设置的构建环境应该与我们在特定产品版本的生产框中设置的构建环境相同。

我们使用厨师的方式如下: - 终止用户登录服务器并启动具有管理权限的Powershell控制台。 -PowerShell脚本被执行。此脚本首先在客户端计算机上安装厨师独奏,并在本地复制所有厨师脚本。 - 然后执行chef脚本来设置开发人员构建环境。

这是我的要求:我喜欢利用厨师为特定版本重新创建生产构建环境/开发人员构建环境。例如: 开发人员想要为产品版本1.0创建构建环境。厨师脚本应该处理这个要求。如果开发人员想要为产品版本2.0创建开发人员环境,则厨师脚本也应该处理此问题。

这可能使用厨师吗?我认为这是可能的,因为厨师脚本可以版本化。如果是这样,使用厨师的方法是什么?任何帮助将非常感激。请引导我采取最佳做法。

我想到的一个方法是,我们可以在我们的源代码控制(Perforce)中为每个产品版本标记主厨脚本。这样,无论何时我们想要为特定产品版本设置开发人员环境,我们都会通过使用标签并设置环境来为该产品版本提供相关的脚本。然而,这似乎不是一个足够好的方法。 所以,我在这里寻找帮助。

是否有类似于所有源代码管理系统可用的标签功能?厨师应该有这样做。

问候, 基兰

+0

答案/引导,不要交叉后请。 – Tensibai

+0

投票结束,因为有很多方法来实现这一点。 – Tensibai

+0

@Tensibai我只是想争取尽可能多的意见。我不会假设堆栈溢出的每个用户都处于闲置状态。所以在这里几个更多的答案将是非常有用的。我要求这个问题保持开放,除非有足够的理由来解决这个问题。 –

回答

1

如果不同产品发行版本的要求都或多或少相同,您可以处理与1次的配方,属性和角色。

您为您的产品发布版本创建一个属性,并根据此配置在您的配方中执行一些逻辑。

然后创建角色,每产品发行版本创建1个角色,并在那里添加具有正确值的相同属性。

后,所有你需要,配置环境时,是将角色传递给像厨师​​独奏:上松弛给出

chef-solo -o role[myrole] 
+0

谢谢。似乎是个好主意。 –