jenkins - 一起使用 withEnv 和 withCredentials
问题描述
假设您有一个场景,您有一个用户名和密码凭证,您希望将其用作填充(事实上的)标准http_proxy
环境变量的一部分。第一次尝试是这样的:
withCredentials([usernameColonPassword(credentialsId:'proxy-credentials', variable:'PROXY_CREDENTIALS')]) {
def proxyUrl = "https://${env.PROXY_CREDENTIALS}@proxy-endpoint.com:3128"
withEnv(["http_proxy=${proxyUrl}"]) {
// Do stuff
}
}
然而,虽然这有效,但 Jenkins 将其标记为不安全。这也不起作用:
withCredentials([usernameColonPassword(credentialsId:'proxy-credentials', variable:'PROXY_CREDENTIALS')]) {
withEnv(['http_proxy=https://${PROXY_CREDENTIALS}@proxy-endpoint.com:3128']) {
// Do stuff
}
}
这是因为 a 中没有“shell 扩展” withEnv
,因此http_proxy
被设置为其中包含文字${PROXY_CREDENTIALS}
,这不是我们想要的。
关于如何安全设置的任何想法http_proxy
?
解决方案
尝试这个 :
withCredentials([usernameColonPassword(credentialsId:'proxy-credentials', variable:'PROXY_CREDENTIALS')]) {
withEnv(["http_proxy=https://$PROXY_CREDENTIALS@proxy-endpoint.com:3128"]) {
// Do stuff
}
}
推荐阅读
- git - SSL证书问题:无法在git中获取本地颁发者证书
- mfc - CMFCPropertySheet“页面”资源未使用动态布局调整大小
- c# - 仅当填充文本框和日期时间选择器时才能启用按钮
- c# - 通过 DataTemplate 实现可编辑的 ListBox 项目后没有更新 ListBox.ItemsSource
- python-3.7 - 从 Python 3 中的嵌套 for 循环输出值创建一个列表
- regex - 如何从动态生成中提取价值
- python - tensorflow 如何训练 RNN?
- android - FloatingActionButton 未在 CollapsingToolbarLayout 中显示
- git - 使用定制的旧 SHA-1 线自动挑选樱桃
- ubuntu - 我在 Digital Ocean 上有错误安全 apache?