libvirt / kvm उदाहरण से कस्टम योनि बॉक्स कैसे बनाएं?


16

वर्चुअलबॉक्स उदाहरण से कस्टम योनि बॉक्स बनाने के लिए इंटरनेट पर कई संसाधन हैं। लेकिन मैं सीधे kvm / libvirt उदाहरण से कस्टम योनि बॉक्स बनाने के लिए एक सीधी विधि जानना चाहता हूं। कृपया वेजेंट-म्यूट या किसी भी तरह का सुझाव न दें जो वर्चुअलबॉक्स को किसी अन्य प्रदाता में बदल दे।

जवाबों:


21

योनि के साथ समय बिताने के बाद मुझे कस्टम बॉक्स के लिए समाधान मिला। सबसे पहले किसी भी Linux OS को libvirt / qvm में इनस्टॉल करें और कस्टमाइजेशन के लिए लॉगिन करें और vagrantपासवर्ड के साथ यूजर बनाएंvagrant

adduser vagrant

vagrant उपयोगकर्ता को पासवर्ड प्रॉम्प्ट के बिना sudo कमांड चलाने में सक्षम होना चाहिए

sudo visudo -f /etc/sudoers.d/vagrant

और पेस्ट करें

vagrant ALL=(ALL) NOPASSWD:ALL

जो कुछ भी आप अपने योनि बॉक्स को अनुकूलित करना चाहते हैं उसे करें और openssh-serverपहले से स्थापित नहीं होने पर स्थापित करें

sudo apt-get install -y openssh-server

योनि उपयोगकर्ता से ssh कुंजी रखो

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 vi /etc/ssh/sshd_configऔर परिवर्तन

PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no

ssh सेवा का उपयोग करके पुनः आरंभ करें

 sudo service ssh restart

उपकरण को ठीक से संकलित करने और स्थापित करने के लिए अतिरिक्त विकास पैकेज स्थापित करें

sudo apt-get install -y gcc build-essential linux-headers-server

कोई भी परिवर्तन जो आप चाहते हैं और VM को बंद करें। अब, मेजबान मशीन पर आओ, जिस पर अतिथि वीएम चल रहा है और गोटो /var/lib/libvirt/images/और कच्ची छवि चुनें जिसमें आपने परिवर्तन किया है और उदाहरण के लिए कहीं कॉपी करें/test

cp /var/lib/libvirt/images/test.img  /test 

दो फ़ाइल बनाने metadata.jsonऔर Vagrantfileमें /test में करते प्रविष्टिmetadata.json

{
  "provider"     : "libvirt",
  "format"       : "qcow2",
  "virtual_size" : 40
}

और में 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

का उपयोग कर test.img को qcow2 प्रारूप में बदलें

sudo qemu-img convert -f raw -O qcow2  test.img  ubuntu.qcow2

ubuntu.qcow2 को box.img में बदलें

mv ubuntu.qcow2 box.img 

नोट: वर्तमान में, libvirt- योनि केवल qcow2 प्रारूप का समर्थन करता है। इसलिए, केवल बॉक्स का नाम बदलें प्रारूप को परिवर्तित न करें ।gg क्योंकि यह डिफ़ॉल्ट रूप से नाम box.img के साथ इनपुट लेता है।
बॉक्स बनाएँ

tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img 

योनि में बॉक्स जोड़ें

vagrant box add --name custom custom_box.box

किसी भी डायरेक्टरी में जाएं जहां आप वैजाइनल को इनिशियलाइज़ करना चाहते हैं और कमांड बलो को रन करेंगे जो वैग्रेंट फाइल बनाएगा

vagrant init custom

योनि VM को कॉन्फ़िगर करना शुरू करें

vagrant up --provider=libvirt 

का आनंद लें !!!


2
मैं यह बताना चाहता था, कि सारा समय टार्गेट करने के बाद, उन्हें फिर से टारगेट करने में, योनि बराबर समय खर्च करती है। :
फ़ुबर

2
राउंड-ट्रिप टार / अनार को छोड़ने के लिए, आप सीधे अपने वैग्रांटफाइल, मेटा.जॉन, और बॉक्स को छोड़ सकते हैं। सीधे~/.vagrant.d/boxes/<name>/0/libvirt/
थोरसुमोनर

अपेक्षाकृत जटिल प्रक्रिया के लिए इतनी स्पष्ट व्याख्या के लिए UPvote। धन्यवाद
एवी Mehenwal
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.