Moves packer installation to the common script. No issue #
[arvados-dev.git] / jenkins / packer-images / jenkins-image-common.sh
index 460e22ca9299a2ebb0e84eddb47eee71cdfa7106..47ff56d814d5fff9e4ffd9609279561910496c20 100755 (executable)
@@ -10,21 +10,50 @@ sudo su -c "echo ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEA3nzI6T6Lpd5xFoRewcx91Dv9sUz
 sudo su -c "echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCfRJenfxGPFuJ/W2KUs6Wf0waiFsSaxd8WUTFXi4ophH2qkUMxd8xvoex/Z+Iq1fA8QCe4DfFnhUOMViP9bBB6+Va/x1Jx521P+DfN8ILqM2kcug0OoC4c5gTyFecJaKIyX6jMeidQThkd/UPHeTdicOnMqUTKIksQVXzIxzve6MQxbZts1viw0VgcO2t16F9LA+JaB8ONOTPfBzJ/BzZRiztfzQ0qW9rpX23icHtv494QrHZtgpvXltB/fy+YUZ80QJH1Iul4xnNL/27/MtZempJSSzvzlZxMIpRbe9F4qn859DZMGjUnoVMQ5v6Aw7fQRm1iMVa++i6i5X0bAI6xR6eIQzPgGdu+ymlanH0TO+5aOhOcuELyL81q2VBl01SBCfZ2OxX2ZL1HCLMe7vtxl8qxbO7Ur/Cq6j6/t7Ghb/jSnxY68rNm7MhOc5bcWL6vPxjmDMPzpk1bKL0lfEOoI4Dij+Rb0p8glC2399lZrMUTspf+/Qz6bP6ev/Z2ZJDeugRBQeLcMdu5dg1CzIKf+x8n3IbSyu5w/ML9BGq6vXpViVVkZ73DYo1BipnUVpzZ+wVGk+JdhoBFD3wlZYm/rDMiMtKrtcYhvPrvp3EhM+vBbCkcAKY40mcVuQD8BhPe5za9vlqjTKHOUTOGLkI4RAiPF3kwjXwELyxuOIki5w== javier@agnes RSA-4096, 20170323" >> /home/jenkins/.ssh/authorized_keys
 sudo su -c "echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDH8swFWEfEfHhA+C5ezV8SXO/PkzGD1SH5VAQP/XDIrtnUocBZ3CE30lSyqYJI/EVKVqVa/ICQ0YpUwiMK6+3Jr9QQJwVyTmPji2nY3InL+1XAucN6HFJGKY9bYSsNOuKooj22GwBWw3gfJNLg/8qtpVykEq1yRpyh6pGsXT+J5nUZ723vZZTh//sxdN4CM8D8zoDgHc4RbL+zvESnCDrDbtMhg2u1h14RWiFOBAnzYuWcgtVDy2HA9iS0hJFB2UOV50byXLrEetxJ84PTwRsV2irq1y63g58VxwYOUrVZ08MY5qFvHExBjPqeqhRMzE7GufWM5F1CcUuGviOGFWfqMnfG4VOirPkFtRoK2oKRxH+NVPoUXWWxItJQ1dZ9hLDDWgAbxAvLS4Nnl2hvOVAbC7RVpXfoAhIPpL48oS1UprbsZIMxk2ZmRSJB1ykD3aLUvoO4zoD6xADt8uLiPvVYgFWUy1doLxHZqdY1Omc91owgQVPKvQ4vhqsJehQl4ZDS+O+8S7aC5m8sQ/V+NqiiXLH22vN58K7qNrkHWdb1n+rhilMbA5zp3cSKBgwmmNdupyPkJOKvf3IS7i4El+c8RFmRQv4FzGrdjGXAP8LPtt1dWPgHTFYjmrkOHLmfWM/y8cuyPWW/HEp3Y/msPQRlS3Gymce//vAWgN4T9yN46w== lucas@notebook" >> /home/jenkins/.ssh/authorized_keys
 
-echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee /etc/apt/sources.list.d/buster-backports.list
-
 # Install a few dependency packages
-sudo su -c "apt-get update"
-sudo su -c "DEBIAN_FRONTEND=noninteractive apt install -y git netcat default-jdk"
+# First, let's figure out the OS we're working on
+OS_ID=$(grep ^ID= /etc/os-release |cut -f 2 -d \" | cut -f 2 -d = )
+echo "Detected distro: ${OS_ID}"
+
+case ${OS_ID} in
+  centos)
+    PREINSTALL_CMD="/bin/true"
+    INSTALL_CMD="yum install -y"
+    POSTINSTALL_CMD="/bin/true"
+    PKGS="git nmap-ncat java-11-openjdk"
+    ;;
+  debian|ubuntu)
+    if [ ${OS_ID} = "debian" ]; then
+      echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee /etc/apt/sources.list.d/buster-backports.list
+    fi
+    PREINSTALL_CMD="DEBIAN_FRONTEND=noninteractive apt-get update"
+    INSTALL_CMD="DEBIAN_FRONTEND=noninteractive apt-get install -y"
+    POSTINSTALL_CMD="DEBIAN_FRONTEND=noninteractive apt-get purge --autoremove -y"
+    # SUFFIX packages with - to remove them
+    # Remove unattended-upgrades so that it doesn't interfere with our nodes at startup
+    PKGS="git netcat-traditional default-jdk unattended-upgrades-"
+    ;;
+esac
+
+sudo su -c "${PREINSTALL_CMD}"
+sudo su -c "${INSTALL_CMD} ${PKGS}"
+sudo su -c "${POSTINSTALL_CMD}"
 
 # create a reference repository (bare git repo)
 # jenkins will use this to speed up the checkout for each job
 cd /usr/src
-sudo git clone --mirror https://git.arvados.org/arvados.git
+sudo git clone --mirror git://git.arvados.org/arvados.git
 sudo chown jenkins:jenkins arvados.git -R
 
 # Jenkins will use this script to determine when the node is ready for use
 sudo mv /tmp/node-ready.sh /usr/local/bin/
 
+# Packer install
+cd /tmp
+wget https://releases.hashicorp.com/packer/1.8.0/packer_1.8.0_linux_amd64.zip
+unzip packer_1.8.0_linux_amd64.zip packer
+sudo mv packer /usr/local/bin/
+
 # make sure sshd does not start on boot (yes, this is nasty). Jenkins will call
 # /tmp/node-ready.sh as a GCP `startup script`, which gets run on node start.
 # That script loops until it can connect to git.arvados.org, and then starts