|
1 |
#!/bin/bash -x
|
|
2 |
|
|
3 |
# Requirements:
|
|
4 |
# 1) for the commands executed by this script on the remote server the user jenkins
|
|
5 |
# (requires to be member of the group 'cdm' ?still true?) and needs the following permissions in
|
|
6 |
# sudoers:
|
|
7 |
#
|
|
8 |
# | # User alias specification
|
|
9 |
# | User_Alias CDMUSERS = jenkins
|
|
10 |
# |
|
|
11 |
# | #Cmnd alias specification
|
|
12 |
# | Cmnd_Alias CDMSERVER = /bin/cp -f cdm-server*.jar /opt/cdmserver/, /etc/init.d/cdmserver *, /bin/rm -f /opt/cdmserver/cdm-server.jar, /bin/ln -s cdm-server*.jar cdm-server.jar, /bin/rm -rf /var/lib/cdmserver/*, /bin/mv /var/lib/cdmserver/*, /bin/chmod -R 775 /var/lib/cdmserver/*, /bin/chown -R * /var/lib/cdmserver/*
|
|
13 |
# | # User privilege specification
|
|
14 |
# | CDMUSERS ALL=(ALL)NOPASSWD: CDMSERVER
|
|
15 |
#
|
|
16 |
# 2) the user executing this script (e.g. jenkins) must be allowed to ssh into the $REMOTE_SERVER
|
|
17 |
# via public key authentication
|
|
18 |
#
|
|
19 |
# 3) /opt/cdmserver/.cdmLibrary/remote-webapp/index must be a symlink to the REMOTE_INDEX_CONTAINER
|
|
20 |
#
|
|
21 |
# 4) the REMOTE_INDEX_CONTAINER folder must have the permissions 775 for cdm:cdm
|
|
22 |
# fix this:
|
|
23 |
# sudo chown -R cdm:cdm $REMOTE_INDEX_CONTAINER
|
|
24 |
# sudo chmod -R 775 $REMOTE_INDEX_CONTAINER
|
|
25 |
|
|
26 |
if [ -z "${REMOTE_INDEX_CONTAINER}" ]; then
|
|
27 |
REMOTE_INDEX_CONTAINER=/var/lib/cdmserver/
|
|
28 |
fi
|
|
29 |
|
|
30 |
if [ -z "${LOCAL_INDEX_CONTAINER}" ]; then
|
|
31 |
LOCAL_INDEX_CONTAINER=/var/lib/cdmserver/
|
|
32 |
fi
|
|
33 |
|
|
34 |
if [ -z "${REMOTE_SERVER_DO_RESTART}" ]; then
|
|
35 |
REMOTE_SERVER_DO_RESTART="restart"
|
|
36 |
fi
|
|
37 |
if [ -z "${REMOTE_SERVER}" ]; then
|
|
38 |
echo '$REMOTE_SERVER missing'
|
|
39 |
exit 1
|
|
40 |
fi
|
|
41 |
|
|
42 |
echo "cdmserver-delpoy-index:"
|
|
43 |
echo " REMOTE_SERVER = ${REMOTE_SERVER}"
|
|
44 |
echo " LOCAL_INDEX_CONTAINER = ${LOCAL_INDEX_CONTAINER}"
|
|
45 |
echo " REMOTE_INDEX_CONTAINER = ${REMOTE_INDEX_CONTAINER}"
|
|
46 |
echo " REMOTE_SERVER_DO_RESTART = ${REMOTE_SERVER_DO_RESTART}"
|
|
47 |
echo " "
|
|
48 |
|
|
49 |
echo "transferring index to "${REMOTE_SERVER}
|
|
50 |
ssh ${REMOTE_SERVER} "sudo rm -rf ${REMOTE_INDEX_CONTAINER}tmp; mkdir -p ${REMOTE_INDEX_CONTAINER}tmp"
|
|
51 |
cd ${LOCAL_INDEX_CONTAINER}
|
|
52 |
tar czf - index | ssh ${REMOTE_SERVER} "cd ${REMOTE_INDEX_CONTAINER}tmp ; tar xzf -"
|
|
53 |
# fixing owner and permissions
|
|
54 |
ssh ${REMOTE_SERVER} chmod -R 775 ${REMOTE_INDEX_CONTAINER}tmp
|
|
55 |
ssh ${REMOTE_SERVER} sudo chown -R cdm:cdm ${REMOTE_INDEX_CONTAINER}tmp
|
|
56 |
|
|
57 |
STATUS=$(ssh ${REMOTE_SERVER} "sudo /etc/init.d/cdmserver status")
|
|
58 |
NOT_RUNNING=$(echo "${STATUS}" | grep "not running")
|
|
59 |
if [ -z "${NOT_RUNNING}" ]; then
|
|
60 |
echo "stopping $REMOTE_SERVER ..."
|
|
61 |
ssh ${REMOTE_SERVER} sudo /etc/init.d/cdmserver stop
|
|
62 |
echo "waiting 20 seconds for server shutting down ..."
|
|
63 |
sleep 20
|
|
64 |
else
|
|
65 |
echo "server is not running"
|
|
66 |
fi
|
|
67 |
|
|
68 |
echo "switching to new index"
|
|
69 |
ssh ${REMOTE_SERVER} rm -rf ${REMOTE_INDEX_CONTAINER}index
|
|
70 |
ssh ${REMOTE_SERVER} mv ${REMOTE_INDEX_CONTAINER}tmp/index ${REMOTE_INDEX_CONTAINER}index
|
|
71 |
ssh ${REMOTE_SERVER} rm -rf ${REMOTE_INDEX_CONTAINER}tmp
|
|
72 |
|
|
73 |
if [ "${REMOTE_SERVER_DO_RESTART}" == "restart" ]; then
|
|
74 |
echo "restarting server"
|
|
75 |
ssh ${REMOTE_SERVER} sudo /etc/init.d/cdmserver start
|
|
76 |
fi
|
new script and modifications regarding cdm index creation for remote servers