Welcome to Rambo’s documentation! — Rambo 0.4.0.dev documentation

# Welcome to Rambo’s documentation!

Latest: v0.4.0.dev

## Quickstart

To get started fast, see Quickstart.

Usage Documentation

- Quickstart
  - Hardware Recommendations
  - Supported Host Operating Systems
  - Installation
  - Create Project
  - Providers
- Python API
- CLI
  - Commands
  - rambo.conf
  - Environment Variables
- rambo.conf
  - Option Names
  - Option Precedence
- Customizing Rambo
  - Custom Provisioning
  - Custom Providers / Provider configuration
- Environment Variables

Provider Specific Documentation

- AWS EC2
  - Create Account
  - Create SSH Keys
  - Create Security Group
  - Create API Token
  - Edit Script to Load Environment Variables
  - Launching Your AWS EC2 Instance
- DigitalOcean
  - Create Account
  - Create SSH Keys
  - Create API Token
  - Edit Script to Load Environment Variables
  - Launching Your DigitalOcean Instance
- Docker
- LXC

Changelog:

- Changelog

## What’s Rambo For?

This project is for provisioning and configuring virtual machines (and containers) in a simple, predictable, and highly reproducible way. Just run one command and your VM is up, code is deployed, and your app is running, on any supported platform.

At this time this repo allows you to create a Linux VM on multiple providers (AWS EC2, DigitalOcean, VirtualBox, LXC). Several Operating Systems are available on select providers. The base machine configuration is a Ubuntu 16.04 64bit OS with 1024MB RAM, and 30GB drive.

One of the goals of this project is be able to run a simple command and have a new VM be created on your provider of choice. Once the VM is initialized SaltStack is used to deploy code to and provision your machine. The SaltStack machine configuration code (states) will run the same regardless of which provider is actually running the machine. You can easily cycle your VMs by destroying and rebuilding them.

Another goal of this repo is to have the spawned VMs be maximally similar across providers. Usually, your configuration will not need to change at all and will simply run on all providers.

By default Rambo offers a basic VM configuration with SaltStack, but you can customize this. See Customizing Rambo for that.

## Basic Usage

Once installed, you can run one of these commands to get your VM:

for VirtualBox run

    $ rambo up
    $ rambo ssh

for AWS EC2 run

    $ rambo up -p ec2
    $ rambo ssh

for DigitalOcean run

    $ rambo up -p digitalocean
    $ rambo ssh

for Docker run

    $ rambo up -p docker
    $ rambo ssh

for LXC run

    $ rambo up -p lxc
    $ rambo ssh

## Contributing

We heartily welcome any contirubtions to this project, whether in the form of commenting on or posting an issue, or development. If you would like to submit a pull request, you might first want to look at our development guidlines for this project.

## Special Thanks

Thanks go out to the Vagrant community and HashiCorp. Vagrant is a great tool it has helped us a lot over the years.

Rambo is supported by Terminal Labs.