2016-08-08 72 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