Installing UNICORE for Testing
Overview
This How-To explains how to quickly set up UNICORE servers on a single test machine or even on your laptop.
Prerequisites
Java 17 or later (OpenJDK or Oracle Java recommended)
Python 3.9 or later (required for TSI and installation scripts)
Important
Security Notes
UNICORE servers (except TSI) use X.509 certificates and client-authenticated SSL. The bundle includes demo certificates and allows creating self-signed ones.
Never use demo certificates in production!
For production, use proper CA-signed SSL certificates.
Run servers as a dedicated non-root user (except TSI). See the Installation section for details.
Installation and Configuration
Run all servers as a dedicated non-root user (e.g., unicore).
Do not start servers (except TSI) as root.
Install the bundle
Download the .tgz archive from
the Core Server Bundle.
Unpack the bundle with
$ tar xzf unicore-server-bundle-<version>.tgz
The bundle includes the following components:
Gateway
UNICORE/X
TSI
Registry (only needed for multi-site workflows)
Workflow (only needed for multi-site workflows)
XUUDB (optional; provides user attribute management)
A typical setup installs Gateway and UNICORE/X on a VM or server, and TSI on the login node of a compute cluster.
Configure and install
The bundle provides helper scripts and a configuration file
(configure.properties). In most cases, defaults work, but edit the
file if you need to adjust settings such as ports, hostnames, etc.
Steps:
Edit
configure.properties(optional, if you need to adjust settings)Run:
./configure.py [<unicore_user>] [<hostname>]<unicore_user>: UNIX account to run the servers (default: current user)<hostname>: target host (default: localhost)
Run:
./install.pyInstall TSI separately on the cluster login node.
The configure.py script updates component configuration files and keeps
backups as *_origin, so it can be safely re-run.
Multi-host deployment
Create the same UNIX user (e.g.,
unicore) on each host.Decide which component runs on which host; note hostnames and ports.
Copy the bundle to each machine.
Maintain a master
configure.propertiesfile with all host/port settings.On each host, edit the config file to select the components to install, then run the installer.
Note
If you re-run configure.py after starting servers, clean up old
data first:
rm -f unicorex/data/*
rm -f registry/data/*
rm -f workflow/data/*
Re-configuration uses the *_origin backup files as templates.
Starting UNICORE
Start the UNICORE servers using the start.sh script in the
installation directory.
Testing the installation
To check that authentication and user mapping work correctly, run:
export BASE=https://unicore-host:8080/DEMO-SITE/rest/core
# Replace `unicore-host` with your server host (e.g., localhost)
curl -k -u demouser:test123 -H "Accept: application/json" \
$BASE?fields=client | python3 -m json.tool
Expected output:
{
"client": {
"role": {
"selected": "user",
"availableRoles": [
"user"
]
},
"authenticationMethod": "PASSWORD_FILE",
"dn": "CN=Demo User, O=UNICORE, C=EU",
"xlogin": {
"UID": "unicore",
"availableGroups": [],
"availableUIDs": [
"unicore"
]
}
}
}
Note
The servers can be stopped using the stop.sh script in the same directory.
Reporting bugs
Report issues via:
GitHub Issues: https://github.com/UNICORE-EU/server-bundle/issues
Website: https://www.unicore.eu
GitHub Org: https://github.com/UNICORE-EU
Twitter: https://twitter.com/UNICORE_EU
Email: unicore-support@lists.sf.net