Building a Cloud Workspace On-Premise

Photo by NASA on Unsplash

Building a Cloud Workspace On-Premise

As the tech landscape evolves, there is an increasing demand for robust, scalable, and efficient cloud solutions to manage workloads. Establishing an on-premises cloud workspace can provide your team with a reliable and customizable platform to collaborate and perform tasks seamlessly.

This blog post will guide you through a simple step-by-step process to build a cloud workspace on-premises using OpenNebula with KVM. We will also cover creating VMs with Ubuntu and setting up VSCode with remote SSH.

Step-by-Step Guide to Creating Your Cloud Workspace

Step 1: Setting Up OpenNebula with KVM

OpenNebula is an open-source solution to build and manage enterprise clouds. It combines existing virtualization technologies like KVM with advanced features for multi-tenancy, automatic provision, and elasticity.

1.1: Install OpenNebula

The first step in setting up your cloud is to install OpenNebula on your host machine. To do this, you can follow the instructions provided in the official OpenNebula documentation:

  1. Go to the OpenNebula website and click on 'Download.’

  2. Select the appropriate version for your system and download the installation package.

  3. Run the installation package and follow the prompts to complete the installation.

1.2: Configure KVM

Next, you must configure KVM (Kernel-based Virtual Machine) on your host. KVM allows the host machine to run multiple isolated virtual environments, or 'guests'. To install KVM on your Ubuntu host, you can follow the instructions provided in this Ubuntu documentation:

  1. Open a terminal window.

  2. Type the following command and press Enter: sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

  3. After the installation is complete, type the following command and press Enter: sudo systemctl is-active libvirtd

If the output is 'active', KVM is installed and running on your host.

1.3: Link OpenNebula and KVM

Lastly, you need to link OpenNebula with KVM. OpenNebula provides detailed instructions on how to do this in their documentation:

  1. Go to the OpenNebula documentation and navigate to the 'OpenNebula Installation' section.

  2. Follow the instructions provided to install OpenNebula on your host machine.

  3. Once OpenNebula is installed, navigate to the 'KVM Host Configuration' section and follow the instructions to configure KVM.

  4. Finally, navigate to the 'Adding a KVM Host' section and follow the instructions to link OpenNebula with KVM.

And that's it!

You've successfully set up OpenNebula with KVM on your host machine.

Step 2: Setting Up VMs with Ubuntu

After setting up OpenNebula with KVM, it's time to configure your virtual machines (VMs) with Ubuntu.

2.1 Create VM Template

To create a new VM template in OpenNebula, specify the CPU, memory, and storage capacity required for the VM.

2.2 Add Ubuntu ISO

Next, add an Ubuntu ISO to the template. This ISO will serve as the installation source for the Ubuntu operating system on virtual machines (VMs).

2.3 Instantiate VMs

Finally, instantiate the virtual machines (VMs) using the created template. These VMs will run Ubuntu and can be accessed and managed through OpenNebula.

Step 3: Setting Up VSCode with Remote SSH

VSCode, also known as Visual Studio Code, is a popular open-source code editor developed by Microsoft. One of its great features is its ability to connect to remote servers using SSH, which allows you to develop directly on your Ubuntu VMs.

3.1 Install VSCode on Your Local Machine

Download and install VSCode on your local machine. You can download it from the official VS Code website.

3.2 Install the Remote Development Extension Pack

Inside VSCode, go to the Extensions view (you can use the shortcut Ctrl+Shift+X), search for 'Remote Development', and install it. This extension pack includes three extensions, one of which is Remote(SSH).

3.3 Connect to Your Ubuntu VM

Open the command palette (F1 or Ctrl+Shift+P), select 'Remote-SSH: Connect to Host...', and enter the SSH connection command for your Ubuntu VM (something like username@vm-ip-address). VSCode will then connect to your VM, where you can open folders, edit files, and run commands as if you were there locally.

And voila! You have successfully set up a cloud workspace on-premise for your team.

Remember that this setup can be scaled up or down depending on your team's needs, and the components (OpenNebula, KVM, Ubuntu, and VSCode) can be replaced or supplemented as per your preferences. The most important thing is to create an environment where your team can work effectively and efficiently.

Advantages of Using a Cloud Workspace

Cloud workspaces offer numerous benefits that can significantly improve the efficiency and productivity of your team.


The most significant advantage of a cloud workspace is its accessibility. Your team can access their work environment from anywhere and at any time, as long as they have an internet connection. This flexibility can greatly improve productivity and work-life balance.


Cloud workspaces are incredibly scalable. You can easily add more resources as your team grows or your projects increase in complexity. This scalability allows you to pay only for what you use, making it a cost-effective solution.


Cloud workspaces also facilitate better collaboration among team members. They can work on the same projects in real-time, which improves communication and speeds up project completion times.


Cloud workspaces can provide robust security measures, including data encryption and two-factor authentication, reducing the risk of data breaches. Furthermore, since the data is stored in the cloud, it is protected from local hardware failures.

Limitations of Cloud Workspaces

Although cloud workspaces have many benefits, they also come with some limitations.

Mobile Application Development

One area for improvement in the cloud workspace setup described is the difficulty in handling mobile application development. Emulating mobile devices or testing mobile-specific features can be challenging. You might need to use additional tools or services, or even physical devices, to develop and test mobile applications effectively.

Internet Dependency

Cloud workspaces are entirely dependent on the internet. If your internet connection is unstable or slow, it can significantly impact your team's productivity.

Security Concerns

While cloud workspace providers take extensive measures to ensure the security of your data, every system is completely foolproof. The possibility of data breaches, while minimal, exists.

Despite these limitations, the advantages of cloud workspaces make them an excellent choice for many teams. By being aware of these potential challenges, you can take steps to mitigate them and ensure that your cloud workspace serves your team as effectively as possible.

How GeekyAnts Can Help Build Your Cloud Workspace

Setting up a cloud workspace may seem challenging, but with GeekyAnts on your side, you can rest assured that you're in good hands.

Cloud workspaces are an integral part of our expertise at GeekyAnts. Our team of professionals can assist you in designing a solution that is tailored to your team's specific requirements. We can guide you through setting up OpenNebula with KVM, creating VMs with Ubuntu, and configuring VSCode with remote SSH.

Whether you're a small team just starting or a large enterprise looking to optimize your operations, GeekyAnts can provide the support you need to create an efficient, scalable, and secure cloud workspace.

Get in touch with us today to discover how we can help you build the ideal cloud workspace for your development team.

This article is written by Kumar Pratik (MD, GeekyAnts)