Jenkins 仅使用第一个参数构建参数
Jenkins Build With Parameters Only Taking First Parameter
我设置了一个使用 "Publish over SSH" 插件远程执行 ansible 脚本的 Jenkins 构建,将变量注入到对 ansible-playbook
的调用中
Jenkins将远程执行的命令:
ansible-playbook /home/username/test/test.yml --extra-vars "ui_version=$UI_VERSION web_version=$WEB_VERSION git_release=$GIT_RELEASE release_environment=$RELEASE_ENVIRONMENT"
由以下卷曲触发:
curl -k --user username:secretPassword -v -X POST https://jenkins/job/Ansible_Test/buildWithParameters?UI_VERSION=abc&WEB_VERSION=def&GIT_RELEASE=ghi&RELEASE_ENVIRONMENT=jkl
应该使用以下变量:
我的问题: 只有第一个参数被注入,如下面 Jenkins 控制台输出的最长行所示:
...
SSH: EXEC: completed after 201 ms
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [ansible-playbook /home/dholt2/test/test.yml --extra-vars "ui_version=abc web_version= git_release= release_environment="] ...
SSH: EXEC: connected
...
事实证明,终端试图解释第一个参数后的 &
,如 here 所述。引用 URL 导致传输和变量注入成功。
我早该知道这是命令等待更多输入的原因。
我设置了一个使用 "Publish over SSH" 插件远程执行 ansible 脚本的 Jenkins 构建,将变量注入到对 ansible-playbook
Jenkins将远程执行的命令:
ansible-playbook /home/username/test/test.yml --extra-vars "ui_version=$UI_VERSION web_version=$WEB_VERSION git_release=$GIT_RELEASE release_environment=$RELEASE_ENVIRONMENT"
由以下卷曲触发:
curl -k --user username:secretPassword -v -X POST https://jenkins/job/Ansible_Test/buildWithParameters?UI_VERSION=abc&WEB_VERSION=def&GIT_RELEASE=ghi&RELEASE_ENVIRONMENT=jkl
应该使用以下变量:
我的问题: 只有第一个参数被注入,如下面 Jenkins 控制台输出的最长行所示:
...
SSH: EXEC: completed after 201 ms
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [ansible-playbook /home/dholt2/test/test.yml --extra-vars "ui_version=abc web_version= git_release= release_environment="] ...
SSH: EXEC: connected
...
事实证明,终端试图解释第一个参数后的 &
,如 here 所述。引用 URL 导致传输和变量注入成功。
我早该知道这是命令等待更多输入的原因。