mirror of https://github.com/apache/cassandra
56 lines
2.1 KiB
Bash
56 lines
2.1 KiB
Bash
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership.
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
# (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
function install_cassandra() {
|
|
|
|
C_MAJOR_VERSION=$1
|
|
C_TAR_URL=$2
|
|
|
|
c_tar_file=`basename $C_TAR_URL`
|
|
c_tar_dir=`echo $c_tar_file | awk -F '-bin' '{print $1}'`
|
|
|
|
CASSANDRA_HOME=/usr/local/$c_tar_dir
|
|
C_CONF_DIR=/etc/cassandra/conf
|
|
C_LOG_DIR=/var/log/cassandra
|
|
|
|
install_tarball $C_TAR_URL
|
|
|
|
echo "export CASSANDRA_HOME=$CASSANDRA_HOME" >> /etc/profile
|
|
echo "export CASSANDRA_CONF=$C_CONF_DIR" >> /etc/profile
|
|
echo 'export PATH=$CASSANDRA_HOME/bin:$PATH' >> /etc/profile
|
|
|
|
mkdir -p /mnt/cassandra/logs
|
|
ln -s /mnt/cassandra/logs $C_LOG_DIR
|
|
mkdir -p $C_CONF_DIR
|
|
cp $CASSANDRA_HOME/conf/logback*.xml $C_CONF_DIR
|
|
if [[ "0.6" == "$C_MAJOR_VERSION" ]] ; then
|
|
cp $CASSANDRA_HOME/conf/storage-conf.xml $C_CONF_DIR
|
|
sed -i -e "s|CASSANDRA_CONF=\$cassandra_home/conf|CASSANDRA_CONF=$C_CONF_DIR|" $CASSANDRA_HOME/bin/cassandra.in.sh
|
|
else
|
|
cp $CASSANDRA_HOME/conf/cassandra.yaml $C_CONF_DIR
|
|
cp $CASSANDRA_HOME/conf/cassandra-env.sh $C_CONF_DIR
|
|
# FIXME: this is only necessary because CASSANDRA_CONF/HOME are not in root's environment as they should be
|
|
sed -i -e "s|CASSANDRA_CONF=\$CASSANDRA_HOME/conf|CASSANDRA_CONF=$C_CONF_DIR|" $CASSANDRA_HOME/bin/cassandra.in.sh
|
|
fi
|
|
|
|
# Ensure Cassandra starts on boot
|
|
sed -i -e "s/exit 0//" /etc/rc.local
|
|
cat >> /etc/rc.local <<EOF
|
|
$CASSANDRA_HOME/bin/cassandra > /dev/null 2>&1 &
|
|
EOF
|
|
|
|
}
|