Newer
Older
DICE (Developing Innovation and Creativity in Education) is an international project
co-funded by the Erasmus+ Programme of the European Union.
Its main goals are related to fostering innovation and creativity in education.
This project attempts to be a leading initiative that supports educational community
to make progress in the field of innovation and creativity through effective, authentic, practical, sustainable actions.
The project has been funded with support from the European Commission.
For more information, see [the official DICE project page][b].
**IT4Innovations participates in DICE. DICE uses the iRODS software**
The integrated Rule-Oriented Data System (iRODS) is an open source data management software
used by research organizations and government agencies worldwide.
iRODS is released as a production-level distribution aimed at deployment in mission critical environments.
It virtualizes data storage resources, so users can take control of their data,
regardless of where and on what device the data is stored.
As data volumes grow and data services become more complex,
iRODS is serving an increasingly important role in data management.
For more information, see [the official iRODS page][c].
First, we need to verify your identity, this is done through the following steps:
1. Sign in with your organization [B2ACCESS][d]; the page requests a valid personal certificate (e.g. GEANT).
Accounts with "Low" level of assurance are not granted access to IT4I zone.
Sign in to our [AAI][f] through your B2Access account and link your B2ACCESS identity with your existing account.
The iRODS password will be the same as your IT4I LDAP password (i.e. code.it4i.cz password).




1. Contact [support@it4i.cz][a], so we can create your account at our iRODS server.
1. **Fill this request on [EOSC-MARKETPLACE][h] (recommended)** or at [EUDAT][l], please specify the requested capacity.



Access to iRODS Collection requires access to the Karolina cluster (i.e. [IT4I account][4]),
since iRODS clients are provided as a module on Karolina (Barbora is in progress).
The `irodsfs` module loads config file for irodsfs and icommands, too.
Note that you can change password to iRODS at [aai.it4i.cz][m].

Ondrej Dvorak
committed
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
```console
ssh some_user@karolina.it4i.cz
[some_use@login4.karolina ~]$ ml irodsfs
irodsfs configuration file has been created at /home/dvo0012/.irods/config.yml
iRODS environment file has been created at /home/dvo0012/.irods/irods_environment.json
to start irodsfs, run: irodsfs -config ~/.irods/config.yml ~/IRODS
to start iCommands, run: iinit
For more information, see https://docs.it4i.cz/dice/
```
To mount your iRODS collection to ~/IRODS, run
```console
[some_user@login4.karolina ~]$ irodsfs -config ~/.irods/config.yml ~/IRODS
time="2022-08-04 08:54:13.222836" level=info msg="Logging to /tmp/irodsfs_cblmq5ab1lsaj31vrv20.log" function=processArguments package=main
Password:
time="2022-08-04 08:54:18.698811" level=info msg="Found FUSE Device. Starting iRODS FUSE Lite." function=parentMain package=main
time="2022-08-04 08:54:18.699080" level=info msg="Running the process in the background mode" function=parentRun package=main
time="2022-08-04 08:54:18.699544" level=info msg="Process id = 27145" function=parentRun package=main
time="2022-08-04 08:54:18.699572" level=info msg="Sending configuration data" function=parentRun package=main
time="2022-08-04 08:54:18.699730" level=info msg="Successfully sent configuration data to background process" function=parentRun package=main
time="2022-08-04 08:54:18.922490" level=info msg="Successfully started background process" function=parentRun package=main
```
To unmount it, run
```console
fusermount -u ~/IRODS
```
You can work with Fuse as an ordinary directory (`ls`, `cd`, `cp`, `mv`, etc.).
```console
ssh some_user@karolina.it4i.cz
[some_use@login4.karolina ~]$ ml irodsfs
irodsfs configuration file has been created at /home/dvo0012/.irods/config.yml.
to start irods fs run: irodsfs -config ~/.irods/config.yml ~/IRODS
iCommands environment file has been created at /home/$USER/.irods/irods_environment.json.
to start iCommands run: iinit

Ondrej Dvorak
committed
[some_user@login4.karolina ~]$ iinit
Enter your current PAM password:
```
```console
[some_use@login4.karolina ~]$ ils
/IT4I/home/some_user:
test.1
test.2
test.3
test.4
```
Use the command `iput` for upload, `iget` for download, or `ihelp` for help.
!!! note
This guide assumes you are uploading your data from your local PC/VM.
Use the password from [AAI][f].
There are many iRODS clients, but we recommend the following:
- Cyberduck - Windows/Mac, GUI
- Fuse (irodsfs lite) - Linux, CLI
- iCommands - Linux, CLI.
For access, set PAM passwords at [AAI][f].

