Creating Custom Vagrant Boxes for Integration Testing

For some things, a docker container will not work. For example, I am working on a Python project to automate the deployment and configuration of VMs and bare-metal boxes. It involves installing packages and configuring the OS and to properly test it requires a full fledged VM and not just a container.

Use packer to define the box you want to build

Install packer. The description straight from apt show packer is “HashiCorp Packer – A tool for creating identical Continue reading “Creating Custom Vagrant Boxes for Integration Testing”

Using Environment Variables in a Vagrant File

An easy way to parameterize a Vagrant file is to use environment variables. You simply need to export a variable and then refer to it in the Vagrant file with the following syntax.

Export the variable:

export SSH_PORT=22222

Sample Vagrant file that reads the exported variable

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "debian/bullseye64"
  config.vm.box_version = "11.20221219.1"

  config.vm.network "forwarded_port", guest: 22, host: ENV['SSH_PORT']
end
Continue reading “Using Environment Variables in a Vagrant File”

Declaring, Exporting, and Reading Dynamic Variables in Bash

If you want to dynamically define and export variable names in Bash here is the TLDR;

# Define the name of the variable
key="my-dynamic-var-name"

# Declare it and export it
declare -gx "$key"="some-value"

To then access that value via a dynamically generated variable name

# Create a variable that contains the variable name
var_to_access="my-dynamic-var-name"

# Read the value
my_var_value=${!var_to_access}

Read the man page for declare for more details and read this article for a really good explanation and further examples.→ Continue reading “Declaring, Exporting, and Reading Dynamic Variables in Bash”

Chickpea and Rice Stew

Ingredients

  • 1.5 cups basmati rice
  • 1 TB olive oil
  • 1/4 cup olive oil
  • 1 cup yellow onion, diced
  • 2 (14 oz) cans chickpeas, drained
  • Salt & black pepper, to taste
  • 3 garlic cloves, minced
  • 1 tsp ground turmeric
  • 1/2 tsp crushed red pepper flakes
  • 1 lemon, juiced and zested
  • 1 (32 oz) box low sodium vegetable broth
  • 4 oz fresh baby spinach
  • 1/2 cup cilantro, chopped
  • 1/2 cup parsley, chopped
  • 1/4 cup dill, chopped
  • 1 TB chives, chopped
  • 4 Naan
Continue reading “Chickpea and Rice Stew”

Bean and Barley Leek Soup

Make 3 cups of cooked barley ahead of time and have it on hand when cooking the soup.

Ingredients

  • 2 Tablespoons olive oil
  • 3 cloves garlic, minced
  • 2 leeks, diced
  • 3 carrots, diced
  • 1 bulb fennel, sliced thin (1 cup)
  • 1 (15 ounce) can no-salt added diced tomatoes
  • 1 teaspoon Herbes de Provence
  • 4 cups low-sodium vegetable broth
  • 2 (15 ounce) cans white beans,rinsed and drained
  • 1/2 teaspoon kosher salt
  • 1/4 teaspoon black pepper
  • 1 teaspoon lemon zest
  • 4 ounces
Continue reading “Bean and Barley Leek Soup”