[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: KVM - Sequenciar boot



Esqueci mas... depois que inicio as controladoras, daí eu inicio as payloads.

for id in 3 4
    do
    virsh start pl-$id
done


Em 23 de fevereiro de 2016 14:43, Helio Loureiro <helio@loureiro.eng.br> escreveu:
Eu uso em geral 4 VMs, 2 controladoras e 2 payloads.  Eu uso um script que faz algo como:

for id in 1 2
   do
   virsh start sc-$id
done

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()

O unittest é porque eu estou rodando no jenkins e o relatório sai mais bonitinho.



Em 23 de fevereiro de 2016 13:16, Linux - Junior Polegato <linux@juniorpolegato.com.br> escreveu:
Em 22-02-2016 21:43, Sérgio Abrantes Junior escreveu:
Olá a todos,
Possuo um Debian 8 onde virtualizo 2VMs.
Precisava sequenciar o boot. Exemplo: Inicia uma VM, depois outra.
Uso Qemu-KVM e gerencio com virt-namager.
Procurei em um monte de lugares, mas não encontrei.
Alguém já fez isso?

Olá!

        No virt-manager você marca ambas para autostart e pronto. Contudo elas iniciarão praticamente juntas, e não uma "depois" outra, aliás esse "depois" é subjetivo, o que seria isso, um tempo depois, quando a outra VM atingir processamento ou I/O abaixo de um treshold? Isso é meio subjetivo.

--

[]'s

Junior Polegato



Reply to: