We may earn an affiliate commission when you visit our partners.
Toyin Akin

"NoSQL", "Big Data", "DevOps" and "In Memory Database" technology are a hot and highly valuable skill to have – and this course will teach you how to quickly create a distributed environment for you to deploy these technologies on.

A combination of VirtualBox and Vagrant will transform your desktop machine into a virtual cluster. However this needs to be configured correctly. Simply enabling multinode within Vagrant is not good enough. It needs to be tuned. Developers and Operators within large enterprises, including investment banks, all use Vagrant to simulate Production environments.

Read more

"NoSQL", "Big Data", "DevOps" and "In Memory Database" technology are a hot and highly valuable skill to have – and this course will teach you how to quickly create a distributed environment for you to deploy these technologies on.

A combination of VirtualBox and Vagrant will transform your desktop machine into a virtual cluster. However this needs to be configured correctly. Simply enabling multinode within Vagrant is not good enough. It needs to be tuned. Developers and Operators within large enterprises, including investment banks, all use Vagrant to simulate Production environments.

After all, if you are developing against or operating a distributed environment, it needs to be tested. Tested in terms of code deployed and the deployment code itself.

You'll learn the same techniques these enterprise guys use on your own Microsoft Windows computer/laptop.

Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.

This course will use VirtualBox to carve out your virtual environment. However the same skills learned with Vagrant can be used to provision virtual machines on VMware, AWS, or any other provider.

If you are a developer, this course will help you will isolate dependencies and their configuration within a single disposable, consistent environment, without sacrificing any of the tools you are used to working with (editors, browsers, debuggers, etc.). Once you or someone else creates a single Vagrantfile, you just need to vagrant up and everything is installed and configured for you to work. Other members of your team create their development environments from the same configuration. Say goodbye to "works on my machine" bugs.

If you are an operations engineer, this course will help you build a disposable environment and consistent workflow for developing and testing infrastructure management scripts. You can quickly test your deployment scripts and more using local virtualization such as VirtualBox or VMware. (VirtualBox for this course). Ditch your custom scripts to recycle EC2 instances, stop juggling SSH prompts to various machines, and start using Vagrant to bring sanity to your life.

If you are a designer, this course will help you with distributed installation of software in order for you to focus on doing what you do best: design. Once a developer configures Vagrant, you do not need to worry about how to get that software running ever again. No more bothering other developers to help you fix your environment so you can test designs. Just check out the code, vagrant up, and start designing.

Enroll now

What's inside

Learning objectives

  • Simply run a single command on your desktop, go for a coffee, and come back with a running distributed environment for cluster deployment
  • Quickly build an environment where any nosql, imdb or bigdata software can be installed
  • Ability to automate the installation of software across multiple virtual machines

Syllabus

INTRODUCTION

A quick summary of the tooling that you will need to use. Also a short recap as to some of the experiences I went through, in the enterprise world, when this tooling was not considered.

Read more

Possible course curriculums to follow ...

I show you some real enterprise hardware. This is the sort of hardware that we are trying to simulate within Vagrant. Here I show you my HP C7000 blade infrastructure. Blades and switches

CLUSTER TOOLS

Here I show you where you can acquire and download the free tooling needed to carve up your desktop / laptop machine

Here you start to build out your first Virtual machine. You start from a blank Vagrantfile file! You will manually add entries to this file one concept at a time. You will truly know what every concept means by the time you finish the course.

You have the choice of using the RESOURCES.zip file. Simply unzip and work in this new directory, or create an empty directory somewhere on your system and work from there.

IMPORTANT : Pinning the version of an imported vagrant box in order to prevent using future vagrant boxes which may be broken!

You will start up your first Virtual machine. You will make sense of the output from both VirtualBox as well as Vagrant.

Here you will practice controlling the newly created Virtual machine. Now that you can build this Virtual machine from scratch, you can now launch and terminate this virtual machine at will. If you make a mistake with the vagrant commands, don't panic. You know how to recreate and relaunch.

