কোনও ডিজিটাল বক্স চালু করার সময় 'ডিফল্ট' নামটি কোথা থেকে আসে?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
এটি সেট করার কোনও উপায় আছে?
কোনও ডিজিটাল বক্স চালু করার সময় 'ডিফল্ট' নামটি কোথা থেকে আসে?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
এটি সেট করার কোনও উপায় আছে?
উত্তর:
আমি একাধিক বিকল্পকে বিভ্রান্তিকর পেয়েছি, তাই তারা ঠিক কী করে তা দেখার জন্য আমি তাদের সকলের পরীক্ষা করার সিদ্ধান্ত নিয়েছি।
আমি ভার্চুয়ালবক্স 4.2.16-r86992 এবং ভ্যাগ্র্যান্ট 1.3.3 ব্যবহার করছি।
আমি একটি ডিরেক্টরি তৈরি করেছি nametestএবং দৌড়েছি
vagrant init precise64 http://files.vagrantup.com/precise64.box
একটি ডিফল্ট Vagrantfile উত্পাদন করতে। তারপরে আমি ভার্চুয়ালবক্স জিইউআই খুললাম যাতে আমি দেখতে পেতাম যে বাক্সগুলি আমি তৈরি করব সেগুলির নামগুলি কী প্রদর্শিত হবে।
ডিফল্ট ভ্যাগ্রান্টফাইল
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end
ভার্চুয়ালবক্স জিইউআই নাম: "নেমেস্টেস্ট_ডিফল্ট_1386347922"
মন্তব্যসমূহ: নামটি DIRECTORY_default_TIMESTAMP ফর্ম্যাটে ডিফল্ট।
ভিএম সংজ্ঞায়িত করুন
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.define "foohost"
end
ভার্চুয়ালবক্স জিইউআই নাম: "নেম টেষ্ট_ফুহোস্ট_1386347922"
মন্তব্যসমূহ: আপনি যদি স্পষ্টভাবে কোনও ভিএম সংজ্ঞায়িত করেন তবে ব্যবহৃত নামটি টোকেনকে 'ডিফল্ট' প্রতিস্থাপন করবে। এটি কনসোলের নাম ভিজাগর আউটপুট। zookএর (কমেন্টার) ইনপুটটির ভিত্তিতে সরলীকরণ
সরবরাহকারীর নাম সেট করুন
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.provider :virtualbox do |vb|
vb.name = "foohost"
end
end
ভার্চুয়ালবক্স জিইউআই নাম: "ফুহোস্ট"
মন্তব্যসমূহ: আপনি যদি nameসরবরাহকারীর কনফিগারেশন ব্লকে অ্যাট্রিবিউটটি সেট করেন তবে সেই নামটি ভার্চুয়ালবক্স জিইউআইতে প্রদর্শিত পুরো নাম হয়ে যাবে।
সংযুক্ত উদাহরণ: ভিএম-এবং- সরবরাহকারীর নাম নির্ধারণ করুন
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.define "foohost"
config.vm.provider :virtualbox do |vb|
vb.name = "barhost"
end
end
ভার্চুয়ালবক্স জিইউআই নাম: "বারহোস্ট"
মন্তব্যসমূহ: আপনি যদি একই সাথে উভয় পদ্ধতি ব্যবহার nameকরেন তবে সরবরাহকারীর কনফিগারেশন ব্লকে নির্ধারিত মানটি জয়ী হয়। zookএর (কমেন্টার) ইনপুটটির ভিত্তিতে সরলীকরণ
সেট hostname(বোনাস)
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.hostname = "buzbar"
end
মন্তব্যসমূহ: এটি ভিএম এর অভ্যন্তরে হোস্টনাম সেট করে। এটি hostnameভিএম-তে কমান্ডের আউটপুট হবে এবং প্রম্পটে যা দেখা যাচ্ছে vagrant@<hostname>এটি এখানে এটির মতো দেখাবেvagrant@buzbar
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.hostname = "buzbar"
config.vm.define "foohost"
config.vm.provider :virtualbox do |vb|
vb.name = "barhost"
end
end
সুতরাং এটি আছে। আপনি এখন 3 টি আলাদা বিকল্প সেট করতে পারেন এবং সেগুলির প্রভাবগুলি জানেন। আমার ধারণা এই মুহুর্তে এটি পছন্দের বিষয়? (আমি ভ্যাগ্রান্টে নতুন, তাই আমি এখনও সেরা অনুশীলনের সাথে কথা বলতে পারি না))
VBoxManage list vmsকমান্ড লাইনে ব্যবহার করতে পারেন ।
define VMপদ্ধতির নামটি ভ্যাগ্র্যান্ট স্ট্ডআউট এবং লগগুলিতে ব্যবহৃত হয়, যখন set provider nameনামটি সরবরাহকারীর সাথে বাক্স পরিচালনার জন্য ব্যবহৃত হয়। সুতরাং উভয় প্রাসঙ্গিক।
do... endএটি খালি থাকলে আসলে আপনার প্রয়োজন নেই । config.vm.define "foohost"ঠিক কাজ করে।
Bringing machine 'default' up with 'virtualbox' provider...আপনি কার্যকর করার সময় এটি এখনও রাখেvagrant up
এইভাবে আমি পৃথক ভিএমগুলিকে নাম নির্ধারণ করেছি। YOURNAMEHEREআপনার পছন্দসই নাম পরিবর্তন করুন ।
ভ্যাগ্রান্টফায়ালের বিষয়বস্তু:
Vagrant.configure("2") do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "precise32"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.define :YOURNAMEHERE do |t|
end
end
টার্মিনাল আউটপুট:
$ vagrant status
Current machine states:
YOURNAMEHERE not created (virtualbox)
config.vm.define :app_nameখুব সহজে কাজ করে।
config.vm.define YOURNAMEHERE do |t| end
আপনি যদি 'ডিফল্ট' পরিবর্তে অন্য কিছু পরিবর্তন করতে চান, তবে কেবল আপনার ভ্যাগ্রান্টফাইলে এই অতিরিক্ত লাইনগুলি যুক্ত করুন:
config.vm.define "tendo" do |tendo|
end
যেখানে "টেন্ডো" নামটি ডিফল্ট পরিবর্তে প্রদর্শিত হবে
আমি ভ্যাগ্র্যান্টফিলের ভিতরে সংজ্ঞা দিয়ে নামটি নির্দিষ্ট করি এবং হোস্টনামটিও নির্দিষ্ট করি যাতে আমার ডিভাইসের ওএস থেকে লিনাক্স কমান্ডগুলি স্বাধীনভাবে কার্যকর করার সময় আমার প্রকল্পের নামটি দেখতে ভাল লাগে । ✌️
config.vm.define "abc"
config.vm.hostname = "abc"
হ্যাঁ, ভার্চুয়ালবক্স সরবরাহকারীর জন্য এমন কিছু করুন:
Vagrant.configure("2") do |config|
# ...other options...
config.vm.provider "virtualbox" do |p|
p.name = "something-else"
end
end
vagrant destroyপরে এটি আবার ফিরিয়ে আনা এটি এখনও এটি ডিফল্ট বলে।
আপনি ভ্যাগ্র্যান্ট ডিফল্ট মেশিনের নামটির মান পরিবর্তন করে পরিবর্তন করতে পারেন config.vm.define।
এখানে সহজ Vagrantfile যা ব্যবহার করে getopts এবং আপনার নাম পরিবর্তনশীল পরিবর্তন করতে অনুমতি দেয়:
# -*- mode: ruby -*-
require 'getoptlong'
opts = GetoptLong.new(
[ '--vm-name', GetoptLong::OPTIONAL_ARGUMENT ],
)
vm_name = ENV['VM_NAME'] || 'default'
begin
opts.each do |opt, arg|
case opt
when '--vm-name'
vm_name = arg
end
end
rescue
end
Vagrant.configure(2) do |config|
config.vm.define vm_name
config.vm.provider "virtualbox" do |vbox, override|
override.vm.box = "ubuntu/wily64"
# ...
end
# ...
end
সুতরাং আলাদা নাম ব্যবহার করতে আপনি উদাহরণস্বরূপ চালাতে পারেন:
vagrant --vm-name=my_name up --no-provision
দ্রষ্টব্য: কমান্ডের --vm-nameআগে প্যারামিটার নির্দিষ্ট করা দরকার up।
বা:
VM_NAME=my_name vagrant up --no-provision
আপনার ভ্যাব্রেন্ট ফাইলটি ব্যবহার করার মতো অনেক লোকের ক্ষেত্রে - আপনি নামটি গতিশীলভাবে সেট করতে চাইতে পারেন । নীচে বাক্সের নাম এবং হোস্টনাম হিসাবে আপনার HOST মেশিনের ব্যবহারকারীর নাম ব্যবহার করে এটি কীভাবে করা যায় তার উদাহরণ নীচে দেওয়া হল :
require 'etc'
vagrant_name = "yourProjectName-" + Etc.getlogin
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.hostname = vagrant_name
config.vm.provider "virtualbox" do |v|
v.name = vagrant_name
end
end