Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Chef infra 厨师长和产品版本-针对不同产品版本的资源调配环境_Chef Infra_Chef Recipe_Chef Solo - Fatal编程技术网

Chef infra 厨师长和产品版本-针对不同产品版本的资源调配环境

Chef infra 厨师长和产品版本-针对不同产品版本的资源调配环境,chef-infra,chef-recipe,chef-solo,Chef Infra,Chef Recipe,Chef Solo,我是厨师的新手,目前正在想办法。我们目前正在Windows环境中使用Chef Solo。我们每3个月发布一次产品。Chef在我们的组织中用于设置生产构建环境、开发人员机器等。这些环境的设置包括安装一系列开发人员工具,如Visual Studio、第三方软件等。此环境设置所需的工具/软件列表可以在不同版本中不断更改。例如:如果产品版本1.0要求安装Visual Studio 2015,则产品版本2.0可能需要Visual Studio 2015更新1,依此类推 更准确地说,对于特定的产品版本,所有

我是厨师的新手,目前正在想办法。我们目前正在Windows环境中使用Chef Solo。我们每3个月发布一次产品。Chef在我们的组织中用于设置生产构建环境、开发人员机器等。这些环境的设置包括安装一系列开发人员工具,如Visual Studio、第三方软件等。此环境设置所需的工具/软件列表可以在不同版本中不断更改。例如:如果产品版本1.0要求安装Visual Studio 2015,则产品版本2.0可能需要Visual Studio 2015更新1,依此类推

更准确地说,对于特定的产品版本,所有服务器上都应该有相同的软件/配置。我们没有分期和生产的概念。我们在开发人员系统上设置的构建环境应该与我们为特定产品版本在生产箱上设置的构建环境相同

我们使用厨师的方式如下:

  • 最终用户登录到服务器并以管理员权限启动Powershell控制台
  • 将执行Powershell脚本。此脚本首先在客户端计算机上安装chef solo,并在本地复制所有chef脚本
  • 然后执行chef脚本以设置开发人员构建环境
这是我的要求:我确实喜欢使用chef为特定版本重新创建生产构建环境/开发人员构建环境

例如:开发人员希望为产品版本1.0创建构建环境。厨师脚本应该处理这个需求。如果开发人员希望为产品版本2.0创建开发人员环境,那么chef脚本也应该处理这个问题

这可以用厨师吗?我认为这是可能的,因为Chef脚本可以进行版本控制。如果是这样,使用Chef实现这一点的方法是什么

我的一个想法是,我们可以在源代码管理(Perforce)中为每个产品版本的chef脚本添加标签。这样,每当我们想要为某个特定的产品版本设置开发人员环境时,我们都会通过使用标签来提取该产品版本的相关脚本并设置环境。然而,这似乎不是一个足够好的方法


是否有类似于所有源代码控制系统提供的标签功能?Chef中应该有一些东西可以做到这一点。

如果不同产品发布版本的要求大致相同,您可以使用1个配方、属性和角色来处理这一点

您为您的产品发布版本创建一个属性,并在此基础上在配方中执行一些逻辑

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

之后,在配置环境时,您只需将角色传递给厨师长,如:

chef-solo -o role[myrole]

在slack上给出的答案/指导,请不要交叉张贴。投票以意见为基础结束,因为有很多方法可以实现这一点。@Tensibai我只是想获得尽可能多的意见。我不会假设堆栈溢出上的每个用户都处于空闲状态。因此,这里没有更多的答案会很有用。我要求这个问题保持开放,除非有足够好的理由关闭这个问题。它是基于意见的,每个人都有自己喜欢的工作流程,不能用事实而不是意见来回答,因此不属于stackoverflow的主题