Skip to content

Instantly share code, notes, and snippets.

@joekiller
Last active October 1, 2015 20:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joekiller/f27efdeddee5db826061 to your computer and use it in GitHub Desktop.
Save joekiller/f27efdeddee5db826061 to your computer and use it in GitHub Desktop.
Install Solr-4.8.0 on Centos6 with Tomcat7
# -*- mode: ruby -*-
# vi: set ft=ruby :
$script = <<SCRIPT
yum install -y java-1.7.0-openjdk
iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
service iptables save
copy_or_get () {
if [ -f "$1" ]; then
cp $1 ./
else
curl -O $2
cp $(basename $2) /vagrant/$(basename $2)
fi
}
clean_solr () {
copy_or_get /vagrant/solr-4.8.0.tgz http://archive.apache.org/dist/lucene/solr/4.8.0/solr-4.8.0.tgz
tar xf solr-4.8.0.tgz
mv solr-4.8.0 /usr/tomcat7/solr
rsync /usr/tomcat7/solr/example/lib/ext/*.jar /usr/tomcat7/lib
rsync /usr/tomcat7/solr/example/resources/log4j.properties /usr/tomcat7/lib
mkdir -p /usr/tomcat7/conf/Catalina/localhost
cat > /usr/tomcat7/conf/Catalina/localhost/solr.xml <<-EOF
<Context docBase="/usr/tomcat7/solr/dist/solr-4.8.0.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/usr/tomcat7/solr/example/solr" override="true" />
</Context>
EOF
}
[ -d "/usr/tomcat7" ] && (/usr/tomcat7/bin/catalina.sh stop;rm -rf /usr/tomcat7)
cd /tmp
copy_or_get /vagrant/apache-tomcat-7.0.64.tar.gz http://mirror.olnevhost.net/pub/apache/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gz
tar xf apache-tomcat-7.0.64.tar.gz
mv apache-tomcat-7.0.64 /usr/tomcat7
clean_solr
cat > /usr/tomcat7/conf/tomcat-users.xml <<-EOF
<tomcat-users>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>
EOF
sed -i 's!^solr\.log.*$!solr\.log=${catalina.home}/logs/!' /usr/tomcat7/lib/log4j.properties
cat >> /usr/tomcat7/lib/log4j.properties <<- 'EOF'
log4j.appender.QUERY=org.apache.log4j.RollingFileAppender
log4j.appender.QUERY.File=${solr.log}/solr_query.log
log4j.appender.QUERY.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.QUERY.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m
log4j.logger.org.apache.solr.core.SolrCore.Request=INFO, QUERY
EOF
if [ $(id -u tomcat7 > /dev/null 2>&1; echo $?) -ne "0" ]; then
useradd -M -d /usr/tomcat7 tomcat7
fi
chown -R tomcat7. /usr/tomcat7
/usr/tomcat7/bin/catalina.sh start
SCRIPT
Vagrant.configure(2) do |config|
config.vm.box = "puppetlabs/centos-6.6-64-nocm"
config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.provision "shell", inline: $script
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment