mirror of https://github.com/etcd-io/dbtester.git
151 lines
4.4 KiB
Bash
151 lines
4.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
<<COMMENT
|
|
curl https://.../dbtester_agent.sh | bash -s f /mnt/ssd0
|
|
COMMENT
|
|
|
|
# clean page cache
|
|
echo "echo 1 > /proc/sys/vm/drop_caches" | sudo sh
|
|
|
|
if [ "$1" = "f" ]; then
|
|
echo "Formatting following https://cloud.google.com/compute/docs/disks/local-ssd"
|
|
sudo mkdir -p /mnt/ssd0
|
|
ls /dev/disk/by-id/
|
|
sudo mkfs.ext4 -F /dev/disk/by-id/google-local-ssd-0
|
|
sudo mount -o discard,defaults /dev/disk/by-id/google-local-ssd-0 /mnt/ssd0
|
|
sudo chmod a+w /mnt/ssd0
|
|
echo '/dev/disk/by-id/google-local-ssd-0 /mnt/ssd0 ext4 defaults 1 1' | sudo tee -a /etc/fstab
|
|
echo 'Hello, World!' > /mnt/ssd0/hello.txt
|
|
cat /mnt/ssd0/hello.txt
|
|
df -h
|
|
rm -f /mnt/ssd0/hello.txt
|
|
ls /mnt/ssd0/
|
|
else
|
|
echo "No formatting"
|
|
fi;
|
|
|
|
WORKING_DIR=$HOME
|
|
if [ -n "$2" ]; then
|
|
WORKING_DIR=$2
|
|
fi;
|
|
echo Setting working directory to $WORKING_DIR
|
|
cd $WORKING_DIR
|
|
sleep 3s
|
|
|
|
#############################
|
|
echo Installing Go programs #
|
|
#############################
|
|
GO_VERSION="1.6" && cd /usr/local && sudo rm -rf ./go && sudo curl -s https://storage.googleapis.com/golang/go$GO_VERSION.linux-amd64.tar.gz | sudo tar -v -C /usr/local/ -xz && cd $HOME;
|
|
echo "export GOPATH=$(echo $HOME)/go" >> $HOME/.bashrc
|
|
PATH_VAR=$PATH":/usr/local/go/bin:$(echo $HOME)/go/bin"
|
|
echo "export PATH=$(echo $PATH_VAR)" >> $HOME/.bashrc
|
|
export GOPATH=$(echo $HOME)/go
|
|
PATH_VAR=$PATH":/usr/local/go/bin:$(echo $HOME)/go/bin"
|
|
export PATH=$(echo $PATH_VAR)
|
|
|
|
go get -v -u -f github.com/gyuho/psn
|
|
psn ps-kill --force --clean-up
|
|
psn ps-kill --force --program etcd
|
|
psn ps-kill --force --program dbtester
|
|
psn ps-kill --force --program java
|
|
psn ss-kill --local-port 2181
|
|
psn ss-kill --local-port 2379
|
|
psn ss-kill --local-port 2380
|
|
psn ss-kill --local-port 2888
|
|
psn ss-kill --local-port 3500
|
|
psn ss-kill --local-port 3888
|
|
rm -rf $WORKING_DIR/*.etcd
|
|
rm -rf $WORKING_DIR/*.log
|
|
rm -rf $WORKING_DIR/failure_archive
|
|
go get -v -u -f github.com/coreos/etcd
|
|
go get -v -u -f github.com/coreos/dbtester
|
|
|
|
if [ -n "$3" ]; then
|
|
echo "Running node_exporter..."
|
|
psn ps-kill --force --program node_exporter
|
|
psn ss-kill --local-port 9100
|
|
go get -v -u -f github.com/prometheus/node_exporter
|
|
nohup node_exporter -web.listen-address=":9100" > $WORKING_DIR/node_exporter.log 2>&1 &
|
|
sleep 5s
|
|
psn ps --program node_exporter
|
|
psn ss --program node_exporter
|
|
else
|
|
echo "No node_exporter..."
|
|
fi;
|
|
|
|
#########################
|
|
echo Installing Ansible #
|
|
#########################
|
|
sudo apt-get -y update
|
|
sudo apt-get -y upgrade
|
|
sudo apt-get -y autoremove
|
|
sudo apt-get -y autoclean
|
|
sudo apt-get install -y software-properties-common
|
|
sudo apt-add-repository -y ppa:ansible/ansible
|
|
sudo apt-get -y update
|
|
sudo apt-get install -y ansible
|
|
echo "---
|
|
- name: a play that runs entirely on the ansible host
|
|
hosts: 127.0.0.1
|
|
connection: local
|
|
tasks:
|
|
- name: Install Linux utils
|
|
become: yes
|
|
apt: name={{item}} state=latest
|
|
with_items:
|
|
- bash
|
|
- curl
|
|
- git
|
|
- tar
|
|
- iptables
|
|
- iproute2
|
|
|
|
- name: Install add-apt-repostory
|
|
become: yes
|
|
apt: name=software-properties-common state=latest
|
|
|
|
- name: Add Oracle Java Repository
|
|
become: yes
|
|
apt_repository: repo='ppa:webupd8team/java'
|
|
|
|
- name: Accept Java 8 License
|
|
become: yes
|
|
debconf: name='oracle-java8-installer' question='shared/accepted-oracle-license-v1-1' value='true' vtype='select'
|
|
|
|
- name: Install Oracle Java 8
|
|
become: yes
|
|
apt: name={{item}} state=latest
|
|
with_items:
|
|
- oracle-java8-installer
|
|
- ca-certificates
|
|
- oracle-java8-set-default
|
|
|
|
- name: Print Java version
|
|
command: java -version
|
|
register: result
|
|
- debug:
|
|
var: result.stderr
|
|
|
|
- name: Print JDK version
|
|
command: javac -version
|
|
register: result
|
|
- debug:
|
|
var: result.stderr
|
|
" > $WORKING_DIR/dbtester_install.yml
|
|
ansible-playbook $WORKING_DIR/dbtester_install.yml
|
|
|
|
###########################
|
|
echo Installing Zookeeper #
|
|
###########################
|
|
ZOOKEEPER_VERSION=3.4.8
|
|
sudo rm -rf $WORKING_DIR/zookeeper
|
|
sudo curl -sf -o /tmp/zookeeper-$ZOOKEEPER_VERSION.tar.gz -L https://www.apache.org/dist/zookeeper/zookeeper-$ZOOKEEPER_VERSION/zookeeper-$ZOOKEEPER_VERSION.tar.gz
|
|
sudo tar -xzf /tmp/zookeeper-$ZOOKEEPER_VERSION.tar.gz -C /tmp/
|
|
sudo mv /tmp/zookeeper-$ZOOKEEPER_VERSION /tmp/zookeeper
|
|
sudo mv /tmp/zookeeper $WORKING_DIR/
|
|
sudo chmod -R 777 $WORKING_DIR/zookeeper/
|
|
mkdir -p $WORKING_DIR/zookeeper/data.zk
|
|
touch $WORKING_DIR/zookeeper/data.zk/myid
|
|
sudo chmod -R 777 $WORKING_DIR/zookeeper/data.zk/
|