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-server
daha ö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_config
ve 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.json
ve Vagrantfile
de /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 !!!