আপনার প্রশ্নটি আবার পড়ার পরে, মনে হচ্ছে আপনি আমার থেকে কিছুটা আলাদা করার চেষ্টা করছেন - তবে আমার মনে হয় আমাদের শেষ লক্ষ্যটি একই।
আমি আমার বেস বাক্সগুলি হোস্টিংয়ের জন্য ভ্যাগ্রান্ট ক্লাউড পরিষেবাটি ব্যবহার করতে চাই না, তবে আমি আমার ডেভ টিমে একটি বিকাশ পরিবেশ বন্টন করতে সক্ষম হতে চাই এবং উন্নয়নের পরিবেশের জন্য metadata.json
সংস্করণ ব্যবস্থা বজায় রাখতে ফাইলের বৈশিষ্ট্যগুলি ব্যবহার করতে চাই , যা কেবলমাত্র দ্বিধায় থাকা সুবিধাগুলি ব্যবহার করে আমার উন্নয়ন দলের কাছে উপলব্ধ হবে।
এই লেখার সময় (8/5/2014) এ অসম্পূর্ণ ডকুমেন্টেশনটি সত্যই বিচ্ছিন্ন, সম্ভবত এটি একটি তুলনামূলকভাবে নতুন বৈশিষ্ট্যযুক্ত তবে আমি নিশ্চিত যে ভ্যাগ্র্যান্টক্লাউডের একটি প্রদত্ত স্তর রয়েছে তার সাথে এরও কিছু করার আছে I'm ।
জিনিসটা কিভাবে ব্যবহার করতে metadata.json
সংস্করণে ফাইল এবং বক্স বিতরণ, আমি VagrantCloud উপলব্ধ ভার্চুয়াল মেশিনের কিছু কটাক্ষপাত গ্রহণ করেন। সেগুলি সন্ধান করার পরে এবং কিছু যোদ্ধা কোড পড়ার পরে - কীভাবে আমার লক্ষ্য অর্জন করা যায় তা নির্ধারণ করা বেশ সহজ হয়ে ওঠে।
- আপনার বাক্সটি প্যাকেজ করুন যেমন আপনি সাধারণভাবে করেন। আমার ক্ষেত্রে, আমি কেবল ভার্চুয়াল বাক্সের জন্য প্যাকেজিং করছি, কারণ আমাদের বিকাশকারীরা ভিএম চালানোর জন্য এটি ব্যবহার করবে। আমি আমার বেসবক্সের সাথে একটি ভ্যাগ্রান্টফাইলে প্যাকেজও করি যা বিকাশের পরিবেশের জন্য কিছু প্রভিশন করে (উপযুক্ত ফোল্ডারগুলিতে শেয়ার সেটআপ করে, কিছু বেসিক অ্যাপাচি কনফিগারেশন, ত্রুটি লগিং ইত্যাদি)
metadata.json
আপনার বেস বাক্সটি বর্ণনা করতে একটি ফাইল তৈরি করুন , আমার দেখতে এটির মতো দেখাবে:
{
"description": "long box description",
"short_description": "short box description",
"name": "company/developer-environment",
"versions": [{
"version": "1",
"status": "active",
"description_html": "<p>Dev Environment</p>",
"description_markdown": "Dev Environment",
"providers": [{
"name": "virtualbox",
"url": "http:\/\/vagrant.domain.local/dev/company-developer-environment-1.box"
}]
}]
}
আমি আমার metadata.json
ফাইলটি তৈরি করার পরে , এটি আমাদের অভ্যন্তরীণ নেটওয়ার্কে চলমান একটি স্থানীয় সার্ভারে আপলোড করেছি vagrant.domain.local/metadata.json
। একবার আমি এটি করার পরে, যা কিছু ছিল তা হ'ল এটি পরীক্ষা করানো ছিল অসম্পূর্ণতার সাথে:
# add the box to vagrant using the definition from metadata.json
# (the box is actually downloaded here, so it can take a minute...or 10)
$ vagrant box add http://vagrant.domain.local/dev/metadata.json
# init the box (this creates a .vagrant folder and a Vagrantfile in the cwd with the appropriate box name)
$ vagrant init company/developer-environment
# boot the box
$ vagrant up
ভয়েলা, একটি দূরবর্তীভাবে হোস্ট করা, ভাগ করা এবং সংস্করণযুক্ত, ব্যক্তিগত বাক্স যা ভ্যাব্রেন্ট ক্লাউড ব্যবহারের প্রয়োজন হয় না।
আপনি যখন আপনার বাক্সের নতুন সংস্করণ তৈরি করবেন, আপনি এটি প্যাকেজ করবেন এবং metadata.json
ফাইলটি সম্পাদনা করবেন । আমি যা বলতে পারি সেগুলি থেকে আপনি যা চান সংস্করণীকরণ স্কিমটি ব্যবহার করতে পারেন এটি সেমেন্টিক সংস্করণ (১.০.০, ০.০.১, ইত্যাদি) বা সংস্করণের জন্য সহজ সাধারণ সংখ্যা (১, ২, ৩, ইত্যাদি)। আপনার বাক্স ব্যবহারকারীরা যখন vagrant up
স্বয়ংক্রিয়ভাবে কোনও নতুন সংস্করণের জন্য আপনার মেটাডেটা.জসন ফাইলটি চেক করে, এবং vagrant box update
বাক্সটি আপডেট করার জন্য তাদের অনুরোধ করবে ।
আপনি বক্স নাম এবং বাক্স ইউআরএল সহ বেস ভ্যাগ্রান্টফায়াল সংজ্ঞায়িত করে vagrant box add <metadata.json url>
এবং vagrant init
বিটগুলি এড়িয়ে যেতে পারেন:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "company/developer-environment"
config.vm.box_url = "https://vagrant.domain.local/dev/metadata.json"
end
আপনি এই বিষয়বস্তুগুলির সাথে একটি ভ্যাগ্র্যান্টফিলি বিতরণ করতে পারেন এবং সমস্ত ব্যবহারকারী সবেমাত্র সক্ষম হবেন vagrant up
। যদিও, সংস্করণগুলি আপডেট হওয়ার সাথে সাথে এটি কীভাবে কাজ করে সে সম্পর্কে আমি নিশ্চিত নই।