Ondrej Dvorak
committed
### Cyberduck
1. Download [Cyberduck][i].
2. Download [connection profile][1] for IT4I iRods server.


Ondrej Dvorak
committed
### Fuse
This is a Linux client only, basic knowledge of the command line is necessary.
Fuse allows you to work with your iRODS collection like an ordinary directory.
```console
cd ~
wget https://github.com/cyverse/irodsfs/releases/download/v0.7.6/irodsfs_amd64_linux_v0.7.6.tar
tar -xvf ~/irodsfs_amd64_linux_v0.7.6.tar
mkdir ~/IRODS ~/.irods/ && cd "$_" && wget https://docs.it4i.cz/config.yml

Ondrej Dvorak
committed
wget https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem -P ~/.irods/

Ondrej Dvorak
committed
[some_user@local_pc ~]$ ./irodsfs -config ~/.irods/config.yml ~/IRODS
time="2022-07-29 09:51:11.720831" level=info msg="Logging to /tmp/irodsfs_cbhp2rucso0ef0s7dtl0.log" function=processArguments package=main
Password:
time="2022-07-29 09:51:17.691988" level=info msg="Found FUSE Device. Starting iRODS FUSE Lite." function=parentMain package=main
time="2022-07-29 09:51:17.692683" level=info msg="Running the process in the background mode" function=parentRun package=main
time="2022-07-29 09:51:17.693381" level=info msg="Process id = 74772" function=parentRun package=main
time="2022-07-29 09:51:17.693421" level=info msg="Sending configuration data" function=parentRun package=main
time="2022-07-29 09:51:17.693772" level=info msg="Successfully sent configuration data to background process" function=parentRun package=main
time="2022-07-29 09:51:18.008166" level=info msg="Successfully started background process" function=parentRun package=main
```

Ondrej Dvorak
committed
[some_use@local_pc ~]$ cp test1G.txt ~/IRODS

Ondrej Dvorak
committed
[some_user@local_pc ~]$ ls -la ~/IRODS
total 0
-rwx------ 1 some_user some_user 1073741824 Nov 4 2021 test1G.txt
```
#### Unmounting Your Collection
To stop/unmount your collection, use:

Ondrej Dvorak
committed
[some_user@local_pc ~]$ fusermount -u ~/IRODS

Ondrej Dvorak
committed
### iCommands
This is a Linux client only, basic knowledge of the command line is necessary.
```console
LSB_RELEASE="bionic"
wget -qO - https://packages.irods.org/irods-signing-key.asc | sudo apt-key add -
echo "deb [arch=amd64] https://packages.irods.org/apt/ ${LSB_RELEASE} main" \
> | sudo tee /etc/apt/sources.list.d/renci-irods.list
deb [arch=amd64] https://packages.irods.org/apt/ bionic main
sudo apt-get update
apt-cache search irods
wget -c \
http://security.ubuntu.com/ubuntu/pool/main/p/python-urllib3/python-urllib3_1.22-1ubuntu0.18.04.2_all.deb \
http://security.ubuntu.com/ubuntu/pool/main/r/requests/python-requests_2.18.4-2ubuntu0.1_all.deb \
http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.10_amd64.deb
./python-urllib3_1.22-1ubuntu0.18.04.2_all.deb \
./python-requests_2.18.4-2ubuntu0.1_all.deb \
./libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
./python-urllib3_1.22-1ubuntu0.18.04.2_all.deb \
./python-requests_2.18.4-2ubuntu0.1_all.deb \
./libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
sudo apt install -y irods-icommands
mkdir ~/.irods/ && cd "$_" && wget https://docs.it4i.cz/irods_environment.json

