See https://fastly.atlassian.net/wiki/display/DOC/DeveloperSetupMac

WHAT AM I

Pauper is suppose to setup lxc's defined in a Pauperfile. We use this to build out dev environment. In the beginning it was created by fastly because the alternatives available where not filling our needs.

Base Commands

pauper bootstrap [lucid|precise]  # Initialize the base image
pauper create [NODENAME]          # Create a VM
pauper destroy [NODENAME]         # Completely destroy a VM
pauper halt                       # Stop all nodes on your vm from local!
pauper help [COMMAND]             # Describe available commands or one specific command
pauper reload                     # Basically an up then a halt...
pauper resume [NODENAME]          # Resume a VM
pauper setup [NODENAME]           # Refresh configs and run Chef on a VM
pauper setup_osx [VMNAME]         # Set up things for OS X
pauper start [NODENAME]           # Start a VM
pauper stop [NODENAME]            # Stop a VM
pauper suspend [NODENAME]         # Suspends a VM
pauper up                         # Start all nodes on your vm from local!
pauper write_hosts                # Write out a new /etc/hosts file
pauper vm SUBCOMMAND              # Operations dealing with VMware Fusion

Options:
[--pauperfile=PAUPERFILE]         # defults to ./Pauperfile

VM Sub Commands

This attempts to manage an OSX VMware Fusion VM instance headlessly. Please run pauper vm setup before asking for help when it does not work...

The vm subcommand really only works for OSX users running VMWare Fusion. It relies entirely on VMWares vm-run scripts

!!IMPORTANT!! pauper vm setup should rid of most of the prompts and other things that are not need for headless vm operation but as a precaution you should stop/start using the GUI at least once and check all "never show this to me again" boxes just to be safe.

Commands:
pauper vm help [COMMAND]  # Describe subcommands or one specific subcommand
pauper vm list            # List running fusion VMs
pauper vm pause           # Pause given fusion VM
pauper vm reset           # Reset given fusion VM
pauper vm setup           # Setup your pauper vm experience
pauper vm start           # Starts your fusion VM
pauper vm stop            # Stop given fusion VM
pauper vm suspend         # Suspend given fusion VM
pauper vm unpause         # Unpause given fusion VM
pauper vm vmruner         # A tube straight to the vmrun command...

Options:
[--vmpath=VMPATH]         # Defaults to "/Applications/VMware Fusion.app/Contents/Library/vmrun"
[--vmrunpath=VMRUNPATH]   # Defaults to "#{ENV['HOME']}/Documents/Virtual Machines*/*.vmwarevm"

GPG

We use GPG for key generation. It needs some amount of entropy to do its thing with any amount of haste. On a new VM there is very little entropy and very little happening that will generate entropy...

If you notice that pauper bootstrap is hanging for a long time on a call involving gpg, attempt this on your VM:

sudo apt-get install haveged
haveged

haveged generates the needed entropy for you and should slove this issue. Feel free to kill haveged when you are done (it will run forever, hiding in the background if you do not :P )

Upgrading

To update the Pauper gem from your local files:

rake install

To update the Pauper gem from RubyGems:

gem update pauper

TIPS

Are things not working for you right now? Try this (probably overkill) way to fix things!

First try running ./start.sh from the pauper-env directory.

If this script does not exist you may have to pull master or if you would prefer to do it the hard way...

OSX users:

  1. SSH into your VM
  2. cd into your pauper-env directory
  3. pauper stop
  4. pauper start
  5. pauper write_hosts
  6. sudo iptables -F
  7. Return to your OSX cmd-line
  8. cd into your pauper-env directory
  9. pauper setup_osx

This will hopefully get you into a happy state... Hopefully...