对于 PC 构建过程,我们使用了 PowerShell 脚本,该脚本安装了 Nuget 和 Choco,并从本地 Nexus 存储库中提取了软件包。它要求用户提供用户名和密码,并首先安装 Nuget 和 Choco,然后再通过 Choco 处理软件包列表。
一切都很好,直到我们迁移到云存储库; J-青蛙。在云上,这不需要密码而是令牌。我不能期望用户输入长令牌,并且使用脚本将令牌存储在 NAS 上(或保存代码的 GitHub 中)是不安全的。
现在我遇到了第 22 条陷阱,我无法安装 HashiCorp Vault 应用程序、Choco 或 Nuget,因为它们都在存储库中,并且在访问 Vault 之前我无法获取令牌。
有更具分析能力的人可以帮我解决这个混乱吗?
除了用户导航 NAS 启动脚本并输入凭据之外,整个过程必须自动化。它在一个准系统 Windows 机器上启动(目前是 10 个,但很快就会是 11 个)。
在您的场景中,有几种使用 Vault 的选项:
安装实际上只是下载并运行。 Vault 是一个单一的可执行文件,具有作为客户端或服务器的服务器。您可以下载二进制文件,解压并运行它。
问题在于 Windows 缺乏本地工具来验证二进制文件的签名并将其解压缩。 Powershell 也许可以做到这一点。
再次强调,
curl.exe
(不是 Powershell curl
别名)可能已经安装,即使在 Windows 10 上(如果它不是太旧的话)。如果是这样,那么您可以通过 HTTP 调用 API。
使用已安装的几个工具从响应中解析令牌可能会让您度过漫长的夜晚。
将 Vault 部署到您的舰队中的所有计算机。将其放在路径中并在脚本中使用它。
它是一个命令行工具,您需要询问其密码,除非您拥有 Vault Enterprise 许可证并使用 SAML 身份验证。