Created
October 31, 2016 09:55
-
-
Save mevansam/68528535b969876c842abf0ecd697d74 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This Vagrant file shoud default to VirtualBox | |
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' | |
# Install bosh cli in jumpbox - This script will be skipped if the pre-provisioned box is used | |
bosh_cli_install_script = <<SCRIPT | |
set -x | |
# Proxy server #.#.#.#:# if any | |
PROXY="" | |
# Shared work dir | |
WORK_DIR=/vagrant | |
# Software versions | |
JQ_VERSION=1.5 | |
GO_VERSION=1.7.3 | |
JAVA_VERSION=8u112 | |
JAVA_BUILD=15 | |
JAVA_URL=http://download.oracle.com/otn-pub/java/jdk/$JAVA_VERSION-b$JAVA_BUILD/jdk-$JAVA_VERSION-linux-x64.tar.gz | |
PYTHON_VERSION=15.0.3 | |
PYTHON_VIRTUALENV_URL=https://pypi.python.org/packages/8b/2c/c0d3e47709d0458816167002e1aa3d64d03bdeb2a9d57c5bd18448fd24cd/virtualenv-$PYTHON_VERSION.tar.gz#md5=a5a061ad8a37d973d27eb197d05d99bf | |
# Set proxy | |
if [ -n "$PROXY" ]; then | |
export HTTP_PROXY=$PROXY | |
export http_proxy=$PROXY | |
export HTTPS_PROXY=$PROXY | |
export https_proxy=$PROXY | |
GPG_PROXY="--keyserver-options $PROXY" | |
cat /etc/apt/apt.conf | grep "Acquire::http::Proxy" > /dev/null | |
if [ $? -ne 0 ]; then | |
echo "Acquire::http::Proxy \"$PROXY\";" >> /etc/apt/apt.conf | |
fi | |
fi | |
# Initialize | |
if [ ! -e $HOME/.updated ]; then | |
sudo apt-get -y update | |
sudo apt-get -y upgrade | |
sudo apt-get -y --force-yes install build-essential \ | |
openssl libssl-dev libffi-dev libreadline6 libreadline6-dev libyaml-dev libxml2-dev libxslt1-dev \ | |
libsqlite3-dev libpq-dev libmysqlclient-dev zlibc zlib1g-dev zip \ | |
python-dev ruby-dev sqlite3 mysql-client | |
touch $HOME/.updated | |
fi | |
cat $HOME/.profile | grep "export PATH=\\\$HOME/.bin:\\\$PATH" > /dev/null | |
if [ $? -ne 0 ]; then | |
PATH_ADD="\\nexport PATH=\\\$HOME/.bin:\\\$HOME/.java/jdk/bin:\\\$HOME/.go/go/bin:\\\$PATH" | |
echo -e $PATH_ADD >> $HOME/.profile | |
echo -e $PATH_ADD >> $HOME/.bashrc | |
fi | |
# Install RVM | |
if [ ! -e $HOME/.rvm ]; then | |
gpg --keyserver hkp://keys.gnupg.net $GPG_PROXY --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 | |
curl -s -sSL https://get.rvm.io | bash -s stable | |
fi | |
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting | |
source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* | |
# Instal Ruby and Bosh CLI | |
ruby=$(which ruby) | |
if [ "$ruby" == "/usr/bin/ruby" ] || [ -z "$ruby" ]; then | |
rvm install 2.2 | |
rvm --default use 2.2 | |
gem install bosh_cli --no-ri --no-rdoc | |
gem install cf-uaac --no-rdoc --no-ri | |
fi | |
which cf 2>&1 > /dev/null | |
if [ $? -ne 0 ]; then | |
mkdir -p $HOME/.bin | |
pushd $HOME/.bin | |
curl -s -L "https://cli.run.pivotal.io/stable?release=linux64-binary&source=github" | tar -zx | |
curl -s -L "https://github.com/stedolan/jq/releases/download/jq-$JQ_VERSION/jq-linux64" -o jq | |
chmod 0744 jq | |
popd | |
fi | |
if [ ! -e $HOME/.python ]; then | |
VIRT_ENV="virtualenv-$PYTHON_VERSION" | |
curl -s -o $VIRT_ENV.tar.gz -L $PYTHON_VIRTUALENV_URL | |
tar xvzf $VIRT_ENV.tar.gz | |
python $VIRT_ENV/virtualenv.py .python | |
rm -rf $VIRT_ENV | |
.python/bin/pip install $VIRT_ENV.tar.gz | |
rm -fr $VIRT_ENV.tar.gz | |
echo -e "\\nalias p=\\\"source ~/.python/bin/activate\\\"" >> $HOME/.bashrc | |
fi | |
if [ ! -e $HOME/.go ]; then | |
mkdir -p $HOME/.go | |
pushd $HOME/.go | |
curl -s -L https://storage.googleapis.com/golang/go$GO_VERSION.linux-amd64.tar.gz | tar -zx | |
popd | |
echo -e "\\nexport GOROOT=$HOME/.go/go" >> $HOME/.bashrc | |
echo -e "export GOPATH=$WORK_DIR/src" >> $HOME/.bashrc | |
fi | |
if [ ! -e $HOME/.java ]; then | |
mkdir -p $HOME/.java | |
pushd $HOME/.java | |
wget -q -c -O jdk.tar.gz --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "$JAVA_URL" | |
tar xvzf jdk.tar.gz | |
rm -f jdk.tar.gz | |
mv jdk* jdk | |
popd | |
echo -e "\\nexport JAVA_HOME=$HOME/.java/jdk" >> $HOME/.bashrc | |
fi | |
set +x | |
SCRIPT | |
Vagrant.configure('2') do |config| | |
config.vm.define "boshlite" do |boshlite| | |
boshlite.vm.box = 'cloudfoundry/bosh-lite' | |
boshlite.vm.provider :virtualbox do |v, override| | |
override.vm.box_version = '9000.131.0' | |
override.vm.network :private_network, ip: '192.168.50.4', id: :local | |
end | |
boshlite.vm.provider "virtualbox" do |v| | |
v.memory = 6192 | |
v.cpus = 2 | |
end | |
end | |
config.vm.define "jumpbox" do |jumpbox| | |
# Pre-provisioned jumpbox | |
#jumpbox.vm.box = "mevansam/jumpbox" | |
# Provision a jumpbox from scratch | |
jumpbox.vm.box = "ubuntu/trusty64" | |
jumpbox.vm.provider :virtualbox do |v, override| | |
override.vm.network :private_network, ip: '192.168.50.5', id: :local | |
end | |
jumpbox.vm.provider "virtualbox" do |v| | |
v.memory = 1024 | |
v.cpus = 1 | |
end | |
jumpbox.vm.provision "shell", inline: "su - vagrant -c '#{bosh_cli_install_script}'" | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment