github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/e2e/terraform/packer/linux/setup.sh (about)

     1  #!/bin/bash
     2  
     3  set -e
     4  
     5  # Disable interactive apt prompts
     6  export DEBIAN_FRONTEND=noninteractive
     7  
     8  sudo mkdir -p /ops/shared
     9  sudo chown -R ubuntu:ubuntu /ops/shared
    10  
    11  cd /ops
    12  
    13  CONSULVERSION=1.7.3
    14  CONSULDOWNLOAD=https://releases.hashicorp.com/consul/${CONSULVERSION}/consul_${CONSULVERSION}_linux_amd64.zip
    15  CONSULCONFIGDIR=/etc/consul.d
    16  CONSULDIR=/opt/consul
    17  
    18  VAULTVERSION=1.1.1
    19  VAULTDOWNLOAD=https://releases.hashicorp.com/vault/${VAULTVERSION}/vault_${VAULTVERSION}_linux_amd64.zip
    20  VAULTCONFIGDIR=/etc/vault.d
    21  VAULTDIR=/opt/vault
    22  
    23  # Will be overwritten by sha specified
    24  NOMADVERSION=0.9.1
    25  NOMADDOWNLOAD=https://releases.hashicorp.com/nomad/${NOMADVERSION}/nomad_${NOMADVERSION}_linux_amd64.zip
    26  NOMADCONFIGDIR=/etc/nomad.d
    27  NOMADDIR=/opt/nomad
    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 awscli nfs-common
    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  # Install sockaddr
    40  aws s3 cp "s3://nomad-team-test-binary/tools/sockaddr_linux_amd64" /tmp/sockaddr
    41  sudo mv /tmp/sockaddr /usr/local/bin
    42  sudo chmod +x /usr/local/bin/sockaddr
    43  sudo chown root:root /usr/local/bin/sockaddr
    44  
    45  # Disable the firewall
    46  sudo ufw disable || echo "ufw not installed"
    47  
    48  echo "Install Consul"
    49  curl -L -o /tmp/consul.zip $CONSULDOWNLOAD
    50  sudo unzip /tmp/consul.zip -d /usr/local/bin
    51  sudo chmod 0755 /usr/local/bin/consul
    52  sudo chown root:root /usr/local/bin/consul
    53  
    54  echo "Configure Consul"
    55  sudo mkdir -p $CONSULCONFIGDIR
    56  sudo chmod 755 $CONSULCONFIGDIR
    57  sudo mkdir -p $CONSULDIR
    58  sudo chmod 755 $CONSULDIR
    59  
    60  echo "Install Vault"
    61  curl -L -o /tmp/vault.zip $VAULTDOWNLOAD
    62  sudo unzip /tmp/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  echo "Configure Vault"
    67  sudo mkdir -p $VAULTCONFIGDIR
    68  sudo chmod 755 $VAULTCONFIGDIR
    69  sudo mkdir -p $VAULTDIR
    70  sudo chmod 755 $VAULTDIR
    71  
    72  echo "Install Nomad"
    73  curl -L -o /tmp/nomad.zip $NOMADDOWNLOAD
    74  sudo unzip /tmp/nomad.zip -d /usr/local/bin
    75  sudo chmod 0755 /usr/local/bin/nomad
    76  sudo chown root:root /usr/local/bin/nomad
    77  
    78  echo "Configure Nomad"
    79  sudo mkdir -p $NOMADCONFIGDIR
    80  sudo chmod 755 $NOMADCONFIGDIR
    81  sudo mkdir -p $NOMADDIR
    82  sudo chmod 755 $NOMADDIR
    83  
    84  echo "Install Docker"
    85  distro=$(lsb_release -si | tr '[:upper:]' '[:lower:]')
    86  sudo apt-get install -y apt-transport-https ca-certificates gnupg2
    87  curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    88  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/${distro} $(lsb_release -cs) stable"
    89  sudo apt-get update
    90  sudo apt-get install -y docker-ce
    91  
    92  echo "Install Java"
    93  sudo add-apt-repository -y ppa:openjdk-r/ppa
    94  sudo apt-get update
    95  sudo apt-get install -y openjdk-8-jdk
    96  JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
    97  
    98  echo "Install Spark"
    99  sudo wget -P /ops/examples/spark https://nomad-spark.s3.amazonaws.com/spark-2.2.0-bin-nomad-0.7.0.tgz
   100  sudo tar -xvf /ops/examples/spark/spark-2.2.0-bin-nomad-0.7.0.tgz --directory /ops/examples/spark
   101  sudo mv /ops/examples/spark/spark-2.2.0-bin-nomad-0.7.0 /usr/local/bin/spark
   102  sudo chown -R root:root /usr/local/bin/spark
   103  
   104  echo "Install HDFS CLI"
   105  HADOOP_VERSION=2.7.7
   106  HADOOPCONFIGDIR=/usr/local/$HADOOP_VERSION/etc/hadoop
   107  sudo mkdir -p "$HADOOPCONFIGDIR"
   108  
   109  wget -O - http://apache.mirror.iphh.net/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz | sudo tar xz -C /usr/local/
   110  
   111  # note this 'EOF' syntax avoids expansion in the heredoc
   112  sudo tee "$HADOOPCONFIGDIR/core-site.xml" << 'EOF'
   113  <?xml version="1.0" encoding="UTF-8"?>
   114  <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
   115  <configuration>
   116      <property>
   117          <name>fs.defaultFS</name>
   118          <value>hdfs://hdfs.service.consul/</value>
   119      </property>
   120  </configuration>
   121  EOF
   122  
   123  echo "Configure user shell"
   124  sudo tee -a /home/ubuntu/.bashrc << 'EOF'
   125  IP_ADDRESS=$(/usr/local/bin/sockaddr eval 'GetPrivateIP')
   126  export CONSUL_RPC_ADDR=$IP_ADDRESS:8400
   127  export CONSUL_HTTP_ADDR=$IP_ADDRESS:8500
   128  export VAULT_ADDR=http://$IP_ADDRESS:8200
   129  export NOMAD_ADDR=http://$IP_ADDRESS:4646
   130  export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
   131  
   132  # Update PATH
   133  export PATH=$PATH:/usr/local/bin/spark/bin:/usr/local/$HADOOP_VERSION/bin
   134  EOF