dopo aver trascorso del tempo con Vagrant ho ottenuto la soluzione per la scatola personalizzata. prima di tutto installa qualsiasi sistema operativo Linux in libvirt / qvm e accedi ad esso per la personalizzazione e crea un vagrant
utente con passwordvagrant
adduser vagrant
vagrant
l'utente dovrebbe essere in grado di eseguire i comandi sudo senza una richiesta di password
sudo visudo -f /etc/sudoers.d/vagrant
e incolla
vagrant ALL=(ALL) NOPASSWD:ALL
fai quello che vuoi per personalizzare il tuo vagabondo e installalo openssh-server
se non installato in precedenza
sudo apt-get install -y openssh-server
metti la chiave ssh dall'utente vagabondo
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
apri sudo vi /etc/ssh/sshd_config
e cambia
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
riavviare il servizio ssh utilizzando
sudo service ssh restart
installare pacchetti di sviluppo aggiuntivi per gli strumenti da compilare e installare correttamente
sudo apt-get install -y gcc build-essential linux-headers-server
fare le modifiche desiderate e arrestare la macchina virtuale. ora, vieni sulla macchina host su cui è in esecuzione la VM guest e vai su /var/lib/libvirt/images/
e scegli l'immagine non elaborata in cui hai apportato la modifica e copia da qualche parte per esempio/test
cp /var/lib/libvirt/images/test.img /test
creare due file di metadata.json
e Vagrantfile
in /test
entrata in dometadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
e dentro 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
converti test.img nel formato qcow2 usando
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
rinominare ubuntu.qcow2 in box.img
mv ubuntu.qcow2 box.img
Nota: attualmente, libvirt-vagrant supporta solo il formato qcow2. quindi, non cambiare il formato, basta rinominarlo in box.img. perché richiede l'input con nome box.img per impostazione predefinita.
crea box
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
aggiungi box a vagabondo
vagrant box add --name custom custom_box.box
andare in qualsiasi directory in cui si desidera inizializzare Vagrant ed eseguire il comando sotto che creerà il file Vagrant
vagrant init custom
iniziare a configurare la VM vagabonda
vagrant up --provider=libvirt
godere !!!