KVM altera o hostname da imagem-d automaticamente na inicialização

3

Eu criei uma imagem da VM desligada. A partir do novo modelo XML, consegui criar uma nova VM usando virsh create newvm.xml. Basicamente, a imagem foi criada copiando a imagem de uma VM desligada que foi construída a partir da imagem do Ubuntu OS - obviamente, durante a instalação, eu tinha que especificar o nome do host. Agora, encerrei a VM e copiei a imagem para usá-la como uma imagem de base para meus novos convidados da VM. O problema é que eu não sei como mudar o nome do host automaticamente. Agora, a nova VM recém-criada está começando com o mesmo nome de host da máquina a partir da qual a imagem foi criada. Existe alguma maneira de lidar com isso?

   <domain type='kvm' id='10'>
  <name>sensu.gc.example.com</name>
  <uuid>3d638021-1fd5-96c4-5b7b-a5c11d69c314</uuid>
  <memory>1048576</memory>
  <currentMemory>1048576</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/kvm/sensu/tmpZ2yf6n.qcow2'/>
      <target dev='hda' bus='ide'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:50:89:7b'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='apparmor' relabel='yes'>
    <label>libvirt-3d638021-1fd5-96c4-5b7b-a5c11d69c314</label>
    <imagelabel>libvirt-3d638021-1fd5-96c4-5b7b-a5c11d69c314</imagelabel>
  </seclabel>
</domain>

Eu pensei que, especificando o nome do host em uma tag, ele seria alterado automaticamente na criação da VM. Existe alguma maneira como eu posso conseguir o que estou tentando? Felicidades.

    
por gyre 22.08.2012 / 18:27

2 respostas

2

Você não pode alterar o nome do host do arquivo XML da VM nem do KVM. Este arquivo XML lista apenas as propriedades da VM, o nome do host não é uma dessas propriedades. O nome do host é definido no sistema operacional da VM (Ubuntu no seu caso) durante o processo de inicialização.

Para mudar o nome do host você deve olhar o arquivo /etc/hostname no seu servidor Ubuntu (veja exemplos detalhados ).

Se você estiver usando o dhcp para configurar o endereço IP de seus servidores (o que eu recomendaria), dhcp-client poderá usar alguns ganchos para executar um script quando receber um endereço IP. Dessa forma, você pode alterar dinamicamente o nome do host durante o processo de inicialização. Aqui está um exemplo de como fazer isso .

Outra opção, como sugerida por pedro, é definir o endereço MAC do servidor em cada novo arquivo XML (que você pode fazer, por ser uma propriedade da VM) e ter um script em execução no momento da inicialização que atribuirá um Endereço IP e um nome de host derivado desse endereço MAC.

    
por 15.01.2014 / 12:32
1

Eu faço isso configurando o endereço MAC na criação da VM e ajustando o /etc/rc.local para ver o MAC e definir IPs / hostname dependendo do seu valor. Saudações, Pedro

    
por 15.01.2014 / 09:08