jenkins - 如何从 Jenkins 将变量值传递给 Ansible 塔
问题描述
我正在尝试将变量值(extraVars)从 Jenkins 传递给 Ansible 塔,但它只返回变量名而不是值。
我的詹金斯代码是
node ('windows'){
def zipFilename = "Windows file Zip (This value dynamically changed )"
stage('Deployment')
{
wrap([$class: 'AnsiColorBuildWrapper', colorMapName: "xterm"]) {
ansibleTower(
towerServer: 'Ansible_Tower',
jobTemplate: 'ANS- Test 1',
templateType: 'job',
importTowerLogs: true,
jobType: 'run',
removeColor: false,
verbose: false,
credential: 'cred',
inventory: 'Ansible_Test',
throwExceptionWhenFail: false,
extraVars: '''---
test_note: "${zipFilename}"'''
)
}
}}
[Ansible Tower 输出][1][1]:https://i.stack.imgur.com/921ou.jpg
解决方案
您的代码很好,唯一的问题是参数没有被评估,因为在常规单引号 ( '''
) 中不支持字符串插值,只有双引号 ( """
) 支持。
所以你只需要改变用于extraVars
双引号多行字符串的值:
extraVars: """---
test_note: '${zipFilename}'"""
或者如果您需要双引号,请使用以下内容:
extraVars: """---
test_note: \"${zipFilename}\""""
推荐阅读
- javascript - 如何在页面上的多个按钮上获得 1 个模式?
- ios - 反应节点模块中的本机重建 .bin 文件夹
- api - 如何使用 RallyrestApi 从集会的详细信息页面获取用户故事的实际值、待办事项、估计字段
- php - 发布后请求 XML 无法显示
- ios - 为什么动态添加内容时滚动视图不可能滚动。?
- javascript - 如何修复 ajax 调用,以便我可以隐藏我的令牌?
- python - Django 中的“输入文件”出错。无法识别文件
- angular - 如何在无线电组更改之前获取无线电值?
- c# - 如何修复 InvalidOperationException:无法在线程中使用 Freezable System.Windows.Shell.WindowChrome,因为它们不能被冻结
- django - 用户登录后如何在导航栏中的登录链接上显示用户名