My script to upgrade our first node in QA is thus (basically, snapshot, drain, 
stop, then switch over then start)…

#!/bin/bash

export NODE=$1
export VERSION=1.1.4
export USER=cassandra

#NOTE: This script requires you have cassandra 1.2.2 in /opt/cassandra-1.2.2 but
# feel free to modify if you like

#Move the newest cassandra.yaml to the node
scp cassandra.yaml $USER@$NODE:/opt/cassandra/conf

#As cassandra user, snapshot then drain the node
# and finally shut down cassandra on that node
ssh $USER@$NODE <<\EOF
   nodetool snapshot $VERSION
   nodetool drain
   pkill -f 'java.*cassandra'
EOF

#Now, our .bashrc for cassandra has /opt/cassandra/bin in it's path
# so we unlink and the link to the new cassandra as root since only root has
# access to the opt directory.
ssh root@$NODE <<\EOF
   rm /opt/cassandra
   ln -s /opt/cassandra-1.2.2 /opt/cassandra
EOF

#We should start cassandra ourselves probably....so we can watch the cluster as 
it joins the node
#especially for the very first node we do...
#Now as cassandra user, start up the cassandra node and then do manual health 
checks
#ssh $USER@$NODE <<\EOF
#   cassandra
#EOF

Reply via email to