Skip to content

Latest commit

 

History

History
194 lines (170 loc) · 5.73 KB

00-install-iRODS4.md

File metadata and controls

194 lines (170 loc) · 5.73 KB

Installation of iRODS 4.1

This document describes how to install iRODS4.1 on a Ubuntu machine with a postgresql 9.3 database as iCAT. We also provide a guide how to install iRODS 4.1.10 and 4.2.1 on Centos 7

Environment

The documentation is tested with an Ubuntu 14.04 server and contains some remarks and links to what needs to be changed when working on Ubuntu 16.04.

Prerequisites

1. Update and upgrade if necessary

apt-get update
apt-get upgrade

2. Set firewall

sudo apt-get install iptables-persistent
  • edit /etc/iptables/rules.v4
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4538:480396]
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -f -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -p icmp -m limit --limit 5/sec -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1248 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1247 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20000:20199 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A INPUT -j LOG
-A INPUT -j DROP
COMMIT
  • edit /etc/iptables/rules.v6
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -j DROP
COMMIT
/etc/init.d/iptables-persistent restart

For Ubuntu 16.04 you can follow this guide to change your default iptables configuration.

Create a user under which you want to work and add the account to the sudoers file.

3. Set host name

sudo apt-get install dbus # for Ubuntu 16
hostnamectl set-hostname <new-hostname>
echo "IPa.ddr.ess <new-hostname>" >> /etc/hosts

You can use alice-server to be consistent with this tutorial.

Example hosts-file:

127.0.0.1   localhost
127.0.1.1	alice-server
IPa.ddr.ess  alice.eudat-sara.vm.surfsara.nl alice-server

4. Install postgresql

sudo apt-get install postgresql

Installing iRODS

5. Configure and create porstgresql database

sudo su - postgres
psql
CREATE DATABASE "ICAT";
CREATE USER irods WITH PASSWORD 'irods';
GRANT ALL PRIVILEGES ON DATABASE "ICAT" to irods;
\q
exit

6. Download and install iRODS packages

We are installing iRODS 4.1.8. If you want to install a different version simply replace 4.1.8 with the version you would like to use.

  • Ubuntu 14.04
wget ftp://ftp.renci.org/pub/irods/releases/4.1.10/ubuntu14/irods-icat-4.1.10-ubuntu14-x86_64.deb
wget ftp://ftp.renci.org/pub/irods/releases/4.1.10/ubuntu14/irods-database-plugin-postgres-1.10-ubuntu14-x86_64.deb
  • Ubuntu 16.04 iRODS only offers its software for Ubuntu 14.
sudo dpkg -i irods-icat-4.1.10-ubuntu14-x86_64.deb irods-database-plugin-postgres-1.10-ubuntu14-x86_64.deb

This will exit with the following error message:

dpkg: dependency problems prevent configuration of irods-icat:
...
Errors were encountered while processing:
 irods-icat
 irods-database-plugin-postgres

The dependencies will be fixed by executing:

sudo apt-get -f install

7. Configuring iRODS

  • First we create the iRODS vault. This is the place where by default (demoResc later in iRODS) all data will be stored physically that enters iRODS. We need to grant the user who runs iRODS (usually irods) read and write access:
sudo mkdir /irodsVault
  • Configure iRODS The script will create a unix service account and group called 'irods' which will run the service
sudo /var/lib/irods/packaging/setup_irods.sh
iRODS servers zone name [tempZone]: aliceZone
iRODS Vault directory [/var/lib/irods/iRODS/Vault]: /irodsVault
iRODS servers zone_key [TEMPORARY_zone_key]: ALICE_zone_key
iRODS servers administrator username [rods]: alice
Database servers hostname or IP address: localhost

Since the unix user 'irods' has no access to our Vault directory, the first run of the script will fail.

Install problem:
    Cannot put test file into iRODS:
        ERROR: putUtil: put error for /eveZone/home/rods/irods_put_eve-server.tmp, status = -520013 status = -520013 UNIX_FILE_MKDIR_ERR, Permission denied
Found 4 processes:
	Stopping process id 3472
	Stopping process id 3474
	Stopping process id 3498
	Stopping process id 3501

Abort.

We can fix this with:

sudo chown -R irods /irodsVault
sudo /var/lib/irods/packaging/setup_irods.sh

All of your settings were saved in the first run. So you only need to re-enter the two passwords.

8. Login to iRODS

iinit
Enter the host name (DNS) of the server to connect to: localhost
Enter the port number: 1247
Enter your irods user name: alice
Enter your irods zone: aliceZone
  • Test whether you can list your iRODS directory
ils

Additional Server configuration

iRODS creates a lot of log files, which are not cleaned up automatically. To do so start a cron-job:

sudo vim /etc/cron.d/irods

Add

# cleanup old logfiles older than 14 days
11      1       *       *       *       root    find /var/lib/irods/iRODS/server/log/{re,rods}Log.* -mtime +14  -exec rm {} \;

to the file. Now root will delete all reLog and rodsLog files that are older than 14 days. The command will be executed everyday at 11.01am.

Index Next