2016-08-08 73 views
0

类出口环境变量我有一个詹金斯插件,我在HashiCorp Vault最近写信给源环境变量的秘密。詹金斯:从延长SimpleBuildWrapper

在大多数情况一切正常,我所期望的方式,除非当我想到一个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命令的环境?

请让我知道如果我可以提供更多的信息。

UPDATE

我已经检查的/usr/bin/env输出和环境变量设置。我认为这可能是一个问题,我如何实现对vault自己的呼叫可能是问题。我会根据答案或更多相关信息更新此问题。

回答

2

是否有一个步骤我不知道,以确保环境变量导出到每个后续的shell命令?

不,这里有test coverage,它的工作原理。

您可以在aws …之前运行/usr/bin/env以确定设置了哪些内容并缩小了问题范围。

+0

感谢。我刚更新了这个问题。我已经检查过'env'输出。这可能不是一个插件API问题,更多的是我的实现。我会不断更新。再次感谢。 – ptierno

+0

谢谢。事实证明,你是对的,它的工作原理。问题在于,aws iam api需要几秒钟才能生成可用的保险库供应凭据。在我的aws cli命令前面抛出一个“睡眠5”,这个技巧就是了。再次感谢 – ptierno