Catch 22 使用 J-frog 存储库中的 Choco 安装 Windows nuget 软件包,需要 Vault 的凭据

问题描述 投票:0回答:1

对于 PC 构建过程,我们使用了 PowerShell 脚本,该脚本安装了 Nuget 和 Choco,并从本地 Nexus 存储库中提取了软件包。它要求用户提供用户名和密码,并首先安装 Nuget 和 Choco,然后再通过 Choco 处理软件包列表。

一切都很好,直到我们迁移到云存储库; J-青蛙。在云上,这不需要密码而是令牌。我不能期望用户输入长令牌,并且使用脚本将令牌存储在 NAS 上(或保存代码的 GitHub 中)是不安全的。

现在我遇到了第 22 条陷阱,我无法安装 HashiCorp Vault 应用程序、Choco 或 Nuget,因为它们都在存储库中,并且在访问 Vault 之前我无法获取令牌。

有更具分析能力的人可以帮我解决这个混乱吗?

除了用户导航 NAS 启动脚本并输入凭据之外,整个过程必须自动化。它在一个准系统 Windows 机器上启动(目前是 10 个,但很快就会是 11 个)。

powershell nuget hashicorp-vault chocolatey jfrog-cli
1个回答
0
投票

在您的场景中,有几种使用 Vault 的选项:

  1. 从 Hashicorp 网站安装 cli
  2. 自行调用 HTTP API
  3. 在机群中的所有计算机上大规模部署 Vault

从Vaultproject.io安装

安装实际上只是下载并运行。 Vault 是一个单一的可执行文件,具有作为客户端或服务器的服务器。您可以下载二进制文件,解压并运行它。

问题在于 Windows 缺乏本地工具来验证二进制文件的签名并将其解压缩。 Powershell 也许可以做到这一点。

调用HTTP API

再次强调,

curl.exe
(不是 Powershell
curl
别名)可能已经安装,即使在 Windows 10 上(如果它不是太旧的话)。如果是这样,那么您可以通过 HTTP 调用 API。

使用已安装的几个工具从响应中解析令牌可能会让您度过漫长的夜晚。

部署保管库

将 Vault 部署到您的舰队中的所有计算机。将其放在路径中并在脚本中使用它。

它是一个命令行工具,您需要询问其密码,除非您拥有 Vault Enterprise 许可证并使用 SAML 身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.