...
UNICORE Commandline Client jest tekstowym klientem systemu UNICORE.
Klient UCC jest uruchamiany za pośrednictwem platformy Java, która musi być zainstalowana w systemie. Platforma dostępna jest pod adresem https://java.com dla maszyn z systemem operacyjnym Windows, Mac i Linux. Dla użytkowników Linuxa wygodniejszą alternatywą jest zainstalowanie platformy Java za pomocą systemowych narzędzi do instalacji oprogramowania.
Klient UCC pobrany może zostać ze strony projektu httphttps://wwwsourceforge.unicore.eu/download/unicore6/net/projects/unicore/files/Clients/Commandline%20Client/. W dalszej części podręcznika zakładamy użycie wersji z rozszerzeniem zip, która to może być użyta na każdym systemie operacyjnym. Wersja z rozszerzeniem tar.gz jest przeznaczona dla użytkowników Linuxa, pozostałe wersje - .deb i .rpm - również, aczkolwiek wymagają uprawnień administratora do instalacji. W zamian integrują się z systemem operacyjnym (np. poprzez dodanie polecenia ucc do ścieżki wykonywalnej).
. Ściągnięta paczka może zostać rozpakowana w dowolnej lokalizacji na komputerze użytkownika systemu.
Info | ||
---|---|---|
| ||
Opisana konfiguracja dotyczy klienta w wersji 6.5.0. 7.3.0, generalnie powinna być jednak poprawna również dla nieco wcześniejszych wersji 7.1.0 i 7.0.4. |
Info |
---|
Poniżej podano wersje komend dla systemu Linux lub Mac. W przypadku pracy na Windows należy zmienić separator katalogu ('/' na '\'), używać skryptu |
Warning |
---|
Poniższa instrukcja działa przy pierwszym uruchomieniu, tzn. zakłada że nie istnieje wcześniej utworzona konfiguracja użytkownika. Jeśli taka istnieje zostanie ona nadpisana, jednak program UCC utworzy jej kopię zapasową. |
Aby skonfigurować dostęp do Gridu najlepiej skorzystać z profilu konfiguracji klienta, który m.in. doinstaluje certyfikaty zaufanych CA oraz określi rejestry. W tym celu należy:
:
$HOME/.ucc/
($HOME
oznacza katalog domowy użytkownika);bin/ucc download-config -
c $UCC/conf/preferences b -e -u https://unicore.grid.icm.edu.pl:8443/ccm/plgrid-profile-icm.xml
5a:cf:15:b6:16:24:0e:0f:32:a7:e9:ec:c4:73:1a:c4:96:ca:6f:f6
$UCC/conf/preferences
do katalogu $HOME/.ucc/
;$UCC/certs/user-keystore.jks
do katalogu $HOME/.ucc/
($UCC to katalog z rozpakowanym tekstowym klientem systemu UNICORE);$HOME/.ucc/preferences
:keystore = ../certs/user-keystore.jks
zamienić podaną ścieżkę na na ścieżkę dostępu do paczki PKCS12;password=the!user
;#
) wiersz: storetype=pkcs12
;'trustostore=…
i zamienić wielokropek na ścieżkę: user-keystore.jks
trustostorePassword=…
i zamienić wielokropek na hasło the!user
credential.format = pkcs12
credential.path = ŚCIEŻKA_DO_PLIKU_PKCS12
credential.format = pem
credential.path = ŚCIEŻKA_DO_PLIKU_PEM_Z_CERTYFIKATEM
ŚCIEŻKA_DO_PLIKU_PEM_Z_KLUCZEM_PRYWATNYM
credential.format = jks
credential.path = ŚCIEŻKA_DO_PLIKU_JKS
credential.password =
).z wiersza rozpoczynającego się od registry=
usunąć pierwszy z adresów (https://localhost:8080/DEMO-SITE/services/Registry?res=default_registry);Info |
---|
Sposób uruchomienia programu oraz jego przykładowe użycie pokazane są w szkoleniach zdalnych UNICORE, na które zapisać się można za pośrednictwem Portalu. |
Użytkownik może wykorzystać gotową instalację tekstowego klienta systemu UNICORE (UCC w wersji 6.5.0) dostępnego w ICM, WCSS, Cyfronet, PCSS, TASK. W tym celu należy jednak, oprócz aplikacji o globalny dostęp do systemu UNICORE, wystąpić o dostęp do wybranych maszyn UI (User Interface).
Aby móc korzystać z zainstalowanego klienta UCC użytkownik powinien:
ucc
, które spowoduje przygotowanie plików konfiguracyjnych użytkownika;.p12
;~/.ucc/preferences
:../certs/user-keystore.jks
na ścieżkę do certyfikatu;password=the!user
;#
) wiersz: storetype=pkcs12
;Przykładowe użycie programu pokazane jest w szkoleniach zdalnych UNICORE, na które zapisać się można za pośrednictwem Portalu.
Aby połączyć się z Gridem, należy wykonać polecenie ucc connect
. Pomoc można uzyskać za pomocą polecenia ucc
z opcją -h
:
$ ucc connect
$ ucc -h
Jeżeli hasło użytkownika nie jest zapisane w pliku preferences
, wówczas będzie on pytany o nie przy każdym wywołaniu UCC. Aby tego uniknąć wykorzystać można tryb interaktywny wpisując: ucc shell
. Tryb ten nie wymaga pisania ucc
przed poleceniami. Oferuje ponadto rozwijanie poleceń.
Aby sprawdzić listę dostępnych systemów docelowych, magazynów (stoarge) bądź aplikacji, użytkownik wykonać powinien następujące polecenia:
$ ucc list-sites
$ ucc list-storages
$ ucc list-applications
UNICORE Commandline Client wykorzystuje opis zadań w formacie JSON pozwalając na wskazanie uruchamianego programu, argumentów, ustawień środowiska oraz przesyłanych plików. Przykład opisu zadania przedstawiony został poniżej. Może on zostać skopiowany do pliku date.u
.
Code Block |
---|
# simple job: run Date { ApplicationName: Date, ApplicationVersion: 1.0, } |
Aby uruchomić zadanie, użytkownik powinien wpisać polecenie:
$ ucc run date.u -v
Standardowym wyjściem może być np. plik 1bc1bb08-7737-4fb1-854e-5d89ba18d7f0.stdout
. Opcja -v
pozwala wyświetlić szczegółowe wyniki. Użytkownik może również użyć opcji -b
, która zwraca skrócone nazwy plików (bez hasha).
Opcja -a
pozwala na uruchomienie zadania w sposób asynchroniczny: pliki wejściowe są wysyłane na zdalny system, gdzie zadanie jest zatwierdzane do uruchomienia, jednak wyniki mogą zostać pobrane w późniejszym terminie za pomocą polecenia get-output
. Aby uzyskać status zadania, użyć należy komendy get-status
. Jako argument podać można plik zadania uzyskany w wyniku polecenia run -a
bądź też End Point Reference (EPR) otrzymany z listy zadań (list-jobs
):
$ ucc run -a date.u -v -b
$ ucc list-jobs
$ ucc get-status job
$ ucc get-output jo
Code Block |
---|
{ Imports: [ { From: "u6://StorageName/fileName", To: "remoteFileName" }, ] Exports: [ { From: "remoteFileName", To:"u6://StorageName/fileName" }, ] } |
Plik może również zostać wysłany na Stoarge i pobrany z niego za pomocą poleceń ucc put-file
oraz ucc get-file
. Komenda ls
pozwala na wypisanie wszystkich plików z katalogu:
$ ucc put-file -s fileName -t u6://StorageName/fileName
$ ucc get-file -s u6://StorageName/fileName -t newFileName
$ ucc ls u6://StorageName/fileName
Resources
skryptu opisującego zadanie użytkownik może określić zasoby, z którymi zadanie zostanie uruchomione na zdalnym systemie. Sekcja ta może wyglądać następująco:Code Block |
---|
Resources: { Memory: 128000000, Nodes: 1, CPUs: 8 , } |
newFile
słowo Hello
:
Code Block |
---|
echo "Hello" >> newFile |
Użytkownik może utworzyć plik localScript.sh na lokalnym komputerze. Aby wysłać go na Storage powinien najpierw sprawdzić nazwę dostępnych Storage'y (tutaj: SHARE-ACK). Po przesłaniu pliku można wyświetlić znajdujące się w nim pliki:
$ ucc list-storages
$ ucc put-file -s localScript.sh -t u6://SHARE-ACK/storageScript.sh
$ ucc ls u6://SHARE-ACK/Home
bash.u
jest skryptem importującym storageScript.sh z Home Stoarge do katalogu zadania i zmieniającym jego nazwę na remoteScript.sh
. Skrypt tworzy plik newFile
, który następnie jest pobierany na komputer użytkownika jako localNewFile
. Plik ten jest również eksportowany do Home Storage systemu UNICORE.
Code Block |
---|
{ ApplicationName: "Bash shell", Environment: [ "SOURCE=remoteScript.sh", ], Imports: [ { From: "u6://SHARE-ACK/storageScript.sh", To: "remoteScript.sh"} ], Exports: [ { From: "newFile", To: "localNewFile"}, { From:"newFile", To: "u6://SHARE-ACK/storageNewFile"} ], Resources: { CPUs: 1 , } } |
Zadanie bash.u
może zostać uruchomione poleceniem ucc run
. Na komputerze użytkownika powinien zostać utworzony plik localNewFile
.
$ ucc run bash.u -v
$ ucc ls u6://SHARE-ACK
...