Project

General

Profile

« Previous | Next » 

Revision b2fb0473

Added by Andreas Kohlbecker over 10 years ago

new script and modifications regarding cdm index creation for remote servers

View differences:

.gitattributes
40 40
src/main/java/eu/etaxonomy/cdm/server/jsvc/ServiceWrapper.java -text
41 41
src/main/java/eu/etaxonomy/cdm/server/win32service/CDMServerWrapperListener.java -text
42 42
src/main/java/eu/etaxonomy/cdm/server/win32service/Win32Service.java -text
43
src/main/jenkins-ci/cdmserver-deploy-index.sh -text
43 44
src/main/jenkins-ci/copy-cdmserver-and-restart.sh -text
44 45
src/main/resources/c3p0.properties -text
45 46
src/main/resources/log4j.properties -text
src/main/jenkins-ci/cdmserver-deploy-index.sh
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

Also available in: Unified diff