Introduction
On occasion I will need to setup a new Ubuntu virtual machine in Hyper-V, for doing development or creating new courses for Pluralsight.
It’s not something I do every day though, so I have instructions to remind me of all the steps involved, what buttons to push, and so on.
The problem is my instructions have been scattered across multiple files in a few repositories. Today I finally decided enough was enough.
The Instructions
This is kind of an unusual blog post, in that it doesn’t contain a lot of content. The instructions were rather long, and if I’d tried to do it as a blog post I’d have had to break it into multiple posts, making it difficult to follow, or have one blog post that was 3 miles long.
Instead, I’ve created a repository on my GitHub site, https://github.com/arcanecode/Setting-Up-an-Ubuntu-VM-for-Developers-in-Hyper-V. There you will find the instructions broken down into small, easily digestible parts.
Buyer Beware
I want to make it understood, this is not meant to be an in-depth tutorial. There aren’t a lot of screen shots, nor do I take time to explain “why” (at least not often).
Instead think of it like a check list. If you are familiar with both Hyper-V and Ubuntu, you should not have any problems following the instructions.
Decisions, Decisions
Many of the configuration choices I made were the result of this being in a VM. I turn off things like screen blanking, auto locking, and the like. I figure the host machine should be the one to manage these types of things.
In addition, the software I chose to install was a result of my needs. VSCode, PowerShell, Azure Data Studio, and gcc/g++ were the core tools installed.
There are too many other options out there. Python, PHP, Ruby, Java, Rust, and on and on and on. I feel these instructions will get you to the basic platform, then you can add on your specific language and other tools from there.
Into The Future
I’ll keep this updated when new versions of Ubuntu or Hyper-V are released that may invalidate the instructions.
Also, it just screams for automation. I’d like to write some PowerShell Core to run on Windows to create and configure the VM, then a shell script to run inside Ubuntu to handle as much installation and configuration as possible.
I actually have some PowerShell Core samples for generating a Hyper-V VM, I just need to assemble them into a useable script. So that may be something I tackle in the near future.
Conslusion
Well this was a rather unusual post, as most of the info is over in my GitHub repository. Please check it out, let me know what you think.
Even if you don’t have a big need for an Ubuntu VM, I’d be curious how you find the experience of most of the info being in GitHub. Was it easy to follow, well organized?
If this works out, I may do some future work where the bulk of the information is on my GitHub site, and my blog post provides a brief overview.