Eu uso em geral 4 VMs, 2 controladoras e 2 payloads. Eu uso um script que faz algo como:
E depois eu rodo um teste com python, pexpect e unittest pra ver se a porta ssh está ativa. Algo como:
#! /usr/bin/python -u
import unittest
import pexpect
import time
import sys
import os
import telnetlib
SC1 = "192.168.0.1"
SC2 = "192.168.02.2"
ssh_port = 22
timeout = 10 # seconds
# unbuffered
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
class MyVMTestCase(unittest.TestCase):
def test_1(self):
"""
Checking if node is up after while
"""
print "Checking if nodes are up (testing ssh port)"
for controller in [ SC1, SC2 ]:
print " Checking node %s" % controller
counter = 15 # minutes
isConnected = False
while (counter):
print "trying to connect...",
try:
t = telnetlib.Telnet(
controller,
ssh_port,
timeout)
t.read_until("SSH", timeout)
isConnected = True
print " ... connected!"
print " Node %s is up and ready for connection" % controller
self.assertTrue(isConnected)
break
except:
print " ... connection failed (%d)" % counter
pass
if (counter == 0):
print " Timeout reached"
self.assertTrue(isConnected)
break
else:
counter -= 1
time.sleep(60) # 1 minute
if __name__ == "__main__":
unittest.main()