Run your workloads on ephemeral Virtual Machines

vm-spinner

Run your workloads on ephemeral Virtual Machines.

Descriprion

A simple tool that spawns an arbitrary number of VMs in parallel, runs the same workload on each of them, and collects their outputs.

This requires Vagrant to be installed in your system, and to be properly configured with a supported provider.

Examples

Printing hello world on an Ubuntu 20.04 VM using VirtualBox:

./vm-spinner -p "virtualbox" -i "ubuntu/focal64" -c "echo hello world" 

Creating a VM and installing Docker.

./vm-spinner -p "virtualbox" -i "ubuntu/focal64" -c "curl -fsSL https://get.docker.com -o get-docker.sh && sh ./get-docker.sh"   

Running a local script in two VM in parallel, by specifying the provisioned resources for each VM:

./vm-spinner -p "virtualbox" -i "ubuntu/focal64;ubuntu/bionic64" -f "./script.sh" --cpus=2 --parallelism=2 --memory=4096  
Owner
Jason Dellaluce
Open Source Engineer at Sysdig
Jason Dellaluce
Similar Resources

Are you programming and suddenly your stomach is rumbling? No problem, order your Ifood without leaving your favorite text editor ❤️

vim-ifood Você ta programando e de repente bateu aquela fome? Sem problemas, peça seu Ifood sem sair do seu editor de texto favorito ❤️ Are you progra

Jun 2, 2022

ops - build and run nanos unikernels

ops - build and run nanos unikernels

OPS Ops is a tool for creating and running a Nanos unikernel. It is used to package, create and run your application as a nanos unikernel instance. Ch

Dec 30, 2022

A tiny "sandbox" to run untrusted code 🏖️

Sandy A tiny sandbox to run untrusted code. 🏖️ Sandy uses Ptrace to hook into READ syscalls, giving you the option to accept or deny syscalls before

Nov 14, 2022

A simple script to run speedtest(offical) CLI tool and store the results in CSV

PeriodicBW A script made to run official speedtest.net binary periodically and store the results in a CSV file Installation Get the official speedtest

Aug 10, 2021

A go library for easy configure and run command chains. Such like pipelining in unix shells.

go-command-chain A go library for easy configure and run command chains. Such like pipelining in unix shells. Example cat log_file.txt | grep error |

Dec 27, 2022

Commando - run commands against networking devices in batch mode

Commando - run commands against networking devices in batch mode

Commando is a tiny tool that enables users to collect command outputs from a single or a multiple networking devices defined in an inventory file.

Oct 30, 2022

Command-line tool to load csv and excel (xlsx) files and run sql commands

Command-line tool to load csv and excel (xlsx) files and run sql commands

csv-sql supports loading and saving results as CSV and XLSX files with data processing with SQLite compatible sql commands including joins.

Nov 2, 2022

Handy commands to run in Go projects

Handy commands to run in Go projects

Jan 3, 2023

Run commands when files change.

Run commands when files change.

Crow crow is a simple command-line utility that lets you run arbitrary commands when certain files change. Demo A demonstration of crow being used to

Nov 22, 2022
Comments
  • Various improvements

    Various improvements

    • added logrus
    • added 'log-output', 'log-level', 'log-json' options
    • added 'summary-matrix' option, to print a result table at the end of program run

    Signed-off-by: Federico Di Pierro [email protected]

  • Various job refactor

    Various job refactor

    Mainly:

    • merged bpf and kmod job shell scripts
    • allow easier addition of new jobs without even touching main.go file
    • now provided jobs are compile time plugins
    • added ability to load runtime plugins specifying "--plugin-dir" parameter.
  • Properly manage signals using a context.

    Properly manage signals using a context.

    This avoids weird situations where parallelism < len(images), thus a ctrl-c would just stop current images, but then subsequent images get spawned, instead of quitting.

    Moreover, allow to set "forkname" option too for kmod and bpf jobs.

    Signed-off-by: Federico Di Pierro [email protected]

  • Extracted a VMJob interface and splitted various different jobs

    Extracted a VMJob interface and splitted various different jobs

    Added support to run kmod job too (ie: testing if a kernel module can be built on some vms). Fixed various issues.

    All in all, better project architecture.

    Signed-off-by: Federico Di Pierro [email protected]

Lightweight CLI tool to programmatically rescale your Hetzner virtual server daily to optimize your budget spending

Lightweight CLI tool to programmatically rescale your Hetzner virtual server daily to optimize your budget spending

Nov 28, 2022
Count once - Just once? no, when appear many it run once, but it can run many times

countOnce just once? no, when appear many it run once, but it can run many times

Jan 29, 2022
copy and paste across machines
copy and paste across machines

Copy-paste across machines using GitLab Snippets as a storage backend. This is a simple CLI tool inspired by the usability of pbcopy and pbpaste or xc

Aug 29, 2022
Tabouli: a TUI for interacting with firmware/embedded devices that support a CLI via serial interface/virtual COM Port
Tabouli: a TUI for interacting with firmware/embedded devices that support a CLI via serial interface/virtual COM Port

Tabouli Information Tabouli is a TUI for interacting with firmware/embedded devi

Apr 2, 2022
Mimic - a eBPF virtual machine and emulator which runs in userspace

Mimic is a eBPF virtual machine and emulator which runs in userspace. Mimic attempts to 'mimic' the eBPF machinery we find in the Linux kernel, as well as other possible implementation/environments.

Dec 6, 2022
This is a command that simply prints "ok" onto your screen whenever you run the "ok" command
This is a command that simply prints

ok This is a command that simply prints "ok" onto your screen whenever you run the ok command Installation (Linux) Download the latest release and sud

Sep 16, 2022
CLI to run your dataframes against SLU service and generated labeled dataframe.

trail CLI to run your dataframes against different services (currently, SLU service). Setup Get the latest binaries from the releases here. Choose the

Nov 12, 2021
A CLI application that allows you to run a complete ToDo app from your terminal application

todo-cli This is a CLI application that allows you to run a complete ToDo app from your terminal application. As a user you can: Create a list of todo

Oct 11, 2021
Gostall - Run go install ./cmd/server and not have the binary install in your GOBIN be called server?

GOSTALL Ever wanted to run go install ./cmd/server and not have the binary insta

Jan 7, 2022