मैं एक संयोजक से एक वैग्रेंट गेस्ट को कैसे रिबूट कर सकता हूं?


3

यहां नवजात शिशु के सापेक्ष, हर बार जब मैं एक नया उबंटू वीएम स्पिन करना चाहता हूं, तो मैन्युअल रूप से इंस्टॉल प्रक्रिया से गुजरने की कोशिश कर रहा हूं।

मेरी सामान्य प्रक्रिया, इंस्टॉल पूरा करने के बाद, मशीन के सभी सॉफ्टवेयर को अपडेट करना है , apt-get updateऔर apt-get dist-upgrade -yफिर सभी अपग्रेड प्रभाव को सुनिश्चित करने के लिए इसे रिबूट करना है। उस अंत तक, मैंने वैग्रांटफाइल को इस तरह बनाया:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "4096"
  end

  config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get dist-upgrade -y
    shutdown -r now
  SHELL
end

यह ज्यादातर काम करता है - मैं वीएम से आउटपुट को पैकेज अपडेट के रूप में देख सकता हूं - लेकिन इसके रिबूट होने के बाद और मैं vagrant sshइसमें, मेरी कोई भी फाइल सामने नहीं आई /vagrant। मैं मान रहा हूं कि साझा किए गए फ़ोल्डर को किसी कारण से हटाया नहीं जा रहा है।

मुझे लगता है कि मेरा पहला सवाल यह है: क्या यह इस तरह से सिस्टम को अपडेट करने के लिए समझ में आता है कि शेल प्रोलेक्टर का हिस्सा है? और यदि हां, तो मैं अतिथि को कैसे रिबूट कर सकता हूं और अभी भी /vagrantशेयर माउंट है?

जवाबों:


3

यह ठीक वैसा ही है जैसा कि आवारा-पुनः लोड प्लगइन के लिए है। इसे स्थापित करने के बाद बस config.vm.provision :reloadउस प्रोविजनिंग में बिंदु पर जोड़ें जिसे आप फिर से लोड करना चाहते हैं।


3

यदि आप प्रावधान पूरा होने के बाद केवल रिबूट करना चाहते हैं (प्रावधान चरणों के बीच नहीं), तो आप इसे प्राप्त करने के लिए ट्रिगर का उपयोग कर सकते हैं:

config.trigger.after [:provision] do |t|
  t.name = "Reboot after provisioning"
  t.run = { :inline => "vagrant reload" }
end

यह एक प्लगइन स्थापित करने की आवश्यकता नहीं का लाभ है।

ट्रिगर पर अधिक जानकारी यहाँ


इसकी एक प्रमुख सीमा है: ऐसा ट्रिगर केवल vagrant provisionकमांड पूरा होने के बाद चलाया जाएगा । पहले प्रावधान किए जाने के बाद यह नहीं चलेगा vagrant up। (देखें: github.com/hashicorp/vagrant/issues/10480 )
विज्ञापन एन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.