将变量从Octopus项目导出到json文件

时间:2018-03-23 12:19:22

标签: variables jenkins export octopus-deploy

有没有办法将Jenopus变量导出到json文件,使用Jenkins中的“Command”步骤? 根据八达通官方文档,我只能导出项目和版本。

有没有办法从特定项目中导出特定变量?

2 个答案:

答案 0 :(得分:1)

目前,您无法使用Octo.exe执行此操作。

但是,您仍然可以将Octopus REST API用于您的目的。

首先,您必须创建API Key,这是访问这些API所必需的。 然后调用以下API端点来获取您的特定项目。

https://<your-octopus-installation>/api/projects/<project name>

然后响应JSON包含VariableSetId,您应该将其用于以下请求。

https://<your-octopus-installation>/api/variables/<VariableSetId>

对于上述每个请求,您应提供X-Octopus-ApiKey HTTP标头,并将API密钥作为值。有关详细信息,请参阅this

请注意,您无法获得敏感变量的值。

提示: 当您通过浏览器访问Octopus时,请观察它执行的HTTP请求。这将有助于您了解需要执行的API调用,以实现您的要求。

如果您参加C#,可以尝试Octopus.Client

答案 1 :(得分:1)

您还可以使用我刚刚发布的PowerShell *模块将Octopus Deploy配置导出到JSON文件:

https://github.com/DTW-DanWard/OctopusDeployUtilities

您可以使用Octopus Deploy Utilities(ODU)来按REST API类型导出部分或全部数据。它还对您的导出数据进行后期处理,为您执行ID->名称查询。它还提供了许多有用的实用程序,例如将导出中的所有数据收集到单个对象中的功能,以便您可以以编程方式解析,报告甚至进行单元测试。

注意:您可能很难从自己的Octopus Deploy服务器导出 just 变量集。在内部,Octopus Deploy存储每个变量集的每个修订,并且当您调用API提取所有变量集数据时,由于所有这些修订,您的API调用可能会超时。 ODU通过仅获取项目正积极使用的最新变量集数据和包含的库变量集来解决此问题。

*它是在PowerShell Core中编写和测试的,因此可以在所有操作系统上运行。它也可以在Windows PowerShell 5中正常运行。