Back in college, I had a workstation I named Beast. I named it for the furry genius mutant in the X-men. It was the first multi-processor machine I ever built. By today’s standard, I’m sure my iPhone has more processing power. But, for those days it was an absolute beast! This was also the first machine I completely repainted. I sanded it down to the bare metal, put on three coats of metallic royal blue, and then topped it all with two clear coats to protect the finish.
Too many years later to count, I finally have a new Beast. I didn’t build it this time I went with a Dell Precision 7920 Tower. Two Xeon 4116s, 48 cores, 128 GB RAM, 4 – 2TB SSDs. And coming soon: 4-1TB m.2s, for some real IO power! Best of all, I got it for half-off!
So why all this power? Well, I want to bring together all my projects onto one server, rather than running a half a dozen older machines. To do that, I’d rely on a lot of virtualization, and later on some containerization.
Some of that virtualization was going to cover a Mac client or two, so officially, Hyper-V and VMWare on Windows as out for an operating system. Later, when I introduce containers, I found that Windows and containers are tricky, and it turns out they’re easier to deal with from Linux. More on that later.
The OS Install
Once I made the call to go Linux, I looked into what flavors Microsoft favored, since I’m still planning on staying a Microsoft data professional. I found Red Hat, Oracle Linux, Ubuntu, SUSE, CentOS, Debian, and CoreOS. Of those, I felt most familiar with Ubuntu. I’d used it as my primary OS just after finishing my degree. The first big decision was adopting 18.04, the current long term support (LTS) version, or go with 19.10 to get more new and shiny features.
After reading the reviews, many were calling 19.10 the best version of Ubuntu ever. So, I went with the shiny!
Install was a breeze. Download the image onto a USB stick, make it bootable, stick it in the target machine and let it go!
It really is that easy.
I did end up tweaking my install a bit. I ended up going with the minimal install and then installing extra software packages as I needed them. I also mounted a couple of Azure File Storage shares as network drives so I could do offsite backups easily. I also used this chance to re-familiarize myself with bash scripting. That’s something that’s going to be important in later blog entries, especially around Docker.
Moving to Linux as your primary OS will seem scary at first. Especially when you try to google for Linux versions of your favorite Windows applications. Ubuntu tries to help with its Ubuntu Software app.
That being said, I would like to share some apps I’ve discovered in my transition.
Franz — Merge all your communications apps into one app. Yes, I know technically it’s just an HTML 5 wrapper for the web versions of your favorite messaging apps, but come on, Look at this thing.
Twitter, Slack, Teams, skype and even more are all here! Plus, you can add Outlook from your 365 account(s). So it is also an email client. Oh, and by the way, since Microsoft has only released Teams for Linux, the only way I’ve found so far to use Word, Excel, and PowerPoint in Linux is through an HTML5 wrapper like Franz.
insync — No, not the boy band. This tool lets you sync a local folder with your OneDrive or Google drive. To me, my shared user folder has lived on OneDrive for years. With this tool, all my machines (Windows or Linux) have access to my shared user folder!
But my two most-used development tools do not have a Linux version… yet. That means for my Visual Studio or SSMS needs, I still have to have a Windows VM. And before I get calls to use Visual Studio Code, I finally understand my frustration with it. It’s not an Integrated Development Environment. Yes, you can add on debuggers, and language support for nearly any language you can imagine…but it’s not Visual Studio. It’s just a glorified text editor.
And for now, I’d prefer a port of Notepad++ for Linux than Visual Studio Code. But it’s growing on me…slowly.
And the last piece of software I need to install in Linux to get going with all my projects is VMWare Workstation Pro. And it has a native Linux version. Not only that, but there are guides to spinning up Mac guests in VMWare. So there is that neat feature!
I was able to get my workstation up, running and customized in less than an hour. A large part of that is the fact that command line installs are built into Ubuntu through “apt install”, in Windows I always have to install Chocolatey to get that same functionality! I’ve also saved a script, just in case I need to spin up another Linux workstation quickly.
Next time, I’m diving into how to spin up a primary domain controller on VMWare and configure it to communicate with Azure Active Directory so you get all the best features of on-premise and cloud-based identity management. I’ll also share the solution for one of the biggest bugs in any AAD implementation project!
In the meantime, if you have any questions, send them in! You can hit me up on twitter @shannonlowder.