0

我有一个我最近编写的 jenkins 插件,用于从HashiCorp Vault中的机密中获取环境变量。

在大多数情况下,一切都按我预期的方式工作,除非我希望 shell 命令知道设置的环境变量。我在SimpleBuildWrapper类的重写setUp方法中设置环境变量。

这是我如何设置环境变量的相关片段:

for (VaultSecretValue value : vaultSecret.getSecretValues()) {
  context.env(value.getEnvVar(), values.get(value.getVaultKey()));
}

如果我添加一个构建步骤来回显环境变量,它会返回预期的输出,但是,如果我在构建步骤中使用期望设置变量的外部命令,则似乎存在问题,例如 AWS cli:

aws --region us-east-1 ec2 describe-instances

如果我采用相同的环境变量值并将它们导出到本地终端,则上述命令的结果就是我所期望的。

我的问题是,在扩展时SimpleBuildWrapper,我是否缺少确保将环境变量导出到每个后续 shell 命令的步骤?

如果我能提供更多信息,请告诉我。

更新

我已经检查了输出/usr/bin/env并设置了环境变量。我认为这可能是我如何实现vault对其自身的调用的问题,这可能是问题所在。我将使用答案或更相关的信息相应地更新此问题。

4

1 回答 1

2
于 2016-08-08T20:23:33.943 回答