Jenkins管道因随机连接问题而失败

时间:2020-01-19 08:26:43

标签: shell ansible jenkins-pipeline jenkins-groovy

我正在研究Jenkins管道,该管道在同一主机上并行运行两个阶段。

在两个阶段中,都将调用单独的ansible剧本。 这两个剧本在相同远程主机, 并行 (在下面的Jenkins管道中定义)上运行单独的脚本

stage('Parallel execution on hosts') {
            parallel {

                stage('stage one') {
                    steps {
                        script {
                            println(list)
                            list.each { ip ->
                            new_map[ip] = {
                                sh "ansible-playbook playbook_one.yml -f 5 -i $ip, --extra-vars 'ansible_connection=ssh ansible_ssh_user=user ansible_ssh_private_key_file=key.pem' -vvv"
                                }
                            }
                        retry(count:3) {
                            parallel new_map
                            }
                        }
                    }
                }
                stage('stage two') {
                    steps {
                        script {
                            println(list)
                            list.each { ip ->
                            new_map_2[ip] = {
                                sh "ansible-playbook playbook_two.yml -f 5 -i $ip, --extra-vars 'ansible_connection=ssh ansible_ssh_user=user ansible_ssh_private_key_file=key.pem' -vvv"
                                }
                            }
                        retry(count:3) {     
                            parallel new_map_2
                            }
                        }
                    }
                }

在大多数情况下,它运行良好,并且输出成功。

但是,有时运行脚本的远程主机在运行任务时变得无法访问。 当发生这种情况时,它会随机发生在ansible剧本中的任何任务上。

到目前为止,我还没有观察到失败的模式。 尽管极少发生,但并不理想。

这可能是因为两个剧本试图在同一主机上并行运行吗?

0 个答案:

没有答案