Install Ubuntu in VMWare Player
When someone is looking for a development or test environment where he don’t want to disturb his current setup by installing the additional software, the virtualization is the best thing, which comes in his mind. There are many virtualization platforms out there in the market like VMWare and Hyper-V etc. I use the VMWare extensively for my development environments, like PHP Development Environment or the SharePoint Development Environment.
In case you, are interested in similar sort of setup, all you need is to buy the VMWare Workstation (I personally recommend, get it from here) or use one of the many free / opensource virtualization platforms like VirtualBox. Here with this post I am demonstrating the setup of the Ubuntu (Download Ubuntu) Linux as guest OS in VMWare Player (it will be similar for the VMWare Workstation). You can follow the below video see the setup instructions.
As it is shown in the video above the installation steps are very much similar to the one which anybody will follow, while installing any OS in physical machine. The only thing which you need to learn is what should be the configuration of the Virtual Machine you are creating. There are people out there who use this kind of virtualization to even run a full fledged development environment. This helps them separate out there development environment with the general use environment, keeping there host machine neat and clean. One more benefit, as identified by many people is that you can easily migrate one environment from one machine to another machine with all its configurations.
Hope you will enjoy your virtual environment whether it is for development or testing or whatever purpose it solves for you.
Quickly Create Multiple VMs in VMWare Workstation
Recently, I got a requirement to create an environment for a proof of concept up and running very quickly. I was required to create a setup which contained around 9 VMs running Ubuntu Linux OS. As it was a setup which was not concerning about the performance of the individual machines, but to demonstrate a network infrastructure and the system connectivity layout. So, you may ask what is the problem then … go and create. But there was not a single problem:
- The problem was that to get 9 machines all together in a short period of time was difficult.
- The requirement was for a short span of time, just to demonstrate the infrastructure.
- Creating the multiple machines of same configuration is a bit time consuming task, where we were already running out of time.
the solution was to use a virtualization platform like, Hyper-V VMWare etc. We picked VMWare Workstation as the platform for the virtualization. Now if we get one machine with enough power to run the virtualization and host these many machines, we can get it all running quickly. We identified a file server with a minimal utilization of RAM and Processor and decided to use it. Though the issues standing in front of us were getting fainted, but there was another issue. the file server we identified was at its peak of the Disc Space consumption. So to host 9 VMs say size of 10GB each (Ubuntu base installation with all updated requires much lesser then that, around 6 – 7 GB and with 2 GB of RAM each), we required about 23 more GBs in the server. To free up that space we needed time to identify the unnecessary files which we didn’t had (we had already spent half day to reach to this position).
So the next thing was to somehow reduce the number of GBs required to create a VM was the only solution left. how we do that. Here comes the trickiest part in to the picture.
- Created a virtual machine with the base installation of the required OS with all patches and updates. (if you are interested in learning how to install a Ubuntu OS in VMWare you can follow this post). Here is the configuration of the base VM:
- 10GB Virtual HDD
- 2 GB RAM
- NAT Connection
- Once the VM was ready, we switched off the VM and took a snapshot of the VM.
What happens when we take the snapshot of the VM, it creates a differential file of the Virtual HDD (there are many other things it does, but we are interested only in this) leaving the original file as it is.
- In Microsoft windows there is a feature of creating the symbolic links of the files and folder. you can use this links files as you are using the original files and the modifications to the contents of the link will effect the contents of the original file.
We used hard links to create 8 more replicas of the HDD from the first base VM. Here is the command which you should execute with the administrator privileges:
mklink /h <target_file_name_with_path> <source_file_name_with_path>
- Once the copies of the HDDs were available we just need to create new VMs using these existing HDDs and take a snapshot immediately, before power up.
Note: If you forget the snapshot part of the copy, before powering up any VM for the first time you may end up wasting all of your efforts.
If you carefully, follow the above steps you will be able to run all the VMs in parallel with a single HDD (individual differential files), making it use the minimal space required on the host and wasting the time in copy paste of the VM in whole (around 7 GB).
Using this setup, we were able to fit all the VMs in about 30GB while running in place of 90GB of initial requirement. I hope this technique will be helpful some day to someone. Please leave your comments below in case you find this helpful.
Setup PHP Development Environment in Ubuntu
I have produced a video on how to Setup PHP Development Environment in Ubuntu Linux. It covers the below topics:
- Installation of Apache Web Server
- Installation of PHP
- Installation of MySQL Database Server
- Installation of Development Tools
- MySQL Workbench
- Komodo IDE
You can download the complete installation instructions here.
Please find the same video here: