You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.8 KiB
81 lines
2.8 KiB
#!/usr/bin/env bash |
|
# Licensed to the Apache Software Foundation (ASF) under one or more |
|
# contributor license agreements. See the NOTICE file distributed with |
|
# this work for additional information regarding copyright ownership. |
|
# The ASF licenses this file to You under the Apache License, Version 2.0 |
|
# (the "License"); you may not use this file except in compliance with |
|
# the License. You may obtain a copy of the License at |
|
# |
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
# See the License for the specific language governing permissions and |
|
# limitations under the License. |
|
|
|
# This script can be used to set up a driver machine on aws from which you will run tests |
|
# or bring up your mini Kafka cluster. |
|
|
|
# Install dependencies |
|
sudo apt-get install -y \ |
|
maven \ |
|
openjdk-8-jdk-headless \ |
|
build-essential \ |
|
ruby-dev \ |
|
zlib1g-dev \ |
|
realpath \ |
|
python-setuptools \ |
|
iperf \ |
|
traceroute |
|
|
|
base_dir=`dirname $0`/../.. |
|
|
|
if [ -z `which vagrant` ]; then |
|
echo "Installing vagrant..." |
|
wget https://releases.hashicorp.com/vagrant/2.1.5/vagrant_2.1.5_x86_64.deb |
|
sudo dpkg -i vagrant_2.1.5_x86_64.deb |
|
rm -f vagrant_2.1.5_x86_64.deb |
|
fi |
|
|
|
# Install necessary vagrant plugins |
|
# Note: Do NOT install vagrant-cachier since it doesn't work on AWS and only |
|
# adds log noise |
|
|
|
# Custom vagrant-aws with spot instance support. See https://github.com/mitchellh/vagrant-aws/issues/32 |
|
wget -nv https://s3-us-west-2.amazonaws.com/confluent-packaging-tools/vagrant-aws-0.7.2.spot.gem -P /tmp |
|
vagrant_plugins="/tmp/vagrant-aws-0.7.2.spot.gem vagrant-hostmanager" |
|
existing=`vagrant plugin list` |
|
for plugin in $vagrant_plugins; do |
|
echo $existing | grep $plugin > /dev/null |
|
if [ $? != 0 ]; then |
|
vagrant plugin install $plugin |
|
fi |
|
done |
|
|
|
# Create Vagrantfile.local as a convenience |
|
if [ ! -e "$base_dir/Vagrantfile.local" ]; then |
|
cp $base_dir/vagrant/aws/aws-example-Vagrantfile.local $base_dir/Vagrantfile.local |
|
fi |
|
|
|
gradle="gradle-2.2.1" |
|
if [ -z `which gradle` ] && [ ! -d $base_dir/$gradle ]; then |
|
if [ ! -e $gradle-bin.zip ]; then |
|
wget https://services.gradle.org/distributions/$gradle-bin.zip |
|
fi |
|
unzip $gradle-bin.zip |
|
rm -rf $gradle-bin.zip |
|
mv $gradle $base_dir/$gradle |
|
fi |
|
|
|
# Ensure aws access keys are in the environment when we use a EC2 driver machine |
|
LOCAL_HOSTNAME=$(hostname -d) |
|
if [[ ${LOCAL_HOSTNAME} =~ .*\.compute\.internal ]]; then |
|
grep "AWS ACCESS KEYS" ~/.bashrc > /dev/null |
|
if [ $? != 0 ]; then |
|
echo "# --- AWS ACCESS KEYS ---" >> ~/.bashrc |
|
echo ". `realpath $base_dir/aws/aws-access-keys-commands`" >> ~/.bashrc |
|
echo "# -----------------------" >> ~/.bashrc |
|
source ~/.bashrc |
|
fi |
|
fi
|
|
|