Skip to content

Instantly share code, notes, and snippets.

@stucka
Created March 17, 2016 18:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stucka/5173f1793c673aaf7f9b to your computer and use it in GitHub Desktop.
Save stucka/5173f1793c673aaf7f9b to your computer and use it in GitHub Desktop.
Beginning of attempt to get PANDA running on Ubuntu 14.04.
#!/bin/bash
### Note: Script for 12.02 linked from the docs is at a bad URL. Should be:
### https://raw.githubusercontent.com/pandaproject/panda/master/setup_panda.sh
# PANDA Project server setup script for Ubuntu 12.04
# Must be executed with sudo!
set -x
exec 1> >(tee /var/log/panda-install.log) 2>&1
echo "PANDA installation beginning."
VERSION="1.1.2"
CONFIG_PATH="/opt/panda/setup_panda"
# Setup environment variables
echo "DEPLOYMENT_TARGET=\"deployed\"" >> /etc/environment
export DEPLOYMENT_TARGET="deployed"
# Install outstanding updates
apt-get --yes update
### Should this be dist-upgrade?
apt-get --yes upgrade
# Install required packages
apt-get install --yes git openssh-server postgresql python2.7-dev libxml2-dev libxml2 libxslt1.1 libxslt1-dev nginx build-essential openjdk-6-jdk libpq-dev python-pip mercurial
pip install uwsgi
### Should we do this, too?
apt-get --yes install solr-common openjdk-7-jdk
### Recommending we run this, too:
apt-get --yes autoremove
apt-get --yes clean
# Make sure SSH comes up on reboot
ln -s /etc/init.d/ssh /etc/rc2.d/S20ssh
ln -s /etc/init.d/ssh /etc/rc3.d/S20ssh
ln -s /etc/init.d/ssh /etc/rc4.d/S20ssh
ln -s /etc/init.d/ssh /etc/rc5.d/S20ssh
# Setup Solr + Jetty
### wget -nv http://archive.apache.org/dist/lucene/solr/3.4.0/apache-solr-3.4.0.tgz -O /opt/apache-solr-3.4.0.tgz
cd /opt
### tar -xzf apache-solr-3.4.0.tgz
### mv apache-solr-3.4.0 solr
### cp -r solr/example solr/panda
### Add this
ln -s /usr/share/solr ./solr
# Get PANDA code
git clone https://github.com/pandaproject/panda.git panda
cd /opt/panda
git checkout $VERSION
### ERROR:
### + git checkout 1.1.2
### error: pathspec '1.1.2' did not match any file(s) known to git.
### So:
git checkout
# Configure unattended upgrades
cp $CONFIG_PATH/10periodic /etc/apt/apt.conf.d/10periodic
service unattended-upgrades restart
# Install Solr configuration
### We're missing a bunch of subdirectories that we never explicitly created.
### We've got /opt/panda and /opt/solr
### but no /opt/solr/panda
### and no /opt/solr/panda/solr
mkdir /opt/solr/panda
mkdir /opt/solr/panda/solr
cp $CONFIG_PATH/solr.xml /opt/solr/panda/solr/solr.xml
mkdir /opt/solr/panda/solr/pandadata
mkdir /opt/solr/panda/solr/pandadata/conf
mkdir /opt/solr/panda/solr/pandadata/lib
cp $CONFIG_PATH/data_schema.xml /opt/solr/panda/solr/pandadata/conf/schema.xml
cp $CONFIG_PATH/english_names.txt /opt/solr/panda/solr/pandadata/conf/english_names.txt
cp $CONFIG_PATH/solrconfig.xml /opt/solr/panda/solr/pandadata/conf/solrconfig.xml
cp $CONFIG_PATH/panda.jar /opt/solr/panda/solr/pandadata/lib/panda.jar
mkdir /opt/solr/panda/solr/pandadata_test
mkdir /opt/solr/panda/solr/pandadata_test/conf
mkdir /opt/solr/panda/solr/pandadata_test/lib
cp $CONFIG_PATH/data_schema.xml /opt/solr/panda/solr/pandadata_test/conf/schema.xml
cp $CONFIG_PATH/english_names.txt /opt/solr/panda/solr/pandadata_test/conf/english_names.txt
cp $CONFIG_PATH/solrconfig.xml /opt/solr/panda/solr/pandadata_test/conf/solrconfig.xml
cp $CONFIG_PATH/panda.jar /opt/solr/panda/solr/pandadata_test/lib/panda.jar
mkdir /opt/solr/panda/solr/pandadatasets
mkdir /opt/solr/panda/solr/pandadatasets/conf
cp $CONFIG_PATH/datasets_schema.xml /opt/solr/panda/solr/pandadatasets/conf/schema.xml
cp $CONFIG_PATH/solrconfig.xml /opt/solr/panda/solr/pandadatasets/conf/solrconfig.xml
mkdir /opt/solr/panda/solr/pandadatasets_test
mkdir /opt/solr/panda/solr/pandadatasets_test/conf
cp $CONFIG_PATH/datasets_schema.xml /opt/solr/panda/solr/pandadatasets_test/conf/schema.xml
cp $CONFIG_PATH/solrconfig.xml /opt/solr/panda/solr/pandadatasets_test/conf/solrconfig.xml
adduser --system --no-create-home --disabled-login --disabled-password --group solr
chown -R solr:solr /opt/solr
touch /var/log/solr.log
chown solr:solr /var/log/solr.log
cp $CONFIG_PATH/solr.conf /etc/init/solr.conf
initctl reload-configuration
service solr start
# Setup uWSGI
adduser --system --no-create-home --disabled-login --disabled-password --group panda
cp $CONFIG_PATH/uwsgi_jumpstart.conf /etc/init/uwsgi.conf
initctl reload-configuration
# Setup nginx
cp $CONFIG_PATH/nginx /etc/nginx/sites-available/panda
ln -s /etc/nginx/sites-available/panda /etc/nginx/sites-enabled/panda
rm /etc/nginx/sites-enabled/default
service nginx restart
# Setup Postgres
###cp $CONFIG_PATH/pg_hba.conf /etc/postgresql/9.1/main/pg_hba.conf
cp $CONFIG_PATH/pg_hba.conf /etc/postgresql/9.3/main/pg_hba.conf
service postgresql restart
# Create database users
echo "CREATE USER panda WITH PASSWORD 'panda';" | sudo -u postgres psql postgres
sudo -u postgres createdb -O panda panda
# Install Python requirements
### This calls for some specific versions that are rather dated and may . I'm not messing with it. Now.
pip install -r requirements.txt
# Setup panda directories
mkdir /var/log/panda
touch /var/log/panda/panda.log
chown -R panda:panda /var/log/panda
mkdir /var/lib/panda
mkdir /var/lib/panda/uploads
mkdir /var/lib/panda/exports
mkdir /var/lib/panda/media
chown -R panda:panda /var/lib/panda
# Synchronize the database
sudo -u panda -E python manage.py syncdb --noinput
sudo -u panda -E python manage.py migrate --noinput
sudo -u panda -E python manage.py loaddata panda/fixtures/init_panda.json
# Collect static assets
sudo -u panda -E python manage.py collectstatic --noinput
# Start serving
service uwsgi start
# Setup Celery
cp $CONFIG_PATH/celeryd.conf /etc/init/celeryd.conf
initctl reload-configuration
mkdir /var/celery
chown panda:panda /var/celery
service celeryd start
echo "PANDA installation complete."
@bjmgeek
Copy link

bjmgeek commented Jul 23, 2019

Were you ever able to get panda running on ubuntu 14?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment