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