mirror of
https://github.com/kemko/nomad.git
synced 2026-01-07 19:05:42 +03:00
A failing script in a `remote-exec` provisioner's `inline` stanza won't fail the provisioning step. This lets us continue on to execute tests against potentially broken deployments, rather than letting us know the provisioning itself failed.
73 lines
2.5 KiB
Bash
Executable File
73 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
CONFIGDIR=/ops/shared/config
|
|
|
|
CONSULCONFIGDIR=/etc/consul.d
|
|
VAULTCONFIGDIR=/etc/vault.d
|
|
NOMADCONFIGDIR=/etc/nomad.d
|
|
HADOOP_VERSION=hadoop-2.7.6
|
|
HADOOPCONFIGDIR=/usr/local/$HADOOP_VERSION/etc/hadoop
|
|
HOME_DIR=ubuntu
|
|
|
|
# Wait for network
|
|
sleep 15
|
|
|
|
# IP_ADDRESS=$(curl http://instance-data/latest/meta-data/local-ipv4)
|
|
IP_ADDRESS="$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')"
|
|
DOCKER_BRIDGE_IP_ADDRESS=(`ifconfig docker0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`)
|
|
CLOUD=$1
|
|
SERVER_COUNT=$2
|
|
RETRY_JOIN=$3
|
|
|
|
# Consul
|
|
sed -i "s/IP_ADDRESS/$IP_ADDRESS/g" $CONFIGDIR/consul.json
|
|
sed -i "s/SERVER_COUNT/$SERVER_COUNT/g" $CONFIGDIR/consul.json
|
|
sed -i "s/RETRY_JOIN/$RETRY_JOIN/g" $CONFIGDIR/consul.json
|
|
sudo cp $CONFIGDIR/consul.json $CONSULCONFIGDIR
|
|
sudo cp $CONFIGDIR/consul_$CLOUD.service /etc/systemd/system/consul.service
|
|
|
|
sudo systemctl enable consul.service
|
|
sudo systemctl start consul.service
|
|
sleep 10
|
|
export CONSUL_HTTP_ADDR=$IP_ADDRESS:8500
|
|
export CONSUL_RPC_ADDR=$IP_ADDRESS:8400
|
|
|
|
# Vault
|
|
sed -i "s/IP_ADDRESS/$IP_ADDRESS/g" $CONFIGDIR/vault.hcl
|
|
sudo cp $CONFIGDIR/vault.hcl $VAULTCONFIGDIR
|
|
sudo cp $CONFIGDIR/vault.service /etc/systemd/system/vault.service
|
|
|
|
sudo systemctl enable vault.service
|
|
sudo systemctl start vault.service
|
|
|
|
export NOMAD_ADDR=http://$IP_ADDRESS:4646
|
|
|
|
# Add hostname to /etc/hosts
|
|
echo "127.0.0.1 $(hostname)" | sudo tee --append /etc/hosts
|
|
|
|
# Add Docker bridge network IP to /etc/resolv.conf (at the top)
|
|
|
|
echo "nameserver $DOCKER_BRIDGE_IP_ADDRESS" | sudo tee /etc/resolv.conf.new
|
|
cat /etc/resolv.conf | sudo tee --append /etc/resolv.conf.new
|
|
sudo mv /etc/resolv.conf.new /etc/resolv.conf
|
|
|
|
# Hadoop
|
|
sudo cp $CONFIGDIR/core-site.xml $HADOOPCONFIGDIR
|
|
|
|
# Move examples directory to $HOME
|
|
sudo mv /ops/examples /home/$HOME_DIR
|
|
sudo chown -R $HOME_DIR:$HOME_DIR /home/$HOME_DIR/examples
|
|
sudo chmod -R 775 /home/$HOME_DIR/examples
|
|
|
|
# Set env vars for tool CLIs
|
|
echo "export CONSUL_RPC_ADDR=$IP_ADDRESS:8400" | sudo tee --append /home/$HOME_DIR/.bashrc
|
|
echo "export CONSUL_HTTP_ADDR=$IP_ADDRESS:8500" | sudo tee --append /home/$HOME_DIR/.bashrc
|
|
echo "export VAULT_ADDR=http://$IP_ADDRESS:8200" | sudo tee --append /home/$HOME_DIR/.bashrc
|
|
echo "export NOMAD_ADDR=http://$IP_ADDRESS:4646" | sudo tee --append /home/$HOME_DIR/.bashrc
|
|
echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre" | sudo tee --append /home/$HOME_DIR/.bashrc
|
|
|
|
# Update PATH
|
|
echo "export PATH=$PATH:/usr/local/bin/spark/bin:/usr/local/$HADOOP_VERSION/bin" | sudo tee --append /home/$HOME_DIR/.bashrc
|