10 Steps To Create Multiple Virtual Machines Using Vagrant

Recommended by 209 users

Jan 28, 2015
10 Steps To Create Multiple Virtual Machines Using Vagrant
Add to Bookmark Email this Post 15.3K    3

By now you must have seen how to install a single development environment (VM) using vagrant. In case you haven’t please refer to my previous blog before going through this one.

In this blog we are going to see how to create multiple VMs using vagrant. But before we start, we must understand the requirements where  we need to create multiple VMs of the same configuration.

Requirement 1: Hadoop is one of the cutting-edge technologies today and it can be used by creating a hadoop cluster. At times you do not require a full-fledged cluster, but can manage with two servers only. However, you will need at least three datanodes. In this case, you may use one server as Namenode (since namenode has be a high-end machine) and in the other server you can create 3 VMs and use them as 3 datanodes.

Requirement 2: You are working in a production environment where you are dealing with a big project. As all of us are aware that before we deploy the project on the live server, the project has to be developed on the development server and tested on the test server. These servers are of the same configuration. Hence, we may use vagrant to create these servers all together instead of building them individually.

There can be many other requirements where you may leverage this feature. I would encourage you to comment your requirement on this blog so that it can help others as well.

It is assumed that you have Vagrant and Virtual Box already installed. Now, let’s see how to create multiple VMs using vagrant:

Step 1: Open the terminal (Linux or Mac) or command prompt (Windows)

Step 2: Create a new directory for vagrant :

$ mkdir vagrant_multi_edureka
$ cd vagrant_multi_edureka

Step 3: Initialize a new VagrantFile.

$ vagrant init

Step 4: Install a vagrant box. We are using “chef/centos-6.5” for this blog. You can see the list of boxes here.

$ vagrant box add chef/centos-6.5

Step 5: Update the Vagrant File as below:

# This defines the version of vagrant
Vagrant.configure(2) do |config|
	# Specifying the box we wish to use
	config.vm.box = "chef/centos-6.5"
	# Adding Bridged Network Adapter
	config.vm.network "public_network"
	# Iterating the loop for three times
	(1..3).each do |i|
		# Defining VM properties
		config.vm.define "edureka_vm#{i}" do |node|
			# Specifying the provider as VirtualBox and naming the VM's
			config.vm.provider "virtualbox" do |node|
				# The VM will be named as edureka_vm{i}
				node.name = "edureka_vm#{i}"  
			end
		end
	end
end

Step 6: Let’s start the edureka_vms namely: edureka_vm1, edureka_vm2 and edureka_vm3:

$ vagrant up

Congratulations! You have created three VMs using single vagrant file. You must be wondering how to use it. You can access it using ssh.
You can connect the VMs using the below host and port number:
                         edureka_vm1        –>        Host : 127.0.0.1    |   Port  : 2222
                         edureka_vm2        –>        Host : 127.0.0.1    |   Port  : 2200
                         edureka_vm3        –>        Host : 127.0.0.1    |   Port  : 2201

Step 7: Download putty (windows shh client) from here. Run the application and connect to the VMs.

putty__

Step 8: You need to enter the username and password to login into the VM. It is same for all the three VMs. Please use the below credentials:

                                         Username : vagrant    |   Password : vagrant

Step 9: You need to log in to each VM separately using putty in order to access them.

Step 10: Finally, you need to understand if this fits your requirement or not. Accordingly you will understand how to use vagrant to get maximum benefit.

Got a question for us? Please mention it in the comments section and we will get back to you.

Related Posts:

Mystery Of Devops

Devops-Redefining-your-It-Strategy

Get Started with Devops

Share on
Comments
3 Comments
  • Raghu Teja

    Hello Team,

    Firstly thanks for this valuable information. Please help me with a concern, its in regards to a Hadoop Cluster only. As per the above given example “Requirement 2”, i have set the cluster, now If I need to add a new data node or may be two, how can I do that. Is there any possible method to try automate this node addition?

  • Thax for sharing

    • EdurekaSupport

      You are welcome Prateek!
      We hope that you will find our blog useful in future as well.
      Keep visiting the Edureka Blog page for latest posts on this link:http://www.edureka.co/blog/

24 X 7 Customer Support X

  • us flag 1-800-275-9730 (Toll Free)
  • india flag +91 88808 62004