Ondrej Dvorak
committed
wget https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem -P ~/.irods
sed -i 's,~,'"$HOME"',g' ~/.irods/irods_environment.json
```
sudo rpm --import https://packages.irods.org/irods-signing-key.asc
sudo wget -qO - https://packages.irods.org/renci-irods.yum.repo | sudo tee /etc/yum.repos.d/renci-irods.yum.repo

Ondrej Dvorak
committed
sudo yum install irods-icommands
mkdir ~/.irods/ && cd "$_" && wget https://docs.it4i.cz/irods_environment.json

Ondrej Dvorak
committed
wget https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem -P ~/.irods
sed -i 's,~,'"$HOME"',g' ~/.irods/irods_environment.json
Edit ***irods_user_name*** in `~/.irods/irods_environment.json` with the username from [AAI][f].

Ondrej Dvorak
committed
[some_user@local_pc ~]$ pwd

Ondrej Dvorak
committed
[some_user@local_pc ~]$ ls -la
drwx------. 2 some_user some_user 136 Sep 29 08:53 .
dr-xr-x---. 6 some_user some_user 206 Sep 29 08:53 ..
-rw-r--r--. 1 some_user some_user 253 Sep 29 08:14 irods_environment.json

Ondrej Dvorak
committed
[some_user@local_pc ~]$ iinit

Ondrej Dvorak
committed
[some_user@local_pc ~]$ ils
/IT4I/home/some_user:

Ondrej Dvorak
committed
[some_user@local_pc ~]$ iput cesnet.crt
```
```console

Ondrej Dvorak
committed
[some_user@local_pc ~]$ ils

Ondrej Dvorak
committed
[some_user@local_pc ~]$ iget cesnet.crt
ls -la ~
-rw-r--r--. 1 some_user some_user 1464 Jul 20 13:44 cesnet.crt

Ondrej Dvorak
committed
You, as user, may want to index your datasets and allocate some PIDs - Persistent Identifiers for them. We host pid system by hdl-surfsara ( https://it4i-handle.it4i.cz ), wich is conected to https://hdl.handle.net , and you are able to create your own PID by calling some of irule.

Ondrej Dvorak
committed
Pids are created by calling `irule`, you have to create at your $HOME or everewhere you want, but you have to specify path correctly.
rules for pid operations have always .r suffix . It can by done only throught `iCommands`
example of rule for PID creating only
```console
user in ~ λ pwd
/home/user

Ondrej Dvorak
committed
user in ~ λ ils
/IT4I/home/user:
C- /IT4I/home/dvo0012/Collection_A
user in ~ λ ls -l | grep pid
-rw-r--r-- 1 user user 249 Sep 30 10:55 create_pid.r
user in ~ λ cat create_pid.r
PID_DO_reg {
EUDATCreatePID(*parent_pid, *source, *ror, *fio, *fixed, *newPID);
writeLine("stdout","PID: *newPID");
}
INPUT *source="/IT4I/home/user/Collection_A",*parent_pid="None",*ror="None",*fio="None",*fixed="true"
OUTPUT ruleExecOut
user in ~ λ irule -F create_pid.r
PID: 21.12149/f3b9b1a5-7b4d-4fff-bfb7-826676f6fe14
```

Ondrej Dvorak
committed
After creation, your PID is worldwidely searchable



Ondrej Dvorak
committed
**More info at [www.eudat.eu][n]**
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
### Metadata
For adding metadata to you collection/dataset, you can use imeta from iCommands
this is after PID creation
```console
user in ~ λ imeta ls -C /IT4I/home/user/Collection_A
AVUs defined for collection /IT4I/home/user/Collection_A:
attribute: EUDAT/FIXED_CONTENT
value: True
units:
----
attribute: PID
value: 21.12149/f3b9b1a5-7b4d-4fff-bfb7-826676f6fe14
units:
```
For adding any other metadata you can use :
```console
user in ~ λ imeta add -C /IT4I/home/user/Collection_A EUDAT_B2SHARE_TITLE Some_Title
user in ~ λ imeta ls -C /IT4I/home/user/Collection_A
AVUs defined for collection /IT4I/home/user/Collection_A:
attribute: EUDAT/FIXED_CONTENT
value: True
units:
----
attribute: PID
value: 21.12149/f3b9b1a5-7b4d-4fff-bfb7-826676f6fe14
units:
----
attribute: EUDAT_B2SHARE_TITLE
value: Some_Title
units:
```
[1]: irods.cyberduckprofile
[2]: irods_environment.json
[3]: config.yml
[b]: http://www.diceproject.eu/
[c]: https://irods.org/
[d]: https://b2access.eudat.eu/
[f]: https://aai.it4i.cz/realms/IT4i_IRODS/account/#/
[h]: https://marketplace.eosc-portal.eu/services/b2safe/offers
[l]: https://www.eudat.eu/contact-support-request?Service=B2SAFE