【发布时间】:2018-03-23 12:19:22
【问题描述】:
有没有办法使用 Jenkins 中的“命令”步骤将 Octopus 变量导出到 json 文件? 根据 Octopus 官方文档,我只能导出项目和版本。
有没有办法从特定项目中导出特定变量?
【问题讨论】:
标签: variables jenkins export octopus-deploy
有没有办法使用 Jenkins 中的“命令”步骤将 Octopus 变量导出到 json 文件? 根据 Octopus 官方文档,我只能导出项目和版本。
有没有办法从特定项目中导出特定变量?
【问题讨论】:
标签: variables jenkins export octopus-deploy
目前您无法使用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
【讨论】:
您还可以使用我刚刚发布的 PowerShell* 模块将您的 Octopus Deploy 配置导出到 JSON 文件:
https://github.com/DTW-DanWard/OctopusDeployUtilities
您可以使用 Octopus Deploy Utilities (ODU) 按 REST API 类型导出部分或全部数据。它还后处理您的导出数据,为您执行 ID -> 名称查找。它还附带了许多有用的实用程序,例如将导出中的所有数据收集到单个对象中的功能,以便您可以以编程方式解析、报告甚至对您的配置进行单元测试。
注意:您可能难以仅从您的 Octopus Deploy 服务器导出变量集。 Octopus Deploy 内部存储每个变量集的每个修订,当您调用 API 以提取所有变量集数据时,您的 API 调用可能会因为所有这些修订而超时。 ODU 通过仅获取项目积极使用的最新变量集数据和包含的库变量集来解决此问题。
*它在 PowerShell Core 中编写和测试,因此可以在所有操作系统上运行。它还在 Windows PowerShell 5 中运行良好。
【讨论】: