vagrant ile zaman geçirdikten sonra özel kutu için çözüm var. her şeyden önce libvirt / qvm içine herhangi bir Linux işletim sistemi kurun ve özelleştirme için oturum açın ve vagrantşifre ile kullanıcı oluşturunvagrant
adduser vagrant
vagrant kullanıcı sudo komutlarını şifre istemi olmadan çalıştırabilmelidir
sudo visudo -f /etc/sudoers.d/vagrant
ve yapıştır
vagrant ALL=(ALL) NOPASSWD:ALL
vagrant kutunuzu özelleştirmek istediğinizi yapın ve openssh-serverdaha önce kurulmadıysa yükleyin
sudo apt-get install -y openssh-server
sg anahtarını serseri kullanıcıdan koy
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
sudo'yu aç vi /etc/ssh/sshd_configve değiştir
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
kullanarak ssh servisini yeniden başlat
sudo service ssh restart
Düzgün bir şekilde derlemek ve kurmak için araçlar için ek geliştirme paketleri yükleyin
sudo apt-get install -y gcc build-essential linux-headers-server
istediğiniz değişiklikleri yapın ve VM'yi kapatın. şimdi, konuk VM'nin çalıştığı ana makineye gelin /var/lib/libvirt/images/ve değişikliği yaptığınız ham görüntüyü seçin ve örneğin bir yere kopyalayın/test
cp /var/lib/libvirt/images/test.img /test
İki dosya oluşturmak metadata.jsonve Vagrantfilede /test
do girişindemetadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
ve 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
kullanarak test.img dosyasını qcow2 formatına dönüştürün
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
ubuntu.qcow2'yi box.img olarak yeniden adlandırın
mv ubuntu.qcow2 box.img
Not: şu anda libvirt-vagrant yalnızca qcow2 biçimini desteklemektedir. bu yüzden formatı sadece box.img olarak değiştirmeyin. çünkü varsayılan olarak box.img adıyla girdi alır.
kutu oluştur
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
vagrant'a kutu ekle
vagrant box add --name custom custom_box.box
vagrant'ı başlatmak istediğiniz herhangi bir dizine gidin ve Vagrant dosyası oluşturacak olan aşağıdaki komutu çalıştırın
vagrant init custom
vagrant VM'yi yapılandırmaya başla
vagrant up --provider=libvirt
zevk almak !!!