Giter VIP home page Giter VIP logo

remote_pair_chef's Introduction

Build Status

Remote Pair Chef

This repo contains all the recipes for installing a brand spanking new dev box. More information to follow as to what exactly that means. For now, take a look if you want. These recipes are designed to be deployed to an instance (generally an AWS instance) running UBUNTU.

Installation and Usage

<TL;DR>

Some preliminary setup is required but the TLDR is you'll be able to type:

rake start RPC_HOST=rondale-sc RPC_PAIR=rwjblue

And when you ssh into the box that is created by the above command you'll automatically be in a shared TMUX (through wemux) connection with your pair. SSH key authentication is taken care of based off of the github user id's passed into the start command.

</TL;DR>

Setting up your Environment

To run the main task you should setup a few environment variables. You can either use dotenv or just manually load them into your environment. Here is a short list of the variables that you will need:

  • AWS_ACCESS_KEY_ID - See Setting up AWS Access
  • AWS_SECRET_ACCESS_KEY - See Setting up AWS Access
  • IDENTITY_FILE - Specify your ssh private key path here (Usually, ~/.ssh/id_rsa).
  • SSH_KEY - Specify the name of your key-pair within AWS

For convenience we've added a rake task to help you set this up.

dotenv_init

This will write a file at .env with these variables set inside. RPC will then load these into your environment at run time. If you don't feel comfortable writing your secrets to a file you can set these manually at runtime.

Usage

First clone this repo. Eventually this will be available as a gem, but since we are developing at a rapid pace it isn't a great fit yet.

The Start Task

The start rake task is the fundamental purpose of RPC. It will allow you to quickly bootstrap a box with ease. Let's talk about what's in the box!

Right now the box will include:

  • Vim
  • Git
  • RVM (installed system-wide)
  • sqlite
  • chef-users (See User Management)
  • Tmux
bundle install
rake start RPC_HOST=<GITHUB USERNAME> RPC_PAIR=<GITHUB USERNAME>

After that you'll be able to ssh into the box with the following command.

# AWS ip is printed at the end of start.
ssh <RPC_HOST>@<AWS_ASSIGNED_IP_ADDRESS>

# then connect with tmux
tmux -S /tmp/pair attach

And there you have it a brand new (completely disposable) pairing instance.

Additional Start variables

Any of these variables can be set in your .env file or directly on the command line:

  • IMAGE_ID - default - Most recent ubuntu 12.04 release via a script that parses canonical's list.
  • FLAVOR - default - 'm1.small'
  • TAGS - default - "Name=RPC_#{Time.now.strftime('%Y%m%d%H%M')}"
  • RUN_LIST - default - "role[remote_pair" (More to follow soon)
  • SSH_USER - default - "ubuntu"

The Stop Task

The stop task will shutdown any servers started with RPC.

rake stop

Contributions and what is on the horizon

  1. Make into a gem.
  2. Allow the deletion of users on existing instances. To enable the reuse of an instance between sessions with different users.
  3. Give user a fine control of running instances (underway). Specifically ways to find and terminate sessions upon completion.
  4. Spit out the ssh command to log into the box at the conclusion of the bootstrap
  5. Your <IDEA> here.

Help is always welcome, and any interest is greatly appreciated. That said, we are actively taking pull requests and will work with you to get them pushed through. So just:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

remote_pair_chef's People

Contributors

rwjblue avatar rondale-sc avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.