更新:我发现章鱼服务器上的执行脚本现在可以在 3.3版中使用,我还没有更新我的章鱼,但是我将按照设计的那样工作。我仍然在想,在没有octo.exe?的情况下,是否有更好的方法来做到这一点?
我想要完成的任务是在每个成功的生产部署之后,自动安排一个DR部署到下一个24小时。
我想要的方法是让章鱼来做。
我在部署结束时增加了一个新的八达通步骤,只有在上一步成功后才能运行。我尝试使用octo deploy-release --deployAt
可以在新创建的步骤中找到这里。
我面临的挑战是,脚本步骤要求我选择一个目标角色,这意味着它将在触角上执行。此外,Octo.exe的存在也是必需的。
我尝试创建自己的章鱼步骤模板,在我的自定义步骤中仍然需要一个部署目标角色。
{
"Id": "ActionTemplates-2",
"Name": "Octopus - Schedule Deployment",
"Description": "Schedule a future octopus deployment",
"ActionType": "Octopus.Script",
"Version": 3,
"Properties": {
"Octopus.Action.Script.Syntax": "PowerShell",
"Octopus.Action.Script.ScriptBody": "--hide--"
},
"SensitiveProperties": {},
"Parameters": [
{
"Name": "OctoPath",
"Label": "Path for Octo.exe",
"HelpText": "Location for octo.exe",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Name": "projName",
"Label": "Project Name",
"HelpText": "The name of the project should be deployed",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Name": "days",
"Label": "Days",
"HelpText": "The days in future this deployment would happen",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Name": "hours",
"Label": "Hours",
"HelpText": "The hours in future this deployment would happen",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Name": "env",
"Label": "Environment to deploy",
"HelpText": "The environment next deployment should happen",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
}
],
"$Meta": {
"ExportedAt": "2016-04-20T13:58:54.263Z",
"OctopusVersion": "3.2.0",
"Type": "ActionTemplate"
}
}
有没有办法改变模板,以摆脱角色选择,让章鱼服务器直接执行它,就像它为Azure脚本步骤?
有没有其他方法可以让章鱼服务器在没有外部帮助的情况下自动安排部署?我想这回到了第一个问题,我可能还需要章鱼在服务器端运行一些东西。
注意:我们手动启动生产部署,因此我没有其他工具等待部署的响应。我认为有可能有一个过程定期调用最后的部署并进行一些分析,然后相应地安排新的部署,但这并不像章鱼直接做的那样干净。向随机生产机器注入octo.exe是根本不需要的。
发布于 2016-04-27 21:46:40
您可以在WebAPI中创建新的C#项目,拉入Octopus.Deploy nuget包,
编写接受HTTP请求并处理调度逻辑的代码。
在与Octopus服务器本身相同的服务器上承载该项目。应该是20-30分钟的工作,以便在IIS中设置网站。
在部署过程中,添加创建http请求的步骤,并完成。您甚至可以更进一步,让站点/服务侦听每一个成功的部署,并在此基础上做出决定,这样其他项目就不必在octopus部署过程中添加额外的步骤。
正如您所说,投票也是可行的选择。
或者,如果您正在使用OctopusDeploy3.0,它们已经公开了REST,我不确定它是否足够强大到允许您创建计划部署,但是您可以探索:https://github.com/OctopusDeploy/OctopusDeploy-Api/wiki/Releases
我同意在生产服务器中浮动octo.exe是个坏主意。它可能不同步,您的生产服务器不应该处理这个问题。
https://stackoverflow.com/questions/36746908
复制相似问题