CONFIGURE VIRTUAL MACHINE - PART I

Technically the course can end here! But you need to carve out and configure a multi-node environment in order to deploy a cluster, The rest of the course concentrates on this.

Here you convert your initial Vagrant script to use variables. It's best not to use hard coded values within the main body of the Vagrantfile.

Here I show you the option of detaching the Linux Centos console window into it's own console window.

This is for those who like to have that "putty" like experience in order to have multiple Linux sessions opened.

Here you will change the underlying Linux operating system. You will configure the script in order to use the Graphical User Interface version of Centos Linux. Potentially an alternative to Windows.

You will now have the choice of using the lightweight console only version of Centos or the heavyweight GUI version.

The concept taught here is that it is very easy to select and switch to any operating system that has been built for Vagrant.

You will need to provide a friendly name to your Virtual machines as multiple Virtual machines are launched and listed within VirtualBox. This gives you the ability to control the Virtual machines from VirtualBox if Vagrant is not responding to your commands to control your nodes.

As an example, a corrupted script.

Switching vagrant box if you find a prebuilt, atlas, hosted box has issues ...

Just as you provide your Microsoft Windows machine a name/hostname, so too you must provide your Linux operating system a hostname. Especially in a multiple Virtual machine environment. The changes here gives you the ability to control the hostname across multiple Virtual machines.

Your Virtual machines require correctly configured IP addresses to communicate among themselves. For Datacenter type servers we rely on static IP addresses, not dynamically allocated ones. Here we script this by controlling the IP addresses among all the Virtual machines.

CONFIGURE VIRTUAL MACHINE - PART II

In any cluster you build, you will have Management nodes, Worker nodes, Proxy Nodes etc ...

Each node will require it's own memory settings. Here you will extend the script so that no matter the number of Virtual machines configured, you can easily drill into one Virtual machine and configure the exact amount of memory that is required.

In any cluster you build, you will have Management nodes, Compute nodes, Proxy Nodes etc ...

Compute nodes will require more CPU than Proxy nodes.

Each node will require it's own CPU settings. Here you will extend the script so that no matter the number of Virtual machines configured, you can easily drill into one Virtual machine and configure the exact amount of CPU that is required.

Here I explain why centralizing your software resources in one location within your organization is a benefit.

If you are installing software within Production where portions of the binaries are housed on some external repository on the internet not controlled by you, then you are asking for trouble.

The remote site may be down for maintenance. Better to download and centralize your resources

Here, you will actually step through, configuring a centralized location (outside of the vagrant folder) for software. You will also test to make sure that the Virtual machine has access to the configured location.

MULTINODE CLUSTER

PART I

Your script is now multi-node capable.

To add a new managed Virtual machine to your cluster, add a single line of code to your script

To add five new managed Virtual machines to your cluster, add five lines of code to your script!

Each line configures the Virtual machine' s - hostname, IP address, CPU, Memory and operating system


PART II

Your script is now multi-node capable.

To add a new managed Virtual machine to your cluster, add a single line of code to your script

To add five new managed Virtual machines to your cluster, add five lines of code to your script!

Each line configures the Virtual machine' s - hostname, IP address, CPU, Memory and operating system

Even though all the Virtual machines have their own hostname configured. The Virtual machines are not able to ping each other via the hostname (they certainly can via the IP addresses) of any of the other hosts. We will look at the reasons why and fix this in the next lesson

Here you will configure an addin to Vagrant that will help you manage the host files within not only our Centos Virtual machines, but also our Microsoft Windows host.

DISTRIBUTED SOFTWARE DEPLOY

You will configure your project in order to install software across your Virtual machines.

You will download java as well as utilize the script provided for you. (RESOURCES.zip).

You will manually setup and execute the software installation script within one of your Virtual machine to ensure it works. In the next lesson, you will integrate the installation script into your Vagrant file.

Here you will configure your Vagrant file to run the installation script across ALL your Virtual machines.


