在Octopus中自动安排未来的部署

时间:2016-04-20 14:25:46

标签: powershell octopus-deploy

更新:我发现章鱼服务器上的执行脚本现在可以在version 3.3中找到,我还没有更新我的章鱼,但我会采取按设计工作。我还在想,如果没有octo.exe,有​​没有更好的方法呢?

我想要完成的任务是在每次成功的生产部署之后,自动安排DR部署在接下来的24小时内完成。

我想要的做法是章鱼做。

我在部署结束时添加了一个新的八达通步骤,只有在上一步成功时才会运行。我尝试在新创建的步骤中找到if(mapWidth>mapLength) { for (int i = 0; i < mapWidth * mapLength; i++) { y = i / mapLength; for(int j=0; j<i+1; j++) { x = j % mapLength; } GridPanel gb = new GridPanel(x, y); list.add(gb); mapPanel.add(gb); } } else if(mapWidth<mapLength) { //problematic map is created after this condition for (int i = 0; i < mapWidth * mapLength; i++) { x = i / mapLength; for(int j=0; j < i+1; j++){ y = j % mapLength; } GridPanel gb = new GridPanel(x, y); list.add(gb); mapPanel.add(gb); } } here

我的挑战是,脚本步骤要求我选择目标角色,这意味着它将在触手上执行。此外,还需要存在Octo.exe。

我尝试创建自己的章鱼步骤模板,在我的自定义步骤中仍然需要部署目标角色。

octo deploy-release --deployAt

有没有办法改变模板以摆脱角色选择,让octopus服务器直接执行它,就像它为Azure脚本步骤一样?

有没有其他方法我们可以让章鱼服务器在没有外部帮助的情况下自动安排部署?我想这可以回到第一个问题,我可能仍然需要章鱼在服务器端运行一些东西。

注意:我们手动启动生产部署,因此我没有其他工具等待部署的响应。我认为有可能让一个流程定期调用最后一次部署并进行一些分析,然后相应地安排新的部署,但这不像章鱼直接做的那样干净。根本不需要将octo.exe注入随机生产机器

1 个答案:

答案 0 :(得分:2)

您可以在C#中创建新的WebAPI项目,拉入Octopus.Deploy nuget包,

编写接受HTTP请求的代码,并处理调度逻辑。

将该项目托管在与Octopus服务器本身相同的服务器上。在IIS中设置网站应该是20-30分钟的工作。

在部署过程中,添加创建http请求的步骤,并完成。您甚至可以更进一步,让站点/服务监听每次成功部署,并根据这些做出决策,这样其他项目就不必为章鱼部署过程添加额外的步骤。

正如你所说,民意调查也是可行的选择。

或者,如果您使用Octopus deploy 3.0,他们已经公开了REST API,我不确定它是否足以让您创建预定部署,但您可以探索:{{3 }}

我同意在生产服务器中浮动octo.exe是个坏主意。它可能会不同步,您的生产服务器也不应该处理这个问题。