-
Notifications
You must be signed in to change notification settings - Fork 0
FirstTimeInstallation
This installation tutorial is based on installation of the ANDS Services on a CentOS 6 operating system. ANDS envisages that all the open source software in the software stack will be compatible with various other Linux distributions, but does not support/provide installation notes for these operating systems.
ANDS recommends using the Nectar Research Cloud as a testing platform for deploying the software stack. A preconfigured image may be available in the near future -- please contact us if you are interested in helping out!
From a stock Centos 6 installation, run a yum update
to ensure that the kernel and system libraries are up-to-date.
The ANDS software dependencies are easily resolved by configuring 3rd-party software repositories including EPEL and REMI:
- Download the latest version of the EPEL RPM from:
http://mirror.optus.net/epel/6/i386/repoview/epel-release.html
- Download the latest version of the REMI RPM from:
http://blog.famillecollet.com/pages/Config-en
- Download the latest version of JPackage from:
http://www.jpackage.org/
- Install these RPMs using
rpm -Uvh <filename>.rpm
Example:
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh http://mirrors.dotsrc.org/jpackage/6.0/generic/free/RPMS/jpackage-utils-5.0.0-7.jpp6.noarch.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm jpackage-utils*.rpm
Now edit the /etc/yum.repos.d/remi.repo
file and under the [remi] block set enabled=1
and add the line exclude=mysql*
Now would be a good time to do some system housekeeping:
yum update
Thats step 1 complete!
Install httpd
, php
and other required libraries by executing:
yum install httpd php-pgsql php-mbstring php-xml php-devel php-pdo
This should give you a basic Apache installation with configuration files in /etc/httpd/
and a default web root of /var/www/
(web files in /var/www/htdocs/
). It also installs the most recent PHP version in the REMI repository (currently PHP 5.3). ANDS Online Services requires PHP 5.x.
Install the latest version of PostgreSQL (currently tested against version 9.1) using the instructions here
Example:
wget http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpm
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
yum install postgresql91 postgresql91-server
Next, install the server software:
yum install postgresql91 postgresql91-server postgresql91-contrib
mv /etc/init.d/postgresql-9.1 /etc/init.d/postgresql # rename this to avoid future pain
This will install PostgreSQL server. The default location of the data
directory (which also contains the server configuration files) is /var/lib/pgsql/9.1/data
yum install java
yum install tomcat6
yum install ant ant-contrib # used to build the ANDS web applications
This will install tomcat6
with configuration files in /etc/tomcat6/
and web apps deployed from /var/lib/tomcat6/
Visit http://lucene.apache.org/solr/mirrors-solr-latest-redir.html
to get the latest SOLR distribution (currently tested against SOLR 3.6, experimental testing against SOLR 4 has begun). Extract this into /usr/local/solr36
Example:
cd /usr/local/
wget http://apache.mirror.uber.com.au/lucene/solr/3.6.0/apache-solr-3.6.0.tgz
tar xfz apache-solr-3.6.0.tgz
mv apache-solr-3.6.0 solr36
SOLR 3.6 is now installed in /usr/local/solr36/
- Follow the instructions contained
http://www.webtatic.com/
here to install thewebtatic
repository. It is disabled by default, which is just as well as it often contains bleeding-edge software. - Install
gearmand
andphp-pecl-gearman
using the repository
Example:
rpm -Uvh http://repo.webtatic.com/yum/centos/6/latest.rpm
yum install gearmand php-pecl-gearman --enablerepo=webtatic
Add httpd
, postgresql
, tomcat6
, gearmand
to chkconfig to start them as services when the server reboots.
Example:
chkconfig httpd on
chkconfig postgresql on
chkconfig tomcat6 on
chkconfig gearmand on
Firewall should allow public access to the following ports 80, 8080
Example (note: test these rules thoroughly in your own environment before applying them)
iptables -F ANDS
iptables -N ANDS
iptables -A ANDS -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptables -A ANDS -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
iptables -F INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j ANDS
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
Note (Nectar Users): Nectar also has a VM-level firewall that is configured when you launch the virtual machine. You should ensure that the applicable ports are accessible at this level too. This is configured on the Nectar Dashboard.
Visit the Git repository to get a version of ANDS Online Services. ANDS policy is that stable releases will be tagged, the master
branch will reflect the latest production release and develop
will include all current development code (usually unstable).
Example:
# this will create a directory named au-research-ANDS...
wget https://github.com/au-research/ANDS-Online-Services/tarball/release7
tar xfz release7
# and this will copy the code into the web directory root
cp -r au-research-ANDS-Online-Services-849612a/registry/src/* /var/www/html/
Firstly, initialise the database with a UTF character set:
service postgresql initdb en_AU.UTF-8
service postgresql start
Change to the postgres user and import the databases:
su postgres -
psql
# Following commands are executed from the postgres shell:
CREATE USER webuser;
CREATE USER dba;
CREATE DATABASE dbs_cosi ENCODING = 'UTF8' LC_COLLATE = 'en_AU.UTF-8' LC_CTYPE = 'en_AU.UTF-8';
ALTER DATABASE dbs_cosi OWNER TO dba;
GRANT CONNECT, TEMPORARY ON DATABASE dbs_cosi TO webuser;
GRANT ALL ON DATABASE dbs_cosi TO dba;
CREATE DATABASE dbs_orca ENCODING = 'UTF8' LC_COLLATE = 'en_AU.UTF-8' LC_CTYPE = 'en_AU.UTF-8';
ALTER DATABASE dbs_orca OWNER TO dba;
GRANT CONNECT, TEMPORARY ON DATABASE dbs_orca TO webuser;
GRANT ALL ON DATABASE dbs_orca TO dba;
\q
# and now import the database files
psql -d dbs_cosi -f /var/www/au-research-ANDS-Online-Services-*/registry/db/cosi_setup.sql
psql -d dbs_orca -f /var/www/au-research-ANDS-Online-Services-*/registry/db/orca_setup.sql
Now to finish things off, we need to add the database permissions! Use exit
to go back to the root user.
Open /var/lib/pgsql/9.1/data/pg_hba.conf
and add the line:
host all all 127.0.0.1/32 trust
Now restart postgresql by service postgresql restart