From 49c463378083dd80e7638c26782fd6d6d7d768fd Mon Sep 17 00:00:00 2001 From: beierlm Date: Thu, 10 Mar 2022 06:14:38 -0500 Subject: [PATCH] Bug 1903: Better SSH check Changes the ssh port ready check from a simple 'is the port open?' to a full ssh login check to ensure that sshd is actually running on the target server. Adds timeout to ssh check Fixes bug 1903 Change-Id: I8c3f0d8e1ac450726bc3336c00e7fbdf405fe067 Signed-off-by: beierlm --- jenkins/ci-pipelines/ci_stage_3.groovy | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index 61e9fd8f..c203313a 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -418,10 +418,16 @@ node("${params.NODE}") { println("Waiting for VM at ${IP_ADDRESS} to be reachable") alive = false - while (!alive) { - output = sh(returnStdout: true, script: "sleep 1 ; nc -zv ${IP_ADDRESS} 22 2>&1 || true").trim() - println("output is [$output]") - alive = output.contains('succeeded') + timeout(time: 1, unit: 'MINUTES') { + while (!alive) { + output = sh( + returnStatus: true, + script: "ssh -T -i ${SSH_KEY} " + + "-o StrictHostKeyChecking=no " + + "-o UserKnownHostsFile=/dev/null " + + "-o ConnectTimeout=5 ubuntu@${IP_ADDRESS} 'echo Alive'") + alive = (output == 0) + } } println('VM is ready and accepting ssh connections') } // stage("Spawn Remote VM") -- 2.17.1