Image for post
Image for post
Photo by Rumman Amin on Unsplash

Vermin is a smart, simple, and powerful command-line tool for Linux, Windows, and macOS.

It’s designed for developers/tester and others working in IT professionals who want a fresh VM environment with a single command. It uses VirtualBox to run the VM.

Vermin is simple to run if you are aware of modern CLI tools like docker, kubectl and other cloud-native things, then you will find vermin more familiar.

Starting from version v0.94.0 vermin works smoothly with Vagrant Boxes from Vagrant Cloud.

So, You can consider it as a modern CLI for Vagrant Boxes.

Vermin, in fact, provides some features that make it somewhat easier to work with, especially its ability to capture changes without reloading the VM. …


Image for post
Image for post
Photo by Michael Dziedzic on Unsplash

Vermin is a smart, simple, and powerful command-line tool for Linux, Windows, and macOS. It’s designed for developers/tester and others working in IT who want a fresh VM environment with a single command. It uses VirtualBox to run the VM.

Vermin allows you to build your own images based on images already available at vermin images repository.

But what if you want to have full control over the images used by vermin, or you want to build your own image that does not exist in vermin.

In this post, we are going to take step by step tutorial and see how to create your own VM image and use it to create VMs from using vermin. …


Image for post
Image for post
Photo by Marc-Olivier Paquin on Unsplash

In this post, we will use vermin to install Elastic Logstash.

We will use vermin as it is a simple virtual machine program that uses Virtualbox as the underlying hypervisor.

To follow this tutorial, you will have to install vermin.

First, you need to install Virtualbox, then for Linux and macOS, in a terminal window:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mhewedy/vermin/master/install.sh)"

And for Windows, Open a PowerShell terminal as an administrator then use:

iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/mhewedy/vermin/master/install.ps1'))

We need the installation script (logstash.sh):

# install Java runtime:
sudo apt-get install default-jre -y
# install logstash:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https -y
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list …

Image for post
Image for post
Photo by Antonio Grosz on Unsplash

In this post, we will see an example of using Logstash to read input from a file and write to stdout and apply two filter plugins, the Grok and Geoip.

This video will show the steps: (No Audio, just illustration)

Here we will illustrate what we have done in the video above:

We need to have a configuration file, in my case I put in: /etc/logstash/conf.d/grok_geoip.conf then started Logstash using: logstash -f /etc/logstash/conf.d/grok_geoip.conf

Here’s the conf

input {
file {
path => "/home/vermin/input.txt"
}
}
filter {
grok {
match => { "message" => "%{WORD:name} %{IP:ip} %{TIMESTAMP_ISO8601:date}" }
remove_field => [ "message", "path", "@version", "host" ]
}
geoip {
source => "ip"
}…

Actually, I don’t think this is working, as I got some error:

fatal: [node1]: FAILED! => {“msg”: “The task includes an option with an undefined variable. The error was: ‘kubernetes_join_command’ is ….

In a previous post, we see how to install Kubernetes using shell scripts using vermin.

Today, we will see how to use Ansible to install Kubernetes on 3 nodes.

Three machines

First, we will need 3 machines, 1 master and 2 workers:

$ vermin create ubuntu/focal --cpus 2 --mem 2048
$ vermin create ubuntu/focal --cpus 1 --mem 2048
$ vermin create ubuntu/focal --cpus 1 --mem 2048

Note, the master node needs at least 2…


Image for post
Image for post
Photo by Henry Be on Unsplash

I wanted to test running Server-Sent Event behind an http2 server exposed to the browser.

I wrote a simple HTTP service in Golang using HTTP 1.1 and then played with k3s Kubernetes cluster to deploy the service along with an Nginx as a reverse proxy to the Golang HTTP 1.1 service.

The Nginx will expose HTTP 2.0 and forward requests to the Golang service on HTTP 1.1.

We will explore the Golang service, then explore the Kubernetes YAML objects that enable us to achieve our goal, in the end, we will discuss the statefulness of the SSE and how to achieve the desired statelessness. …


Image for post
Image for post

In this post, I will share my own experience on How I prepared and managed to pass the Certified Kubernetes Application Developer. and Will show What it takes to pass the exam from my own point of view.

I got a %94 score, although I thought I won’t make it from the first try 😀

I will divide the post into 3 sections:

  1. How did I prepare
  2. Tips and Tricks for the exam
  3. My thoughts on the exam

First, I want to thank my mentor Rashad Saif who always guided and inspired me to go and tackle such an exam.


Image for post
Image for post
creating a VM using vermin

In this post, we will use vermin to have Ubuntu VM desktop up and running in minutes using Vermin.

  1. Create Ubuntu VM using vermin
  2. Install ubuntu-mate-desktop on the VM
  3. Start the Ubuntu VM after installation

In this post, we will use ubuntu-mate-desktop, however you are free to install any desktop environment you like.

We will use vermin as it is a simple virtual machine program that uses Virtualbox as the underlying hypervisor.

To follow this tutorial, you will have to install vermin.

First, you need to install Virtualbox, then for Linux and macOS, in a terminal window:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mhewedy/vermin/master/install.sh)" …


Image for post
Image for post
Photo by NASA on Unsplash

This is the eighth post of The Redis Series.

Part One: Install Redis inside Ubuntu VM
Part Two: Redis Persistence by Example
Part Three: Implement game leaderboard using Redis
Part Four: Implement Job Queue using Redis
Part Five: Building REST API backed by Redis
Part Six: Building Chat Service in Golang and Websockets backed by Redis
Part Seven: Redis Cluster configurations by example
Part Eight: Redis Geospatial by example 👈

Redis Support Geospatial index backed by Sorted Set. and the sorted set is similar to regular set beside it keeps a score for each element in the set.

Redis saves longitude and latitude in the score of the sorted set and the name for the location as the sorted set member. …


Image for post
Image for post
source: redislabs.com

This is the seventh Post of The Redis Series.

Part One: Install Redis inside Ubuntu VM
Part Two: Redis Persistence by Example
Part Three: Implement game leaderboard using Redis
Part Four: Implement Job Queue using Redis
Part Five: Building REST API backed by Redis
Part Six: Building Chat Service in Golang and Websockets backed by Redis
Part Seven: Redis Cluster configurations by example 👈
Part Eight: Redis Geospatial by example

We can run Redis in production in one of the following configurations:

  1. High Available Redis (w/wo Sentinel)
  2. Clustered Redis
  3. High Available clustered Redis

We will take about each one and see by example how to configure each one of them, in the end, we will test automatic failover as part of HA clustered Redis. …

About

Mohammed Hewedy

Software Developer and Solutions Architect

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store