blob: 8026e57742aef3809bcc4a93fce93fe3d4cba613 [file] [log] [blame]
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -o nounset
set -o errexit
set -o pipefail
set -o xtrace
# Global variables
DPKG_LOCK="/var/lib/dpkg/lock-frontend"
DOCKER_VERSION="5:20.10.20~3-0~ubuntu-bionic"
DOCKER_COMPOSE_URL="https://github.com/docker/compose/releases/download"
DOCKER_COMPOSE_VERSION="1.29.2"
# Wait for other apt process to finish by checking the dpkg lock file.
try=0
while sudo lsof ${DPKG_LOCK} > /dev/null 2>&1 ; do
echo "DPKG file locked: ${DPKG_LOCK}."
echo " Waiting for another pkg instalaltion process to finish ..."
sleep 10
if [[ ${try} -gt 60 ]] ; then
echo "ERROR: Max number of re-tries reached, exiting..."
exit 1
fi
try=$((try + 1))
done
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
apt-transport-https \
lsb-release
curl -sSL https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
set +e && sudo apt-get purge -y google-cloud-sdk lxc-docker && set -e
sudo apt-get install -y --no-install-recommends \
aptitude \
ca-certificates \
cgroupfs-mount \
docker-ce=${DOCKER_VERSION} \
docker-ce-cli=${DOCKER_VERSION} \
git \
google-chrome-stable \
htop \
jq \
less \
lsof \
net-tools \
python3 \
python3-pip \
rsync \
tmux \
unzip \
vim
# Get correct docker-compose version required for geode-AcceptanceTest
sudo curl -L "${DOCKER_COMPOSE_URL}/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Increase number of Max threads that infra user (UserTasksMax) and systemd (DefaultTasksMax) can create.
# This is required for Geode UpgradeTest to avoid error:
# java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
# todo: This should be done during image creation
sudo sed -i 's/.*DefaultTasksMax=.*/DefaultTasksMax=infinity/g' /etc/systemd/system.conf
sudo sed -i 's/.*UserTasksMax=.*/UserTasksMax=infinity/g' /etc/systemd/logind.conf
sudo systemctl set-property user-$(id -u infra).slice TasksMax=infinity
sudo systemctl daemon-reload
sudo systemctl restart systemd-logind.service
sudo cp -R /etc/alternatives /etc/keep-alternatives
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
openjdk-8-jdk \
openjdk-11-jdk \
openjdk-17-jdk
sudo rm -rf /etc/alternatives
sudo mv /etc/keep-alternatives /etc/alternatives
docker pull ${GEODE_DOCKER_IMAGE}
sudo curl -Lo /usr/local/bin/dunit-progress https://github.com/jdeppe-pivotal/progress-util/releases/download/0.2/progress.linux
sudo chmod +x /usr/local/bin/dunit-progress
wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip
sudo sudo rm -rf /opt/selenium/chromedriver
sudo unzip /tmp/chromedriver_linux64.zip -d /opt/selenium
rm /tmp/chromedriver_linux64.zip
sudo mv /opt/selenium/chromedriver /opt/selenium/chromedriver-${CHROME_DRIVER_VERSION}
sudo chmod 755 /opt/selenium/chromedriver-${CHROME_DRIVER_VERSION}
sudo ln -fs /opt/selenium/chromedriver-${CHROME_DRIVER_VERSION} /usr/bin/chromedriver
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*