blob: 6a7f29c5ac4ac733156c8b2c01dabebd46368106 [file] [log] [blame]
#!/bin/sh
#
# Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0,
# or the Eclipse Distribution License v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
# This script file is processed with Maven resource filtering
# so variables expansion must be used with respect to defined
# maven POM properties.
# Docker image installation file
# Print timestamp and message to sdtout
# Arguments:
# $1 First message to be printed
# $2 Second message to be printed
# ...
print() {
echo '['`date '+%d.%m.%Y %H:%M:%S'`'] '$@
}
JENKINS_USER='${build.user.name}'
JENKINS_UID='${build.user.uid}'
JENKINS_GROUP='${build.group.name}'
JENKINS_GID='${build.group.gid}'
INSTALL_JAVA='${install.java}'
print "Adding Jenkins group ${JENKINS_GROUP}:${JENKINS_GID}"
groupadd -g "${JENKINS_GID}" "${JENKINS_GROUP}"
print "Adding Jenkins user ${JENKINS_USER}:${JENKINS_UID}"
useradd -u "${JENKINS_UID}" -g "${JENKINS_GID}" \
-s '${build.user.shell}' -c '${build.user.comment}' \
-m "${JENKINS_USER}"
print "Updating the system"
echo '--------------------------------------------------------------------------------'
yum -y update
yum -y install git
echo '--------------------------------------------------------------------------------'
print "Configuring Java tools in ${INSTALL_JAVA}"
JDK_PATH=''
for i in `ls ${INSTALL_JAVA} | grep 'jdk-'`; do
JDK_PATH="${JDK_PATH}:${INSTALL_JAVA}/${i}/bin"
done
print " - Open JDK ${JDK_PATH}"
ANT_PATH=''
for i in `ls ${INSTALL_JAVA} | grep '\-ant-'`; do
ANT_PATH="${ANT_PATH}:${INSTALL_JAVA}/${i}/bin"
done
print " - Apache Ant ${ANT_PATH}"
MVN_PATH=''
for i in `ls ${INSTALL_JAVA} | grep '\-maven-'`; do
MVN_PATH="${MVN_PATH}:${INSTALL_JAVA}/${i}/bin"
done
print " - Apache Maven ${MVN_PATH}"
if [ -n "${JDK_PATH}" ]; then
TOOLS_PATH="${JDK_PATH}"
else
TOOLS_PATH=''
fi
if [ -n "${ANT_PATH}" ]; then
TOOLS_PATH="${TOOLS_PATH}${ANT_PATH}"
fi
if [ -n "${MVN_PATH}" ]; then
TOOLS_PATH="${TOOLS_PATH}${MVN_PATH}"
fi
print " - Adding shell profile PATH ${TOOLS_PATH}"
echo '# Java tools path
PATH="${PATH}'"${TOOLS_PATH}"'"
' > /etc/profile.d/java_tools.sh
print "Fixing startup scripts permissions"
cd /opt/bin && chmod uog+x mongo-start.sh mongo-stop.sh mysql-start.sh mysql-stop.sh
print "Configuring MySQL 8 yum repository"
echo '--------------------------------------------------------------------------------'
cd /tmp && yum -y localinstall '${mysql.pkg}'
yum -y module disable mysql
echo '--------------------------------------------------------------------------------'
print "Installing MySQL 8"
echo '--------------------------------------------------------------------------------'
yum -y install sudo mysql-community-server
groupmod -o -g "${JENKINS_GID}" mysql
usermod -o -g "${JENKINS_GID}" -u "${JENKINS_UID}" mysql
chown -v mysql:mysql /var/log/mysqld.log
chown -v -R mysql:mysql /var/lib/mysql-files /var/lib/mysql-keyring /var/run/mysqld
mysqld --initialize --user=mysql
echo '--------------------------------------------------------------------------------'
cat /var/log/mysqld.log
echo '--------------------------------------------------------------------------------'
print "Setting up MySQL 8 for tests"
echo '--------------------------------------------------------------------------------'
#Addtional permanent settings in configuration file
#To disable check for some stored functions
echo 'log_bin_trust_function_creators = 1
' >> /etc/my.cnf
/opt/bin/mysql-start.sh
ROOT_PWD=`cat /var/log/mysqld.log | grep 'A temporary password is generated for root' | sed -e 's/^.*localhost: *//'`
echo "
ALTER USER 'root'@'localhost' IDENTIFIED BY '${db.root.pwd}';
CREATE DATABASE ${mysql.database};
FLUSH PRIVILEGES;
" | mysql -v -u root --connect-expired-password --password="${ROOT_PWD}"
if [ '${db.user}' != 'root' ]; then
echo "
CREATE USER '${db.user}'@'localhost' IDENTIFIED BY '${db.pwd}';
GRANT ALL PRIVILEGES ON ${mysql.database}.* TO '${db.user}'@'localhost';
FLUSH PRIVILEGES;
" | mysql -v -u root --password='${db.root.pwd}'
fi
/opt/bin/mysql-stop.sh
echo '--------------------------------------------------------------------------------'
print "Configuring Mongo DB 3 yum repository"
echo '--------------------------------------------------------------------------------'
echo '[Mongodb]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/3.6/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
' > /etc/yum.repos.d/mongodb.repo
chmod -v u=rw,og=r /etc/yum.repos.d/mongodb.repo
echo '--------------------------------------------------------------------------------'
print "Installing Mongo DB 3"
echo '--------------------------------------------------------------------------------'
yum install -y mongodb-org
groupmod -o -g "${JENKINS_GID}" mongod
usermod -o -g "${JENKINS_GID}" -u "${JENKINS_UID}" mongod
chown -v -R mongod:mongod /var/lib/mongo /var/log/mongodb /var/run/mongodb
echo '--------------------------------------------------------------------------------'
print "Post install cleanup"
echo '--------------------------------------------------------------------------------'
yum -y clean all
rm -vrf /var/cache/yum