github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/terraform/shared/scripts/server.sh (about) 1 #!/bin/bash 2 3 set -e 4 5 CONFIGDIR=/ops/shared/config 6 7 CONSULCONFIGDIR=/etc/consul.d 8 VAULTCONFIGDIR=/etc/vault.d 9 NOMADCONFIGDIR=/etc/nomad.d 10 CONSULTEMPLATECONFIGDIR=/etc/consul-template.d 11 HOME_DIR=ubuntu 12 13 # Wait for network 14 sleep 15 15 16 DOCKER_BRIDGE_IP_ADDRESS=(`ifconfig docker0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`) 17 CLOUD=$1 18 SERVER_COUNT=$2 19 RETRY_JOIN=$3 20 NOMAD_BINARY=$4 21 22 # Get IP from metadata service 23 if [ "$CLOUD" = "gce" ]; then 24 IP_ADDRESS=$(curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/ip) 25 else 26 IP_ADDRESS=$(curl http://instance-data/latest/meta-data/local-ipv4) 27 fi 28 # IP_ADDRESS="$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')" 29 30 # Consul 31 sed -i "s/IP_ADDRESS/$IP_ADDRESS/g" $CONFIGDIR/consul.json 32 sed -i "s/SERVER_COUNT/$SERVER_COUNT/g" $CONFIGDIR/consul.json 33 sed -i "s/RETRY_JOIN/$RETRY_JOIN/g" $CONFIGDIR/consul.json 34 sudo cp $CONFIGDIR/consul.json $CONSULCONFIGDIR 35 sudo cp $CONFIGDIR/consul_$CLOUD.service /etc/systemd/system/consul.service 36 37 sudo systemctl enable consul.service 38 sudo systemctl start consul.service 39 sleep 10 40 export CONSUL_HTTP_ADDR=$IP_ADDRESS:8500 41 export CONSUL_RPC_ADDR=$IP_ADDRESS:8400 42 43 # Vault 44 sed -i "s/IP_ADDRESS/$IP_ADDRESS/g" $CONFIGDIR/vault.hcl 45 sudo cp $CONFIGDIR/vault.hcl $VAULTCONFIGDIR 46 sudo cp $CONFIGDIR/vault.service /etc/systemd/system/vault.service 47 48 sudo systemctl enable vault.service 49 sudo systemctl start vault.service 50 51 # Nomad 52 53 ## Replace existing Nomad binary if remote file exists 54 if [[ `wget -S --spider $NOMAD_BINARY 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then 55 curl -L $NOMAD_BINARY > nomad.zip 56 sudo unzip -o nomad.zip -d /usr/local/bin 57 sudo chmod 0755 /usr/local/bin/nomad 58 sudo chown root:root /usr/local/bin/nomad 59 fi 60 61 sed -i "s/SERVER_COUNT/$SERVER_COUNT/g" $CONFIGDIR/nomad.hcl 62 sudo cp $CONFIGDIR/nomad.hcl $NOMADCONFIGDIR 63 sudo cp $CONFIGDIR/nomad.service /etc/systemd/system/nomad.service 64 65 sudo systemctl enable nomad.service 66 sudo systemctl start nomad.service 67 sleep 10 68 export NOMAD_ADDR=http://$IP_ADDRESS:4646 69 70 # Consul Template 71 sudo cp $CONFIGDIR/consul-template.hcl $CONSULTEMPLATECONFIGDIR/consul-template.hcl 72 sudo cp $CONFIGDIR/consul-template.service /etc/systemd/system/consul-template.service 73 74 # Add hostname to /etc/hosts 75 76 echo "127.0.0.1 $(hostname)" | sudo tee --append /etc/hosts 77 78 # Add Docker bridge network IP to /etc/resolv.conf (at the top) 79 80 echo "nameserver $DOCKER_BRIDGE_IP_ADDRESS" | sudo tee /etc/resolv.conf.new 81 cat /etc/resolv.conf | sudo tee --append /etc/resolv.conf.new 82 sudo mv /etc/resolv.conf.new /etc/resolv.conf 83 84 # Move examples directory to $HOME 85 sudo mv /ops/examples /home/$HOME_DIR 86 sudo chown -R $HOME_DIR:$HOME_DIR /home/$HOME_DIR/examples 87 sudo chmod -R 775 /home/$HOME_DIR/examples 88 89 # Set env vars for tool CLIs 90 echo "export CONSUL_RPC_ADDR=$IP_ADDRESS:8400" | sudo tee --append /home/$HOME_DIR/.bashrc 91 echo "export CONSUL_HTTP_ADDR=$IP_ADDRESS:8500" | sudo tee --append /home/$HOME_DIR/.bashrc 92 echo "export VAULT_ADDR=http://$IP_ADDRESS:8200" | sudo tee --append /home/$HOME_DIR/.bashrc 93 echo "export NOMAD_ADDR=http://$IP_ADDRESS:4646" | sudo tee --append /home/$HOME_DIR/.bashrc 94 echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre" | sudo tee --append /home/$HOME_DIR/.bashrc