UNICORE Commandline Client jest tekstowym klientem systemu UNICORE.
Klient UCC pobrany może zostać ze strony projektu http://www.unicore.eu/download/unicore6/. Ściągnięta paczka może zostać rozpakowana w dowolnej lokalizacji na komputerze użytkownika systemu.
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);
$UCC/bin/ucc download-config -c $UCC/conf/preferences https://unicore.grid.icm.edu.pl:8443/ccm/plgrid-profile-icm.xml 20:3E:60:DE:4A:FF:6D:47:91:BB:87:E7:D3:DD:33:FA:6B:49:DD:C9
$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
registry=
usunąć pierwszy z adresów (https://localhost:8080/DEMO-SITE/services/Registry?res=default_registry);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
.
# 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
{ 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:Resources: { Memory: 128000000, Nodes: 1, CPUs: 8 , }
newFile
słowo Hello
:
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.
{ 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