diff --git a/e2e/terraform/compute.tf b/e2e/terraform/compute.tf index 65a44897d..473d1fb16 100644 --- a/e2e/terraform/compute.tf +++ b/e2e/terraform/compute.tf @@ -53,17 +53,9 @@ resource "aws_instance" "server" { private_key = "${module.keys.private_key_pem}" } } - provisioner "remote-exec" { inline = [ - "aws s3 cp s3://nomad-team-test-binary/builds-oss/${var.nomad_sha}.tar.gz nomad.tar.gz", - "sudo cp /ops/shared/config/nomad.service /etc/systemd/system/nomad.service", - "sudo tar -zxvf nomad.tar.gz -C /usr/local/bin/", - "sudo cp /tmp/server.hcl /etc/nomad.d/nomad.hcl", - "sudo chmod 0755 /usr/local/bin/nomad", - "sudo chown root:root /usr/local/bin/nomad", - "sudo systemctl enable nomad.service", - "sudo systemctl start nomad.service", + "/ops/shared/config/provision-server.sh ${var.nomad_sha}", ] connection { @@ -111,29 +103,9 @@ resource "aws_instance" "client" { provisioner "remote-exec" { inline = [ - "aws s3 cp s3://nomad-team-test-binary/builds-oss/${var.nomad_sha}.tar.gz nomad.tar.gz", - "sudo tar -zxvf nomad.tar.gz -C /usr/local/bin/", - "sudo cp /ops/shared/config/nomad.service /etc/systemd/system/nomad.service", - "sudo cp /tmp/client.hcl /etc/nomad.d/nomad.hcl", - "sudo chmod 0755 /usr/local/bin/nomad", - "sudo chown root:root /usr/local/bin/nomad", - - # Setup Host Volumes - "sudo mkdir /tmp/data", - - # Run Nomad Service - "sudo systemctl enable nomad.service", - - "sudo systemctl start nomad.service", - - # Install CNI plugins - "sudo mkdir -p /opt/cni/bin", - - "wget -q -O - https://github.com/containernetworking/plugins/releases/download/v0.8.2/cni-plugins-linux-amd64-v0.8.2.tgz | sudo tar -C /opt/cni/bin -xz", + "/ops/shared/config/provision-client.sh ${var.nomad_sha}", ] - # Setup host volumes - connection { user = "ubuntu" private_key = "${module.keys.private_key_pem}" diff --git a/e2e/terraform/shared/config/README.md b/e2e/terraform/shared/config/README.md new file mode 100644 index 000000000..c6e0f435c --- /dev/null +++ b/e2e/terraform/shared/config/README.md @@ -0,0 +1,2 @@ +Scripts installed by Packer into our base images, to be run during +`remote-exec` provisioning by Terraform. diff --git a/e2e/terraform/shared/config/provision-client.sh b/e2e/terraform/shared/config/provision-client.sh new file mode 100755 index 000000000..316f8d470 --- /dev/null +++ b/e2e/terraform/shared/config/provision-client.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# installs and configures the desired build of Nomad as a server +set -o errexit +set -o nounset + +nomad_sha=$1 + +# download +aws s3 cp s3://nomad-team-test-binary/builds-oss/${nomad_sha}.tar.gz nomad.tar.gz + +# unpack and install +sudo tar -zxvf nomad.tar.gz -C /usr/local/bin/ +sudo chmod 0755 /usr/local/bin/nomad +sudo chown root:root /usr/local/bin/nomad + +# install config file +sudo cp /tmp/client.hcl /etc/nomad.d/nomad.hcl + +# Setup Host Volumes +sudo mkdir /tmp/data + +# Install CNI plugins +sudo mkdir -p /opt/cni/bin +wget -q -O - \ + https://github.com/containernetworking/plugins/releases/download/v0.8.2/cni-plugins-linux-amd64-v0.8.2.tgz \ + | sudo tar -C /opt/cni/bin -xz + +# enable as a systemd service +sudo cp /ops/shared/config/nomad.service /etc/systemd/system/nomad.service +sudo systemctl enable nomad.service +sudo systemctl start nomad.service diff --git a/e2e/terraform/shared/config/provision-server.sh b/e2e/terraform/shared/config/provision-server.sh new file mode 100755 index 000000000..6e0e5983a --- /dev/null +++ b/e2e/terraform/shared/config/provision-server.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# installs and configures the desired build of Nomad as a server +set -o errexit +set -o nounset + +nomad_sha=$1 + +# download +aws s3 cp s3://nomad-team-test-binary/builds-oss/${nomad_sha}.tar.gz nomad.tar.gz + +# unpack and install +sudo tar -zxvf nomad.tar.gz -C /usr/local/bin/ +sudo chmod 0755 /usr/local/bin/nomad +sudo chown root:root /usr/local/bin/nomad + +# install config file +sudo cp /tmp/server.hcl /etc/nomad.d/nomad.hcl + +# enable as a systemd service +sudo cp /ops/shared/config/nomad.service /etc/systemd/system/nomad.service +sudo systemctl enable nomad.service +sudo systemctl start nomad.service diff --git a/e2e/terraform/shared/scripts/client.sh b/e2e/terraform/shared/scripts/client.sh old mode 100644 new mode 100755 diff --git a/e2e/terraform/shared/scripts/server.sh b/e2e/terraform/shared/scripts/server.sh old mode 100644 new mode 100755 diff --git a/e2e/terraform/shared/scripts/setup.sh b/e2e/terraform/shared/scripts/setup.sh old mode 100644 new mode 100755