github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/terraform/shared/scripts/setup.sh (about) 1 #!/bin/bash 2 3 set -e 4 5 # Disable interactive apt prompts 6 export DEBIAN_FRONTEND=noninteractive 7 8 cd /ops 9 10 CONFIGDIR=/ops/shared/config 11 12 CONSULVERSION=1.8.3 13 CONSULDOWNLOAD=https://releases.hashicorp.com/consul/${CONSULVERSION}/consul_${CONSULVERSION}_linux_amd64.zip 14 CONSULCONFIGDIR=/etc/consul.d 15 CONSULDIR=/opt/consul 16 17 VAULTVERSION=1.5.3 18 VAULTDOWNLOAD=https://releases.hashicorp.com/vault/${VAULTVERSION}/vault_${VAULTVERSION}_linux_amd64.zip 19 VAULTCONFIGDIR=/etc/vault.d 20 VAULTDIR=/opt/vault 21 22 NOMADVERSION=0.12.4 23 NOMADDOWNLOAD=https://releases.hashicorp.com/nomad/${NOMADVERSION}/nomad_${NOMADVERSION}_linux_amd64.zip 24 NOMADCONFIGDIR=/etc/nomad.d 25 NOMADDIR=/opt/nomad 26 27 CONSULTEMPLATEVERSION=0.25.1 28 CONSULTEMPLATEDOWNLOAD=https://releases.hashicorp.com/consul-template/${CONSULTEMPLATEVERSION}/consul-template_${CONSULTEMPLATEVERSION}_linux_amd64.zip 29 CONSULTEMPLATECONFIGDIR=/etc/consul-template.d 30 CONSULTEMPLATEDIR=/opt/consul-template 31 32 # Dependencies 33 sudo apt-get install -y software-properties-common 34 sudo apt-get update 35 sudo apt-get install -y unzip tree redis-tools jq curl tmux 36 37 38 # Disable the firewall 39 40 sudo ufw disable || echo "ufw not installed" 41 42 # Consul 43 44 curl -L $CONSULDOWNLOAD > consul.zip 45 46 ## Install 47 sudo unzip consul.zip -d /usr/local/bin 48 sudo chmod 0755 /usr/local/bin/consul 49 sudo chown root:root /usr/local/bin/consul 50 51 ## Configure 52 sudo mkdir -p $CONSULCONFIGDIR 53 sudo chmod 755 $CONSULCONFIGDIR 54 sudo mkdir -p $CONSULDIR 55 sudo chmod 755 $CONSULDIR 56 57 # Vault 58 59 curl -L $VAULTDOWNLOAD > vault.zip 60 61 ## Install 62 sudo unzip vault.zip -d /usr/local/bin 63 sudo chmod 0755 /usr/local/bin/vault 64 sudo chown root:root /usr/local/bin/vault 65 66 ## Configure 67 sudo mkdir -p $VAULTCONFIGDIR 68 sudo chmod 755 $VAULTCONFIGDIR 69 sudo mkdir -p $VAULTDIR 70 sudo chmod 755 $VAULTDIR 71 72 # Nomad 73 74 curl -L $NOMADDOWNLOAD > nomad.zip 75 76 ## Install 77 sudo unzip nomad.zip -d /usr/local/bin 78 sudo chmod 0755 /usr/local/bin/nomad 79 sudo chown root:root /usr/local/bin/nomad 80 81 ## Configure 82 sudo mkdir -p $NOMADCONFIGDIR 83 sudo chmod 755 $NOMADCONFIGDIR 84 sudo mkdir -p $NOMADDIR 85 sudo chmod 755 $NOMADDIR 86 87 # Consul Template 88 89 curl -L $CONSULTEMPLATEDOWNLOAD > consul-template.zip 90 91 ## Install 92 sudo unzip consul-template.zip -d /usr/local/bin 93 sudo chmod 0755 /usr/local/bin/consul-template 94 sudo chown root:root /usr/local/bin/consul-template 95 96 ## Configure 97 sudo mkdir -p $CONSULTEMPLATECONFIGDIR 98 sudo chmod 755 $CONSULTEMPLATECONFIGDIR 99 sudo mkdir -p $CONSULTEMPLATEDIR 100 sudo chmod 755 $CONSULTEMPLATEDIR 101 102 103 # Docker 104 distro=$(lsb_release -si | tr '[:upper:]' '[:lower:]') 105 sudo apt-get install -y apt-transport-https ca-certificates gnupg2 106 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - 107 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/${distro} $(lsb_release -cs) stable" 108 sudo apt-get update 109 sudo apt-get install -y docker-ce 110 111 # Needs testing, updating and fixing 112 if [[ ! -z ${INSTALL_NVIDIA_DOCKER+x} ]]; then 113 # Install official NVIDIA driver package 114 sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub 115 sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list' 116 sudo apt-get update && sudo apt-get install -y --no-install-recommends linux-headers-generic dkms cuda-drivers 117 118 # Install nvidia-docker and nvidia-docker-plugin 119 # from: https://github.com/NVIDIA/nvidia-docker#ubuntu-140416041804-debian-jessiestretch 120 wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb 121 sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb 122 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - 123 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 124 curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ 125 sudo tee /etc/apt/sources.list.d/nvidia-docker.list 126 127 sudo apt-get update 128 sudo apt-get install -y nvidia-docker2 129 fi 130 131 # rkt 132 # Note: rkt has been ended and archived. This should likely be removed. 133 # See https://github.com/rkt/rkt/issues/4024 134 VERSION=1.30.0 135 DOWNLOAD=https://github.com/rkt/rkt/releases/download/v${VERSION}/rkt-v${VERSION}.tar.gz 136 137 function install_rkt() { 138 wget -q -O /tmp/rkt.tar.gz "${DOWNLOAD}" 139 tar -C /tmp -xvf /tmp/rkt.tar.gz 140 sudo mv /tmp/rkt-v${VERSION}/rkt /usr/local/bin 141 sudo mv /tmp/rkt-v${VERSION}/*.aci /usr/local/bin 142 } 143 144 function configure_rkt_networking() { 145 sudo mkdir -p /etc/rkt/net.d 146 sudo bash -c 'cat << EOT > /etc/rkt/net.d/99-network.conf 147 { 148 "name": "default", 149 "type": "ptp", 150 "ipMasq": false, 151 "ipam": { 152 "type": "host-local", 153 "subnet": "172.16.28.0/24", 154 "routes": [ 155 { 156 "dst": "0.0.0.0/0" 157 } 158 ] 159 } 160 } 161 EOT' 162 } 163 164 install_rkt 165 configure_rkt_networking 166 167 # Java 168 sudo add-apt-repository -y ppa:openjdk-r/ppa 169 sudo apt-get update 170 sudo apt-get install -y openjdk-8-jdk 171 JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")