Não reinvente a roda. Basta usar o libvirt e as ligações de idioma de sua escolha.
Esta é a minha primeira pergunta no serverfault, então espero estar fazendo isso, já que normalmente estou no Stackoverflow: -)
Eu tenho dois servidores Ubuntu 14.04 LTS, servidor A e B.
O servidor A executa o servidor da web em que meu portal do cliente é executado e onde os clientes podem solicitar máquinas virtuais.
O servidor B é o hypervisor com o KVM, onde as imagens e, por fim, as máquinas virtuais são criadas.
Eu criei recentemente um script bash no servidor A que:
Todos esses comandos são executados com o uso de SSH. Isso significa que para cada máquina virtual eu preciso fazer 3 comandos SSH. Mais se um hipervisor não tiver espaço em disco suficiente para a criação de imagens.
Esse script funciona bem quando há apenas um cliente solicitando uma máquina virtual e quando há apenas um hipervisor. Ter vários clientes solicitando VMs e tendo vários hipervisores provavelmente quebrará o script. Então pensei na seguinte solução:
Sempre que um cliente clica no botão 'Order VM', uma chamada telnet para um hypervisor + port é feita e um daemon que atende nessa porta executa um script, por exemplo:
Eu não tentei muito porque não sei por onde começar. Há muito o que pensar, mas eu só preciso de um pequeno empurrão na direção certa para fazer as coisas começarem. Eu não preciso necessariamente de código de exemplo (pode ajudar, claro). Eu posso fornecer o script bash que eu criei, se necessário.
Não reinvente a roda. Basta usar o libvirt e as ligações de idioma de sua escolha.