1)我正在使用Jenkins API来触发作业,所以当我的监控工具sensu发送请求Jenkins API来触发jenkins JOb时,构建就会开始。 2)我甚至尝试通过点击buildnow而不是使用API调用来确保它不是API调用问题。
我的构建包含什么? 它运行在Master上,并在ansible插件的帮助下运行一本安全的游戏书
问题:一旦构建完成,它就会成功自动触发另一个构建而没有理由再次运行构建。这是一个简单的工作配置,在master上运行并在Jenkins提供的插件的帮助下运行ansible-playbook
任何人都可以帮我解决可能出现的问题? 詹金斯版本:2.89.3 Ansible插件:0.8
此外,我可以看到用户xyz开始的jenkins工作 由用户xyz发起 由用户xyz发起 由用户xyz发起 由用户xyz发起 由用户xyz发起 用户xyz为单个构建启动
答案 0 :(得分:0)
手动构建时是否会发生此问题?如果是这样,那么我只是查看Jenkins构建的配置并确保您没有在Post Build部分中选择Build other project's并提及相同的项目: p
<强> EDITED 强>
jenkins工作由用户xyz发起由用户xyz发起由用户启动 xyz由用户xyz发起由用户xyz发起由用户xyz发起 用户xyz为单个构建启动
如果您遇到上述问题,那么会发生这种情况,因为项目在我的情况下被触发了不止一次,我已经点击了两次作业,因此您看到由管理员启动了两次,因为您已经选中了
不允许并发构建
Jenkins遇到了这个问题,当你点击一个构建项目时,看到构建发生了一点点延迟,因此你再次点击它。
答案 1 :(得分:0)
我建议不要使用Ansible插件,而是采用Jenkins的方式:
使用以下内容从Jenkinsfile创建管道:
pipeline {
parameters {
string(name: 'Parameter1', defaultValue: 'value1', description: 'Parameter1?')
string(name: 'Parameter2', defaultValue: 'value2', description: 'Parameter2?')
string(name: 'Parameter3', defaultValue: 'value3', description: 'Parameter3?')
}
agent any
options {
ansiColor('xterm')
timestamps()
}
stages {
stage('Run Ansible Playbook') {
steps {
script {
retry (1) {
try {
echo "Build ${params.Parameter1} on ${params.Parameter2}"
sh "export ANSIBLE_FORCE_COLOR=true && \
ansible-playbook -vv \
-i inventories/hosts \
-e \"var1=${Parameter1}\" \
-e \"var2=${Parameter2}\" \
-e \"var3=${Parameter3}\" \
--vault-password-file ~/.ansible/vaultpass.txt \
playbooks/main.yml"
}
catch (exception) {
throw exception
}
finally {
sh "export ANSIBLE_FORCE_COLOR=true && \
ansible-playbook -vv \
-i inventories/hosts \
-e \"var1=${Parameter1}\" \
-e \"var2=${Parameter2}\" \
-e \"var3=${Parameter3}\" \
--vault-password-file ~/.ansible/vaultpass.txt \
playbooks/clean.yml"
}
}
}
}
}
}
}
与Ansible Plugin相比,您可以更简洁地控制管道。
答案 2 :(得分:0)