At last! You made it. Congratulations.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Uses VirtualBox to create a virtual environment, but the skills learned are transferable to VMware, AWS, or other providers, offering flexibility in deployment environments
Automates software installation across multiple virtual machines, streamlining the deployment process for distributed applications and saving time
Emphasizes the importance of pinning Vagrant box versions to prevent issues caused by potentially broken future updates, promoting stability
Requires downloading and centralizing software resources, which may require additional storage and network configurations
Focuses on configuring a multi-node environment, which is essential for deploying clusters, but may be overwhelming for beginners without prior experience
Teaches how to configure static IP addresses for virtual machines, which is crucial for datacenter-type servers but may not be relevant for all use cases

Save this course

Save Real World Vagrant For Distributed Computing to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Real World Vagrant For Distributed Computing with these activities:
Review Virtualization Concepts
Strengthen your understanding of virtualization concepts to better grasp how Vagrant and VirtualBox work together to create virtual environments.
Browse courses on Virtualization
Show steps
  • Read articles or watch videos explaining virtualization.
  • Compare different virtualization technologies like VMware and VirtualBox.
  • Define key terms like hypervisor, guest OS, and host OS.
Review: 'Linux Bible'
Improve your understanding of the Linux operating system, which is commonly used within Vagrant virtual machines.
View Linux Bible on Amazon
Show steps
  • Read the chapters on basic Linux commands and file system navigation.
  • Practice using the command-line tools described in the book.
  • Explore the sections on system administration and networking.
Review: 'Vagrant Cookbook'
Gain practical knowledge of Vagrant configurations and best practices by studying real-world examples and solutions.
View Vagrant Cookbook on Amazon
Show steps
  • Read through the recipes related to multi-machine setups.
  • Experiment with different provisioning techniques described in the book.
  • Try to implement some of the recipes in your own Vagrant environment.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Automate Software Installation with Shell Scripting
Enhance your automation skills by practicing shell scripting to automate software installation within your Vagrant environments.
Show steps
  • Write a shell script to install a specific software package.
  • Integrate the script into your Vagrantfile using a provisioner.
  • Test the script by running 'vagrant provision'.
  • Refactor the script to handle different operating systems.
Document Your Vagrant Setup
Solidify your understanding by documenting your Vagrant configuration, explaining the purpose of each setting and how it contributes to the overall environment.
Show steps
  • Create a README file for your Vagrant project.
  • Explain the purpose of each Vagrantfile setting.
  • Describe the networking configuration and how nodes communicate.
  • Include instructions on how to set up and run the environment.
Build a Multi-Node Web Server Cluster
Apply your knowledge by creating a practical, multi-node web server cluster using Vagrant, simulating a real-world distributed system.
Show steps
  • Define the roles for each node (e.g., web server, database server, load balancer).
  • Configure each node's Vagrantfile with appropriate resources and networking.
  • Automate the installation of web server software (e.g., Apache, Nginx) using provisioning scripts.
  • Deploy a simple web application across the cluster.
Contribute to a Vagrant Plugin
Deepen your expertise by contributing to an open-source Vagrant plugin, gaining experience with real-world development and collaboration.
Show steps
  • Find a Vagrant plugin project on GitHub.
  • Identify an issue or feature to work on.
  • Fork the repository and create a branch for your changes.
  • Implement the changes and submit a pull request.

Career center

Learners who complete Real World Vagrant For Distributed Computing will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Real World Vagrant For Distributed Computing.
The 'Vagrant Cookbook' provides practical solutions and recipes for common Vagrant tasks. It covers topics such as provisioning, networking, and multi-machine environments. is particularly useful for understanding advanced Vagrant configurations and troubleshooting issues. It serves as a valuable reference for developers and operations engineers using Vagrant in real-world scenarios, adding depth to the course material.
The 'Linux Bible' provides a comprehensive overview of the Linux operating system, including command-line tools, system administration, and networking. is helpful for those who are new to Linux or need a refresher on Linux fundamentals. It can be used to better understand the underlying operating system used in Vagrant virtual machines. While not directly about Vagrant, it provides essential background knowledge.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser