Nachdem ich Zeit mit Vagrant verbracht hatte, bekam ich die Lösung für die Custom Box. Installieren Sie zunächst ein Linux-Betriebssystem in libvirt / qvm, melden Sie sich zur Anpassung an und erstellen Sie einen vagrant
Benutzer mit Kennwortvagrant
adduser vagrant
vagrant
Der Benutzer sollte in der Lage sein, sudo-Befehle ohne Aufforderung zur Kennworteingabe auszuführen
sudo visudo -f /etc/sudoers.d/vagrant
und einfügen
vagrant ALL=(ALL) NOPASSWD:ALL
Tun Sie alles, was Sie möchten, um Ihre Vagrant-Box anzupassen, und installieren Sie sie, openssh-server
falls sie noch nicht installiert wurde
sudo apt-get install -y openssh-server
lege den SSH-Schlüssel von einem vagabunden Benutzer ab
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
Öffne sudo vi /etc/ssh/sshd_config
und ändere es
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
Starten Sie den SSH-Dienst mit
sudo service ssh restart
Installieren Sie zusätzliche Entwicklungspakete, damit die Tools ordnungsgemäß kompiliert und installiert werden können
sudo apt-get install -y gcc build-essential linux-headers-server
Nehmen Sie die gewünschten Änderungen vor und fahren Sie die VM herunter. Kommen Sie nun zum Host-Computer, auf dem die Gast-VM ausgeführt wird, und /var/lib/libvirt/images/
wählen Sie das Raw-Image aus, in dem Sie die Änderung vorgenommen und beispielsweise irgendwo kopiert haben/test
cp /var/lib/libvirt/images/test.img /test
Erstellen zwei Datei metadata.json
und Vagrantfile
in /test
do Eintrag inmetadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
und in 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
konvertiere test.img in das qcow2 Format mit
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
benenne ubuntu.qcow2 in box.img um
mv ubuntu.qcow2 box.img
Hinweis: Derzeit unterstützt libvirt-vagrant nur das qcow2-Format. Ändern Sie das Format also nicht, sondern benennen Sie es in box.img um. weil es standardmäßig Eingaben mit dem Namen box.img akzeptiert.
Box erstellen
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
Box zum Vagabunden hinzufügen
vagrant box add --name custom custom_box.box
Wechseln Sie in ein beliebiges Verzeichnis, in dem Sie vagrant initialisieren möchten, und führen Sie den folgenden Befehl aus, um die Vagrant-Datei zu erstellen
vagrant init custom
Starten Sie die Konfiguration der virtuellen Maschine
vagrant up --provider=libvirt
genießen !!!