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::")