4.0 KiB
Instructions on how to run open_source branch
To use vagrant/ansible to build the {please|just|}.unglue.it
, you
need to have the following installed:
- Vagrant (e.g., to download: https://www.vagrantup.com/downloads.html) (at least version 1.8.1)
- Installation — Ansible Documentation (version 2+) -- use
pip install ansible
We also need the `vagrant-aws vagrant plugin:
vagrant plugin install vagrant-aws --plugin-version 0.5.0
Optionally you can VirtualBox – Oracle VM VirtualBox to enable the build of machines locally.
Layout of important files:
-
Vagrantfile, which is what
vagrant
looks for and defines various hosts:please
,just
,just2
,prod
, andprod2
. -
dev.yml -- the main ansible playbook that builds the various machines
-
please
is for buidingplease.unglue.it
-- it is a transient machine -
the reason I have a
just
group withjust
andjust2
hosts is while one is in production, I build the new one. Once the new one is working, I canvagrant stop
and then ultimatelyvagrant destroy
the old one. -
similar logic for the production group. (Note that before I retire a production server, I copy over the logs to S3: backing up production logs to S3)
You also need AWS keys in the environment. I have my key/secret pair configured with a shell script that I can run -- I've stored this file in /Volumes/ryvault1/gluejar/other_keys/aws.sh
, stored in an encrypted volume on my laptop. For convenience I link to the file from ~/bin/gj_aws.sh
:
#!/bin/bash
export BOTO_CONFIG=/Volumes/ryvault1/gluejar/other_keys/boto.cfg
# rdhyee key: https://console.aws.amazon.com/iam/home?region=us-east-1#/users/rdhyee
# eric: you can use the credentials from https://console.aws.amazon.com/iam/home?region=us-east-1#/users/eric
# note: these credentials are tied to the Gluejar account
export AWS_ACCESS_KEY=[FILL IN]
export AWS_SECRET_KEY=[FILL IN]
# simple_public_vpc
export AWS_VPC_ID=vpc-6f7db10b
# EC2 API tools
export EC2_ACCESS_KEY=$AWS_ACCESS_KEY
export EC2_SECRET_KEY=$AWS_SECRET_KEY
# s3cmd
ln -fs /Volumes/ryvault1/gluejar/s3/s3cfg ~/.s3cfg
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY
# AWS CLI http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY
# http://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html
export AWS_DEFAULT_OUTPUT="json"
e.g.,
hyptyposis-2014:vagrant raymondyee$ ls -lt ~/bin/gj_aws.sh
lrwxr-xr-x 1 raymondyee 501 43 Aug 18 2014 /Users/raymondyee/bin/gj_aws.sh -> /Volumes/ryvault1/gluejar/other_keys/aws.sh
In the regluit/vagrant
directory, after I run ~/bin/gj_aws.sh
and vagrant status
, I get something like (the actual status of various machines can vary):
please not created (virtualbox)
just running (aws)
just2 not created (virtualbox)
prod not created (virtualbox)
prod2 running (aws)
localvm not created (virtualbox)
Once you have vagrant status
works, a good place to start is how to build please
with
vagrant up please --provider=aws
For the moment, please leave building just and production to me.
running regluit on localhost
In the vagrant
directory, you can run
ansible-playbook create_commonpy.yml
to generate settings/common.py
. You should then be able to proceed as normal.