-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfigureRemoteMachines.xml
More file actions
160 lines (150 loc) · 8.29 KB
/
ConfigureRemoteMachines.xml
File metadata and controls
160 lines (150 loc) · 8.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties/>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>#!/bin/bash
workDir=/root/WeeklyValidation
echo -en 'Configuring Remote Machines added in BaremetalMachines directory \n\n'
cd ${workDir}/baremetalMachines/
for filename in *; do
cd ${workDir}/baremetalMachines/
echo -en 'Configuring Machine ' ${filename} '\n\n'
IPbaremetal=${filename}
echo -en '\n\n'
userName=$(grep -Po '(?<=userName=).*' ${filename})
passWord=$(grep -Po '(?<=passWord=).*' ${filename})
echo -en 'Copying WeeklyValidation to ' ${IPbaremetal} ' under User ' ${userName} '\n\n'
scp -r ${workDir} ${userName}@${IPbaremetal}:
echo -en 'ssh ' ${IPbaremetal} ' to user ' ${userName} '\n\n'
ssh ${userName}@${IPbaremetal} /bin/bash <<'EOF'
cd WeeklyValidation
pwd
workdirR=`pwd`
#IPbaremetalR="$(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1)"
#IPbaremetalR=${ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/'}
IPbaremetalR=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)
userNameR=$(grep -Po '(?<=userName=).*' ${workdirR}/baremetalMachines/${IPbaremetalR})
passWordR=$(grep -Po '(?<=passWord=).*' ${workdirR}/baremetalMachines/${IPbaremetalR})
sed -i "s#USER_INSTALL_DIR=.*#USER_INSTALL_DIR=${workdirR}/IBMJAVA#g" installer.properties
echo -en '#Downloading and installing jdk as per JDK_VAL in installer.properties file\n\n'
jdk_val=$(grep -Po '(?<=JDK_VAL=).*' ${workdirR}/baremetalMachines/${IPbaremetalR})
if [ ${jdk_val} = "OPENJDK" ]
then
if [ "$(. /etc/os-release; echo $NAME)" = "Ubuntu" ]; then
echo -en 'Installing OPENJDK \n\n'
echo ${passWordR} | sudo -S apt-get -y install openjdk-8-jdk
echo -en 'Setting OpenJDK path and JAVA_HOME \n\n'
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-ppc64el
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
else
echo ${passWordR} | sudo -S yum install java-1.8.0-openjdk-devel
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
fi
elif [ ${jdk_val} = "IBMJDK" ]
then
echo -en 'Downloading and Installing IBM JDK \n\n'
rm -rf ibm-java-ppc64le-sdk*
rm -rf ibm-java-sdk*
#wget http://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/8.0.3.22/linux/ppc64le/ibm-java-ppc64le-sdk-8.0-3.22.bin
wget http://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/8.0.3.22/linux/ppc64le/ibm-java-sdk-8.0-3.22-ppc64le-archive.bin
chmod +x ibm-java-sdk-8.0-3.22-ppc64le-archive.bin
echo -en 'Installing IBMJDK as per the installation directory specified in installer.properties \n\n'
echo ${passWordR} | sudo -S ./ibm-java-sdk-8.0-3.22-ppc64le-archive.bin -i silent -f installer.properties 1>console.txt 2>&1
echo -en 'Setting IBMJDK path and JAVA_HOME \n\n'
export JAVA_HOME=$(grep -Po '(?<=USER_INSTALL_DIR=).*' ${workdirR}/baremetalMachines/${IPbaremetalR})
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
# JAVA_HOME
# echo 'pw4jenkins' | sudo -kS update-alternatives --install "/usr/bin/java" "java" "/opt/IBM/java/ibm_java_x86_64_80/" 1
# echo 'pw4jenkins' | sudo -kS chmod a+x /usr/bin/java
else
echo -en 'Please set the JDK correctly in config file and re-run \n\n'
echo -en 'VALID OPTIONS are OPENJDK and IBMJDK and are case sensitive \n\n'
exit 1
fi
export PATH=$JAVA_HOME/bin:$PATH
if [ "$(. /etc/os-release; echo $NAME)" = "Ubuntu" ]; then
echo ${passWordR} | sudo -S apt-get install -y ca-certificates-java
echo ${passWordR} | sudo -S update-ca-certificates -f
echo -en '#Installing Git\n\n'
#echo ${passWordR} | sudo -S update-alternatives --install
echo ${passWordR} | sudo -S apt-get -y install git
echo -en '#Installing R for sparkR-pkg\n\n'
echo ${passWordR} | sudo -S apt-get -y install r-base-core
echo -en '#Installing r-cran-testthat python-numpy python-scipy libblas-dev liblapack-dev python-dev python3-numpy python3-scipy python-dev gfortran libsnappy1 libsnappy-dev build-essential libstdc++6 \n\n'
echo ${passWordR} | sudo -S apt-get update
for i in r-cran-testthat python-nose python-numpy python-scipy libblas-dev liblapack-dev python-dev python3-numpy python3-scipy python-dev gfortran libsnappy1v5 libsnappy-dev libsnappy1 build-essential libstdc++6 cython; do
echo ${passWordR} | sudo -S apt-get -y install $i
done
#echo ${passWordR} | sudo -S apt-get -y install r-cran-testthat python-nose python-numpy python-scipy libblas-dev liblapack-dev python-dev python3-numpy python3-scipy python-dev gfortran libsnappy1v5 libsnappy-dev libsnappy1 build-essential libstdc++6 cython
else
#sudo -S vi /etc/yum/pluginconf.d/search-disabled-repos.conf
#echo ${passWordR} | sudo -S yum -y update
echo -en '#Installing Git\n\n'
echo ${passWordR} | sudo -S yum -y install git
echo -en '#Installing R for sparkR-pkg\n\n'
echo ${passWordR} | sudo -S yum --assumeyes -y install R
echo -en '#Installing numpy scipy gfortran snappy snappy-devel and build-essential tools \n\n'
echo ${passWordR} | sudo -S yum -y groupinstall 'Development Tools'
for j in snappy snappy-devel zip r-cran-testthat numpy python34-devel python34-numpy python34-scipy python-devel scipy Cython; do
echo ${passWordR} | sudo -S yum -y install $j
done
fi
echo -en '#Downloading and Installing Maven 3.3.9\n\n'
rm -rf apache-maven-3.*
#wget http://apache.mirrors.lucidnetworks.net/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
wget http://mirror.fibergrid.in/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
mkdir -p maven
mv apache-maven-3.3.9-bin.tar.gz maven/
cd maven/
tar -xzvf apache-maven-3.3.9-bin.tar.gz
echo -en '#Setting up Path for Maven \n\n'
export M2_HOME=${workdirR}/maven/apache-maven-3.3.9
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms512m -Xmx2048m"
export PATH=$M2:$PATH
echo -en '#Setting up Leveldb and Leveldbjni \n\n'
cd ${workdirR}
git clone https://github.com/ibmsoe/leveldbjni
git clone https://github.com/ibmsoe/leveldb
export SNAPPY_HOME=/usr/lib
export LEVELDB_HOME=`cd leveldb; pwd`
export LEVELDBJNI_HOME=`cd leveldbjni; pwd`
cd ${LEVELDB_HOME}
export LIBRARY_PATH=${SNAPPY_HOME}
export C_INCLUDE_PATH=${LIBRARY_PATH}
export CPLUS_INCLUDE_PATH=${LIBRARY_PATH}
git apply ../leveldbjni/leveldb.patch
make libleveldb.a
cd ${LEVELDBJNI_HOME}
mvn clean install -DskipTests -P download -Plinux64,all
cd ${workdirR}
echo -en 'Setting up OpenBLAS \n\n'
git clone https://github.com/xianyi/OpenBLAS
cd OpenBLAS
make FC=gfortran
make PREFIX=${workdirR}/openblas install
echo -e "${workdirR}/openblas/lib" > openblas.conf
echo ${passWordR} | sudo -S mv openblas.conf /etc/ld.so.conf.d/
echo ${passWordR} | sudo -S ldconfig
EOF
done
now=$(date +"%d-%m-%Y_%H:%M:%S")
cp /var/lib/jenkins/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/log ${workDir}/logs/${JOB_NAME}/${JOB_NAME}_${now}.log
exit 0</command>
</hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>