depois de passar um tempo com o vagrant, consegui a solução para caixa personalizada. primeiro instale qualquer sistema operacional Linux no libvirt / qvm e efetue login nele para customização e crie vagrant
usuário com senhavagrant
adduser vagrant
vagrant
o usuário deve poder executar comandos sudo sem um prompt de senha
sudo visudo -f /etc/sudoers.d/vagrant
e cole
vagrant ALL=(ALL) NOPASSWD:ALL
faça o que quiser para personalizar sua caixa de vagabundos e instale openssh-server
se não estiver instalado anteriormente
sudo apt-get install -y openssh-server
colocar chave ssh do usuário vagabundo
mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget --no-check-certificate \
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \
-O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
abrir sudo vi /etc/ssh/sshd_config
e mudar
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
reinicie o serviço ssh usando
sudo service ssh restart
instalar pacotes de desenvolvimento adicionais para as ferramentas compilarem e instalarem corretamente
sudo apt-get install -y gcc build-essential linux-headers-server
faça as alterações desejadas e desligue a VM. agora, venha para a máquina host na qual a VM convidada está sendo executada, vá para a /var/lib/libvirt/images/
imagem bruta e escolha a imagem em que você fez a alteração e copie em algum lugar, por exemplo/test
cp /var/lib/libvirt/images/test.img /test
criar dois arquivos metadata.json
e Vagrantfile
em /test
fazer entrada emmetadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
e em Vagrantfile
Vagrant.configure("2") do |config|
config.vm.provider :libvirt do |libvirt|
libvirt.driver = "kvm"
libvirt.host = 'localhost'
libvirt.uri = 'qemu:///system'
end
config.vm.define "new" do |custombox|
custombox.vm.box = "custombox"
custombox.vm.provider :libvirt do |test|
test.memory = 1024
test.cpus = 1
end
end
end
converta test.img para o formato qcow2 usando
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
renomeie ubuntu.qcow2 para box.img
mv ubuntu.qcow2 box.img
Nota: atualmente, o libvirt-vagrant suporta apenas o formato qcow2. portanto, não mude o formato, apenas renomeie para box.img. porque recebe entrada com o nome box.img por padrão.
criar caixa
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
adicionar caixa ao vagrant
vagrant box add --name custom custom_box.box
vá para qualquer diretório em que deseja inicializar o vagrant e execute o comando abaixo que criará o arquivo Vagrant
vagrant init custom
começar a configurar a VM vagante
vagrant up --provider=libvirt
apreciar !!!
~/.vagrant.d/boxes/<name>/0/libvirt/