github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/terraform/shared/scripts/setup.sh (about) 1 #!/usr/bin/env 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.12.2 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.11.0 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=1.3.1 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.29.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 gnupg-curl 36 37 # Disable the firewall 38 39 sudo ufw disable || echo "ufw not installed" 40 41 # Consul 42 43 curl -L $CONSULDOWNLOAD > consul.zip 44 45 ## Install 46 sudo unzip consul.zip -d /usr/local/bin 47 sudo chmod 0755 /usr/local/bin/consul 48 sudo chown root:root /usr/local/bin/consul 49 50 ## Configure 51 sudo mkdir -p $CONSULCONFIGDIR 52 sudo chmod 755 $CONSULCONFIGDIR 53 sudo mkdir -p $CONSULDIR 54 sudo chmod 755 $CONSULDIR 55 56 # Vault 57 58 curl -L $VAULTDOWNLOAD > vault.zip 59 60 ## Install 61 sudo unzip vault.zip -d /usr/local/bin 62 sudo chmod 0755 /usr/local/bin/vault 63 sudo chown root:root /usr/local/bin/vault 64 65 ## Configure 66 sudo mkdir -p $VAULTCONFIGDIR 67 sudo chmod 755 $VAULTCONFIGDIR 68 sudo mkdir -p $VAULTDIR 69 sudo chmod 755 $VAULTDIR 70 71 # Nomad 72 73 curl -L $NOMADDOWNLOAD > nomad.zip 74 75 ## Install 76 sudo unzip nomad.zip -d /usr/local/bin 77 sudo chmod 0755 /usr/local/bin/nomad 78 sudo chown root:root /usr/local/bin/nomad 79 80 ## Configure 81 sudo mkdir -p $NOMADCONFIGDIR 82 sudo chmod 755 $NOMADCONFIGDIR 83 sudo mkdir -p $NOMADDIR 84 sudo chmod 755 $NOMADDIR 85 86 # Consul Template 87 88 curl -L $CONSULTEMPLATEDOWNLOAD > consul-template.zip 89 90 ## Install 91 sudo unzip consul-template.zip -d /usr/local/bin 92 sudo chmod 0755 /usr/local/bin/consul-template 93 sudo chown root:root /usr/local/bin/consul-template 94 95 ## Configure 96 sudo mkdir -p $CONSULTEMPLATECONFIGDIR 97 sudo chmod 755 $CONSULTEMPLATECONFIGDIR 98 sudo mkdir -p $CONSULTEMPLATEDIR 99 sudo chmod 755 $CONSULTEMPLATEDIR 100 101 102 # Docker 103 distro=$(lsb_release -si | tr '[:upper:]' '[:lower:]') 104 sudo apt-get install -y apt-transport-https ca-certificates gnupg2 105 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - 106 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/${distro} $(lsb_release -cs) stable" 107 sudo apt-get update 108 sudo apt-get install -y docker-ce 109 110 # Needs testing, updating and fixing 111 if [[ ! -z ${INSTALL_NVIDIA_DOCKER+x} ]]; then 112 113 # Install official NVIDIA driver package 114 # This is why we added gnupg-curl, otherwise, the following fails with "gpgkeys: protocol `https' not supported" 115 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/3bf863cc.pub 116 sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list' 117 sudo apt-get update && sudo apt-get install -y --no-install-recommends --allow-unauthenticated linux-headers-generic dkms cuda-drivers 118 119 # Install nvidia-docker and nvidia-docker-plugin 120 # from: https://github.com/NVIDIA/nvidia-docker#ubuntu-140416041804-debian-jessiestretch 121 wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb 122 sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb 123 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - 124 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 125 curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ 126 sudo tee /etc/apt/sources.list.d/nvidia-docker.list 127 128 sudo apt-get update 129 sudo apt-get install -y --allow-unauthenticated nvidia-docker2 130 fi 131 132 # rkt 133 # Note: rkt has been ended and archived. This should likely be removed. 134 # See https://github.com/rkt/rkt/issues/4024 135 VERSION=1.30.0 136 DOWNLOAD=https://github.com/rkt/rkt/releases/download/v${VERSION}/rkt-v${VERSION}.tar.gz 137 138 function install_rkt() { 139 wget -q -O /tmp/rkt.tar.gz "${DOWNLOAD}" 140 tar -C /tmp -xvf /tmp/rkt.tar.gz 141 sudo mv /tmp/rkt-v${VERSION}/rkt /usr/local/bin 142 sudo mv /tmp/rkt-v${VERSION}/*.aci /usr/local/bin 143 } 144 145 function configure_rkt_networking() { 146 sudo mkdir -p /etc/rkt/net.d 147 sudo bash -c 'cat << EOT > /etc/rkt/net.d/99-network.conf 148 { 149 "name": "default", 150 "type": "ptp", 151 "ipMasq": false, 152 "ipam": { 153 "type": "host-local", 154 "subnet": "172.16.28.0/24", 155 "routes": [ 156 { 157 "dst": "0.0.0.0/0" 158 } 159 ] 160 } 161 } 162 EOT' 163 } 164 165 install_rkt 166 configure_rkt_networking 167 168 # Java 169 sudo add-apt-repository -y ppa:openjdk-r/ppa 170 sudo apt-get update 171 sudo apt-get install -y openjdk-8-jdk 172 JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")