Advanced Training:
Getting Started
June 29 - July 2, 2026
iRODS User Group Meeting 2026
Barcelona, Spain
Little Slips of Paper & Dependencies
curl -LO https://github.com/irods/irods_training/raw/ugm2026/training.pem
chmod 600 training.pem
ssh -i training.pem ubuntu@#.#.#.#Log into your VM.
Install iRODS Build Requirements.
sudo apt update
sudo apt install -y git unzip jq wget curl less gnupg2 lsb-release \
odbc-postgresql pkgconfDisable the needrestart prompts.
echo "\$nrconf{restart} = 'a';" |
sudo tee /etc/needrestart/conf.d/no-prompt.conf > /dev/nullAcquire the Prerequisites
Clone the training repository.
git clone https://github.com/irods/irods_training
Install and configure PostgreSQL
DEBIAN_FRONTEND=noninteractive sudo -E apt -y install postgresql
sudo pg_ctlcluster --skip-systemctl-redirect 16/main start
sudo sed -i 's/CommLog=1/CommLog=0/' /etc/odbcinst.ini
sudo su - postgres
As the ubuntu user, install and start the database.
postgres $ psql CREATE DATABASE "ICAT"; CREATE USER irods WITH PASSWORD 'testpassword'; GRANT ALL PRIVILEGES ON DATABASE "ICAT" to irods; ALTER DATABASE "ICAT" OWNER TO irods; \q postgres $ exit
As the postgres user, prepare the database for iRODS use.
Install and configure Rsyslog
sudo apt install -y rsyslog
As the ubuntu user ...
$FileCreateMode 0644
$DirCreateMode 0755
$Umask 0000
$template irods_format,"%msg%\n"
:programname,startswith,"irodsServer" /var/log/irods/irods.log;irods_format & stop
:programname,startswith,"irodsAgent" /var/log/irods/irods.log;irods_format & stop
:programname,startswith,"irodsDelayServer" /var/log/irods/irods.log;irods_format & stop
Edit /etc/rsyslog.d/00-irods.conf (requires sudo).
Install rsyslog.
Restart rsyslog.
sudo systemctl restart rsyslog
Configure the Repository, Install, Run setup
wget -qO - https://packages.irods.org/irods-signing-key.asc | \ sudo gpg \ --no-options \ --no-default-keyring \ --no-auto-check-trustdb \ --homedir /dev/null \ --no-keyring \ --import-options import-export \ --output /etc/apt/keyrings/renci-irods-archive-keyring.pgp \ --import echo "deb [signed-by=/etc/apt/keyrings/renci-irods-archive-keyring.pgp arch=amd64] \ https://packages.irods.org/apt/ $(lsb_release -sc) main" | \ sudo tee /etc/apt/sources.list.d/renci-irods.list sudo apt update
sudo apt install -y irods-server irods-database-plugin-postgres
Install public key and add repository.
Install from repository.
Read more: https://packages.irods.org
sudo python3 /var/lib/irods/scripts/setup_irods.py < \ /var/lib/irods/packaging/localhost_setup_postgres.input
Run setup with provided input file.
Start the iRODS server
sudo fallocate -l 3G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --showAs the ubuntu user, swap space to the VM for some heavy stuff later ...
The server log will be located at /var/log/irods/irods.log.
irodsServer -d # Wait for server to start up... ils
As the irods user, start iRODS server and run ils to make sure things are working.
Docker
Exit the shell and log back in to evaluate the new group.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update
sudo apt-get install -y docker-ce
sudo usermod -aG docker $USERAs the ubuntu user, install and configure Docker. We will use it in many of our training modules.
Run docker ps to ensure you can do so without sudo.
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
What to Consider in an iRODS Deployment
Things to consider
Number of users and expected simultaneous connections
Expected ingest rate
Sizes of files
Many small files (more overhead per connection)
Partial read / write vs whole file usage
Replication for durability
Replication for locality of reference
Load balancing vs High Availability
iRODS will run on a laptop or a rack of servers.
Upgrading Large Installations
Things to consider
Database Snapshots
Maintenance Window
Attempt a graceful grid-wide shutdown ahead of time
Test Zones - do not upgrade blindly
Conformance Tests - try your edge cases
Federated Zones - how mixed is your deployment
Questions?
Anatomy of an iRODS installation
/etc/irods/core.* - iRODS Rule Language
/etc/irods/server_config.json - primary server configuration
/etc/irods/service_account.config - service account information
/usr/bin/* - iCommands
/usr/sbin/irodsAgent
/usr/sbin/irodsPamAuthCheck
/usr/sbin/irodsDelayServer
/usr/sbin/irodsServer
/var/run/irods - holds the server's pid file
/var/lib/irods - service account home directory
/var/log/irods - log files
/usr/lib/irods/plugins - plugins location
Introduction to iCommands
iRODS command line equivalent to standard Unix operations
ils
icd
ipwd
iput
iget
irepl
use -h to get help with any particular iCommand
ihelp will show all available iCommands
Questions?