Component | Version | Installation | Documentation |
---|---|---|---|
icat.server | 4.8.0 | Installation Guide | Component Documentation |
Chapter 05: Installing the ICAT Server
Overview
The ICAT Server is the central component of an ICAT installation. It manages authenticating users via its plugins, it provides REST and SOAP interfaces to the data catalogue, it uses Lucene to make its data searchable and it coordinates the ICAT Data Service which allows users to access their data. The installation process is the same as before: download, unzip, edit configuration files, then run ./setup configure
and ./setup install
. The main configuration file - icat.properties
- is quite large. Most values can be safely left to their defaults and the values which need changing will be indicated below.
Download and unzip
From your home directory, run:
wget https://repo.icatproject.org/repo/org/icatproject/icat.server/4.8.0/icat.server-4.8.0-distro.zip
unzip icat.server-4.8.0-distro.zip
Configure the ICAT Server
Change directory to the icat.server
directory and open the icat-setup.properties
file. It has 2 sections. The first will be familiar from the authentication plugin in Chapter 4 where we set secure
to false
and configured the container
, its location and port. The second section tells ICAT how to access the MySQL database. The db.driver
parameter specifies the location of the database access code - in the jar file which we copied earlier. The db.url
parameter tells ICAT where to contact the database. In this case, it uses the jdbc-mysql connector to access the local machine on port 3306 (the default for MySQL) and uses the icat
database. Finally, we specify the database username and password for ICAT to use. We created these in Chapter 2.
#Glassfish
secure = false
container = Glassfish
home = /home/glassfish/glassfish4
port = 4848
# MySQL
db.driver = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
db.url = jdbc:mysql://localhost:3306/icat
db.username = icat
db.password = icat
ICAT uses Lucene to create an index of its data so that users can search for what they need. We need to create a directory for this index.
mkdir -p /home/glassfish/icat/data/lucene
The ICAT install script installs a few executable scripts. We need to create a directory for them and add it to our $PATH
variable.
mkdir -p /home/glassfish/bin
echo 'export PATH=$PATH:/home/glassfish/bin' >> ~/.bashrc
source ~/.bashrc
The icat.properties
file is quite large but we only need to change a few of the parameters: to specify the privileged root
user, the authentication methods we are using and the location of the Lucene data directory that we created above. Set the rootUserNames
parameter to simple/root
- that is the root
username configured using the simple
authentication mechanism. Set authn.list
to simple
- we are only using the simple authentication plugin in this tutorial. Uncomment the authn.simple.jndi
and authn.simple.friendly
and leave them unchanged. These tell ICAT where to find the simple
authentication plugin and what to call it. Finally, set the lucene.directory
parameter to the directory created above: /home/glassfish/icat/data/lucene
.
# Real comments in this file are marked with '#' whereas commented out lines
# are marked with '!'
# The lifetime of a session
lifetimeMinutes = 120
# Provide CRUD access to authz tables
rootUserNames = simple/root
# Restrict total number of entities to return in a search call
maxEntities = 10000
# Maximum ids in a list - this must not exceed 1000 for Oracle
maxIdsInQuery = 500
# Size of cache to be used when importing data into ICAT
importCacheSize = 50
# Size of cache to be used when exporting data from ICAT
exportCacheSize = 50
# Desired authentication plugin mnemonics
!authn.list = db ldap simple anon
authn.list = simple
# Parameters for each of the four plugins
!authn.db.jndi = java:global/authn.db-1.2.0/DB_Authenticator
!authn.ldap.jndi = java:global/authn.ldap-1.2.0/LDAP_Authenticator
!authn.ldap.admin = true
!authn.ldap.friendly = Federal Id
authn.simple.jndi = java:global/authn.simple-1.1.0/SIMPLE_Authenticator
authn.simple.friendly = Simple
!authn.anon.jndi = java:global/authn.anon-1.1.1/ANON_Authenticator
!authn.anon.friendly = Anonymous
# Uncomment to permit configuration of logback
!logback.xml = icat.logback.xml
# Notification setup
notification.list = Dataset Datafile
notification.Dataset = CU
notification.Datafile = CU
# Call logging setup
log.list = SESSION WRITE READ INFO
# Lucene
lucene.directory = /home/glassfish/icat/data/lucene
lucene.commitSeconds = 5
lucene.commitCount = 10000
# JMS - uncomment and edit if needed
!jms.topicConnectionFactory = java:comp/DefaultJMSConnectionFactory
# Optional key which must match that of the IDS server if the IDS is in use and has a key for digest protection of Datafile.location
!key = ???
Install the ICAT Server
As before:
./setup -vv install
Test the ICAT Server
run testicat?