• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
sharadchhetri.com

sharadchhetri.com

Linux,Cloud Computing And DevOps

  • Home
  • Linux
  • CloudComputing
    • Introduction Cloud Computing
    • Amazon AWS
  • Free E-Books
  • About Me

Create single node Virtual Machine with Vagrant

May 30, 2020 by Sharad Chhetri Leave a Comment

In this post we will show how to create a single node Virtual Machine with Vagrant. As we know in our previous post we written about How to install Vagrant on Ubuntu and create first VM.
We use Vagrant in our environment for doing lots of testing, POC(Proof Of Concept) and do some pre-work check before it goes to real Dev Environment. When we started there were less Vagrant Providers(including VirtualBox) , now currently it supports various providers like Cloud,containers,HyperV etc.

In Vagrant the main hero is Vagrantfile, from this you manage your Vagrant ecosystem in your machine. You can create Single VM or Multi VM setup with Vagrant. In this post, we are covering Single node VM creation with Vagrant.

Steps to create Single Virtual Machine with Vagrant

In this example, we will show basic config which we often use and will give basic insight so that you can play with some more Vagrantfile config by yourself.

Step 1::Open the terminal in your system because we will use command line here.

Step 2: Create directory where you will keep the Vagrantfile.

mkdir -p ~/vagrant_boxes/Single_VM/poc_box

Step 3: Change to newly created directory

cd ~/vagrant_boxes/Single_VM/poc_box

Step 4: Create a file called ‘Vagrantfile’ and paste the given below contents in it. Important to note, Vagrant is written in Ruby language.

We use the ‘vi’ editor because we love it. You can use other file editor of your choice like ‘nano’,’gedit’,’atom’,’sublime’.’vscode’ etc. there is N numbers of options available.

vi Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|

    # In 'config' block, set variable 'vb' where defining desired Vagrant Provider and VM specs.
    config.vm.provider "virtualbox" do |vb|
      vb.name = "webserver01"
      vb.memory = 1024
      vb.cpus = 2
    end
 
    #now using main 'config' block, defining OS,Hostname and Virtual Box network type.
    config.vm.box = "centos/8"
    config.vm.hostname = "webserver01"
    config.vm.network "private_network", ip: "192.168.33.10"

end

Step 5: Run the command to create single node Virtual Machine in VirtualBox. You can see the execution in your terminal.

vagrant up

Once it is completed, open Virtual Box in your system.You will find your Single VM created with Vagrant.

In given below screenshot, you can see the highlighted changes.
single vm vagrant

Explanation

Note: You can give any other name to Variable but you have to use that particular Variable name for calling in code.

Vagrant.configure("2") do |config| :
The “2” represents the configuration for 1.1+ leading up to 2.0.x. And ‘config’ is the variable.

config.vm.provider "virtualbox" do |vb| :
Calling ‘config’ variable and defining VM provider ‘virtualbox’. For this block, the variable called ‘vb’ is set.
Inside the ‘vb’ block, rest are self explanatory. Here, we are setting Memory and CPU for the Virtual Machine. The memory default value is taken in MB hence 1024 means 1024 MB.

Now the ‘vb’ variable code block is END and then again we started using ‘config’ variable. To define vagrant box, hostname and VirtualBox network type we are ‘config’ variable again.

config.vm.box = "centos/8" this refers the Vagrant Box. Vagrant Cloud is the platform to find number of Vagrant boxes. Get the exact box name and use it in your Vagrantfile configuration.

Reference: Do you want to know more Vagrantfile configurations? Here is the Vagrant Official Documentation.

Do'nt be greedy, share the knowledge!

  • Click to share on Facebook (Opens in new window)
  • Click to share on WhatsApp (Opens in new window)
  • Click to share on Twitter (Opens in new window)
  • Click to share on Pinterest (Opens in new window)
  • Click to share on Reddit (Opens in new window)
  • Click to share on Pocket (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)

Related

Filed Under: Devops, Linux Tagged With: devops, vagrant

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

Follow Us

  • Facebook
  • Twitter
  • GitHub
  • YouTube

Recent Posts

  • Activate.ps1 cannot be loaded because running scripts is disabled on this system
  • How to install Java (OpenJDK) on Ubuntu Linux
  • How to install Groovy on Ubuntu 20.04 LTS
  • How to Disable selinux in Red Hat or CentOS
  • How to remove date from WordPress Post URL

Top Posts & Pages

  • How to delete mail queue in Postfix
  • How to fix read only USB pen drive in Ubuntu
  • How to start / stop / restart / reload iptables on CentOS 7 / RHEL 7
  • 4 different commands to check the load average in linux
  • How to set hostname and FQDN on CentOS 7 and RHEL 7
  • How to find absolute path of command on Linux / Unix : which command
  • How to create Jenkins user by command line and GUI
  • How to print particular line number by using sed command
  • How to setup Jenkins Credentials for Git repo access
  • make command not found in linux CentOS Red Hat ubuntu Debian

DevOps Posts

  • vagrant cloud flow

    Install Vagrant on Ubuntu and create first VM

  • git jenkins credential github

    How to setup Jenkins Credentials for Git repo access

  • terraform

    how to install terraform in Linux : CentOS-Ubuntu

  • docker image

    How to create Ubuntu docker base image

  • Install Ansible on Ubuntu / CentOS / RHEL

Footer

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Sharad Chhetri is an experienced Linux - Cloud Engineer & freelancer. Working on Open Source Technology since RHEL 4.0 (Red Hat Enterprise Linux). He loves sharing the knowledge which earned from real scenarios. Don't be surprised if you find him in technology seminars and meetup groups. You can contact him on email for freelance projects at admin@sharadchhetri.com. Read More…

Tags

Amazon AWS apache automation awk bash script CentOS centos 7 debian devops docker freebsd ftp ghost git grep hostname jenkins kvm linux linux command linux commands MariaDB Server mysql Nagios nginx Octopress owncloud Owncloud 6 php postfix postgres python Red Hat rpm sed selinux ssh swap ubuntu user management vagrant varnish virtualbox vsftp wordpress

Recent Comments

  • Sharad Chhetri on How to fix read only USB pen drive in Ubuntu
  • iain mckeand on How to fix read only USB pen drive in Ubuntu
  • Sharad Chhetri on Secondary Logging : save all users history command output as log
  • Sharad Chhetri on How to fix read only USB pen drive in Ubuntu
  • er on What is /dev/shm and how to mount /dev/shm
  • Bala on Send nagios report as pdf file via email
  • Terry on How to fix read only USB pen drive in Ubuntu
  • Terry on How to fix read only USB pen drive in Ubuntu

Copyright © 2009 - 2022 · All Rights Reserved sharadchhetri.com · · Privacy Policy ·
· sitemap.xml · ·The content is copyrighted to sharadchhetri.com and may not be reproduced on other websites without our permission. ·

Copyright © 2022 Ā· Genesis Sample on Genesis Framework Ā· WordPress Ā· Log in

 

Loading Comments...