github.com/djenriquez/nomad-1@v0.8.1/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.0.6
    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=0.9.6
    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.7.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  HADOOP_VERSION=2.7.5
    28  
    29  # Dependencies
    30  sudo apt-get install -y software-properties-common
    31  sudo apt-get update
    32  sudo apt-get install -y unzip tree redis-tools jq curl tmux
    33  
    34  # Numpy (for Spark)
    35  sudo apt-get install -y python-setuptools
    36  sudo easy_install pip
    37  sudo pip install numpy
    38  
    39  # Disable the firewall
    40  
    41  sudo ufw disable || echo "ufw not installed"
    42  
    43  # Consul
    44  
    45  curl -L $CONSULDOWNLOAD > consul.zip
    46  
    47  ## Install
    48  sudo unzip consul.zip -d /usr/local/bin
    49  sudo chmod 0755 /usr/local/bin/consul
    50  sudo chown root:root /usr/local/bin/consul
    51  
    52  ## Configure
    53  sudo mkdir -p $CONSULCONFIGDIR
    54  sudo chmod 755 $CONSULCONFIGDIR
    55  sudo mkdir -p $CONSULDIR
    56  sudo chmod 755 $CONSULDIR
    57  
    58  # Vault
    59  
    60  curl -L $VAULTDOWNLOAD > vault.zip
    61  
    62  ## Install
    63  sudo unzip vault.zip -d /usr/local/bin
    64  sudo chmod 0755 /usr/local/bin/vault
    65  sudo chown root:root /usr/local/bin/vault
    66  
    67  ## Configure
    68  sudo mkdir -p $VAULTCONFIGDIR
    69  sudo chmod 755 $VAULTCONFIGDIR
    70  sudo mkdir -p $VAULTDIR
    71  sudo chmod 755 $VAULTDIR
    72  
    73  # Nomad
    74  
    75  curl -L $NOMADDOWNLOAD > nomad.zip
    76  
    77  ## Install
    78  sudo unzip nomad.zip -d /usr/local/bin
    79  sudo chmod 0755 /usr/local/bin/nomad
    80  sudo chown root:root /usr/local/bin/nomad
    81  
    82  ## Configure
    83  sudo mkdir -p $NOMADCONFIGDIR
    84  sudo chmod 755 $NOMADCONFIGDIR
    85  sudo mkdir -p $NOMADDIR
    86  sudo chmod 755 $NOMADDIR
    87  
    88  # Docker
    89  distro=$(lsb_release -si | tr '[:upper:]' '[:lower:]')
    90  sudo apt-get install -y apt-transport-https ca-certificates gnupg2 
    91  curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    92  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/${distro} $(lsb_release -cs) stable"
    93  sudo apt-get update
    94  sudo apt-get install -y docker-ce
    95  
    96  # rkt
    97  VERSION=1.29.0
    98  DOWNLOAD=https://github.com/rkt/rkt/releases/download/v${VERSION}/rkt-v${VERSION}.tar.gz
    99  
   100  function install_rkt() {
   101  	wget -q -O /tmp/rkt.tar.gz "${DOWNLOAD}"
   102  	tar -C /tmp -xvf /tmp/rkt.tar.gz
   103  	sudo mv /tmp/rkt-v${VERSION}/rkt /usr/local/bin
   104  	sudo mv /tmp/rkt-v${VERSION}/*.aci /usr/local/bin
   105  }
   106  
   107  function configure_rkt_networking() {
   108  	sudo mkdir -p /etc/rkt/net.d
   109      sudo bash -c 'cat << EOT > /etc/rkt/net.d/99-network.conf
   110  {
   111    "name": "default",
   112    "type": "ptp",
   113    "ipMasq": false,
   114    "ipam": {
   115      "type": "host-local",
   116      "subnet": "172.16.28.0/24",
   117      "routes": [
   118        {
   119          "dst": "0.0.0.0/0"
   120        }
   121      ]
   122    }
   123  }
   124  EOT'
   125  }
   126  
   127  install_rkt
   128  configure_rkt_networking
   129  
   130  # Java
   131  sudo add-apt-repository -y ppa:openjdk-r/ppa
   132  sudo apt-get update 
   133  sudo apt-get install -y openjdk-8-jdk
   134  JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
   135  
   136  # Spark
   137  sudo wget -P /ops/examples/spark https://s3.amazonaws.com/nomad-spark/spark-2.2.0-bin-nomad-0.7.0.tgz
   138  sudo tar -xvf /ops/examples/spark/spark-2.2.0-bin-nomad-0.7.0.tgz --directory /ops/examples/spark
   139  sudo mv /ops/examples/spark/spark-2.2.0-bin-nomad-0.7.0 /usr/local/bin/spark
   140  sudo chown -R root:root /usr/local/bin/spark
   141  
   142  # Hadoop (to enable the HDFS CLI)
   143  wget -O - http://apache.mirror.iphh.net/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz | sudo tar xz -C /usr/local/