après avoir passé du temps avec vagabond, j'ai obtenu la solution pour une boîte personnalisée. tout d'abord, installez tout système d'exploitation Linux dans libvirt / qvm et connectez-vous à celui-ci pour la personnalisation et créez un vagrant
utilisateur avec un mot de passevagrant
adduser vagrant
vagrant
l'utilisateur doit pouvoir exécuter les commandes sudo sans invite de mot de passe
sudo visudo -f /etc/sudoers.d/vagrant
et coller
vagrant ALL=(ALL) NOPASSWD:ALL
faites ce que vous voulez pour personnaliser votre boîte vagabonde et installez-la openssh-server
si elle n'est pas déjà installée
sudo apt-get install -y openssh-server
mettre la clé ssh de l'utilisateur vagabond
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
ouvrir sudo vi /etc/ssh/sshd_config
et changer
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
redémarrer le service ssh en utilisant
sudo service ssh restart
installer des packages de développement supplémentaires pour que les outils soient correctement compilés et installés
sudo apt-get install -y gcc build-essential linux-headers-server
effectuez les modifications souhaitées et arrêtez la machine virtuelle. maintenant, venez sur la machine hôte sur laquelle la machine virtuelle invitée est en cours d'exécution et passez à la /var/lib/libvirt/images/
et choisissez l'image brute dans laquelle vous avez effectué la modification et copiez quelque part par exemple/test
cp /var/lib/libvirt/images/test.img /test
créer deux fichiers metadata.json
et Vagrantfile
dans l' /test
entrée do dansmetadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
et en 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
convertir test.img au format qcow2 en utilisant
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
renommer ubuntu.qcow2 en box.img
mv ubuntu.qcow2 box.img
Remarque: actuellement, libvirt-vagrant ne prend en charge que le format qcow2. donc, ne changez pas le format, renommez simplement box.img. car il prend l'entrée avec le nom box.img par défaut.
créer une boîte
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
ajouter une boîte au vagabond
vagrant box add --name custom custom_box.box
allez dans n'importe quel répertoire où vous souhaitez initialiser vagrant et exécutez la commande ci-dessous qui créera le fichier Vagrant
vagrant init custom
commencer à configurer vagrant VM
vagrant up --provider=libvirt
prendre plaisir !!!
~/.vagrant.d/boxes/<name>/0/libvirt/