Getting started with cloud native toolchains is often a PITA for engineers new to ansible, terraform, or kubernetes. This is most often, due to differences in workstation operating systems, corresponding package managers, and each engineer’s experience.

This post is meant to be a walk through type guide to getting your workstation set up, to allow for comfortable development. It has a slight lean towards Windows administrators, as windows is typically the most difficult to set up with cloud native toolchains.

I’ll post a list of sofware to install, along with a bit of commentary based on my experience with each.

Installation List

1. Package manager.

We need software to go get the softwares.

Windows: Install chocolatey Chocolatey is like brew or apt-get for windows. It’s the best, and will make your life much, much easier.

OSX: Install homebrew

2. Git.

Everything is software now. Those scripts you write, be they powershell or bash, you are a maintainer of those scripts. Being a maintainer, means you should use version control. Every script, ansible playbook, terraform module, or Dockerfile you write should go in git, so get it installed. If you don’t have an internal git server to store your code., just make an account on github they offer free private repos.

Windows:

choco install git.install --params "/GitAndUnixToolsOnPath /NoGitLfs /SChannel /NoAutoCrlf"

There’s some minor additions here, to help deal with windows/unix interoperability - mostly to do with line endings.

OSX:

brew install git

Linux:

# ubuntu
apt-get install -y git
# centos/rh/fedora
yum install -y git

3. Docker

Docker is becoming critical for the sysadmin or engineers day to day life. You don’t need to be an expert to see benefits. We’re going to install it so that vscode environments can be spun up and shared.

Windows: install here

Read the docs carefully. In my most recent Windows experience, we had lots of trouble with installation. These troubles were resolved mostly by two things.

  1. Enabling virtualization
  2. Running as administrator - adding the current user to the docker group.

OSX: install here

Things are pretty straightforward on osx.

Linux: install here

Ubuntu install attached, be careful just running apt-get - make sure you’re getting docker-ce from the proper apt repo as shown in the docs.

Confirm your docker daemon is running and you have a happy whale icon before moving on!

4. Visual Studio Code

Windows:

choco install vscode

OSX:

brew install --cask visual-studio-code

Ahh yes, theh editor battles. If you’ve been around on the internets long enough, you’ve heard some form of vim vs emacs, or sublime vs atom vs vscode. To sum up from my experience, you should have some level of basic comfort in vim, but your day to day should without a doubt be vscode.

I have two reasons for this.

Rich plugin system

They have plugins for everything. Autocomplete for any language you’ll work with, as well as most tooling.

See my list of plugins here

Devcontainers

Install this plugin. That’s it.

Devcontainers allow users to isolate dev environments, and provide a consistent experience for all users regardless of location or platform.

If you’re on windows, confirm your version of WSL and make sure to read the extra notes.

Try it out.

Clone my example repository.

git clone https://github.com/RedEight/getting-started-example

You can always open your workspace in a remote container. Open the cloned folder. File -> Open Folder, then open it in a container - Ctrl + Shift + P (Command pallete) then search Remote Containers.

Open in a container

Open a terminal in vscode! Ctrl + Shift +P search terminal.

open terminal

Now you can do your work, tools pre-installed!

vscode terminal