从项目中读取Octopus Deploy步骤

时间:2017-02-02 14:02:19

标签: octopus-deploy

我有一个Octopus Deploy项目,该项目在目标计算机上成功将程序包部署为Windows服务。在部署实际服务之前,我有几个步骤可以确保(例如)允许目标帐户侦听相应的端口。

目前,我将信息(如端口号)硬编码到部署步骤的脚本中。我知道如何使用变量来避免硬编码。然而,一些变量确实属于"在服务本身而不是在部署项目中。

有没有什么方法可以从部署的软件包中读取信息,并在实际软件包部署之前将这些信息用作Octopus Deploy步骤中的变量?

1 个答案:

答案 0 :(得分:1)

实现你想要的一种方式(虽然不是很优雅)但我认为可以使用Output Variables。对于Octopus来说,这里也很好blog post

所以我的想法是你可以在你的软件包中设置专用的PS脚本,这将为端口号设置Octopus输出变量,例如:克。

Set-OctopusVariable -name "PortNumber" -value "8080"

您可以使用基本"运行脚本"运行此脚本。步骤(例如命名" SetVariables"),您可以从包中配置运行脚本:

在进一步的部署过程中,您可以使用Octopus变量绑定语法从任何步骤检索此变量:

#{Octopus.Action[SetVariables].Output.PortNumber}

或PS语法:

$portNumber = $OctopusParameters["Octopus.Action[SetVariables].Output.PortNumber"]

我不喜欢这种方法的原因是因为它使部署过程变得非常复杂,并且从setter脚本到Octopus 以及从变量读取脚本/使用位置添加了的其他依赖关系步骤名称

我可能会坚持使用更强大的方法来定义参数,例如配置转换,或者只是确定范围到像目标机器这样的更广泛的区域。如果这显然可能。