Pređi na glavni sadržaj

Runneri

Komanda semaphore runner pokreće Semaphore u režimu runnera i upravlja registracijom runnera (Runner) na serveru. Runner izvršava zadatke (Task) na mašini odvojenoj od Semaphore servera.

semaphore runner --help
savet

Kako runneri rade i kako se konfiguriše serverska strana opisano je u vodiču Runneri.

Pokretanje semaphore runner bez potkomande samo ispisuje pomoć. Komanda ima sledeće potkomande:

KomandaNamena
runner setupInteraktivno kreira konfiguracionu datoteku runnera (i registruje ga ako je naveden token).
runner registerRegistruje runner na serveru pomoću registracionog tokena.
runner startPokreće režim runnera i počinje da prihvata zadatke.
runner unregisterUklanja registraciju runnera sa servera.

Sve potkomande prihvataju globalni fleg --config <path> koji ukazuje na konfiguracionu datoteku runnera (i --no-config za rad isključivo iz promenljivih okruženja).

Interaktivno podešavanje (runner setup)

Vodi vas kroz interaktivno podešavanje, upisuje konfiguracionu datoteku runnera i, ako je registracioni token dostupan (unet tokom upita ili postavljen preko SEMAPHORE_RUNNER_REGISTRATION_TOKEN), odmah registruje runner na serveru.

semaphore runner setup --config /path/to/config.runner.json

Prosledite --config <path> da biste odabrali gde se konfiguraciona datoteka upisuje. Bez njega podešavanje traži izlazni direktorijum (podrazumevano: tekući direktorijum) i tamo upisuje config.runner.json.

Po završetku ispisuje komande za pokretanje runnera, na primer:

# Run in the foreground:
./semaphore runner start --config /path/to/config.runner.json

# Run as a daemon:
nohup ./semaphore runner start --config /path/to/config.runner.json &

Generisanu konfiguracionu datoteku kasnije možete ručno izmeniti umesto da ponovo pokrećete podešavanje.

Opcije konfiguracije runnera

Polja u bloku runner konfiguracione datoteke:

PoljePromenljiva okruženjaOpis
token / token_fileSEMAPHORE_RUNNER_TOKEN / SEMAPHORE_RUNNER_TOKEN_FILEToken za autentifikaciju runnera (izdaje se pri registraciji).
SEMAPHORE_RUNNER_REGISTRATION_TOKENRegistracioni token. Samo kao promenljiva okruženja; nikada se ne upisuje u datoteku.
registration_token_fileSEMAPHORE_RUNNER_REGISTRATION_TOKEN_FILEPutanja do datoteke koja sadrži registracioni token.
nameSEMAPHORE_RUNNER_NAMENaziv runnera koji se prikazuje na serveru.
tagsSEMAPHORE_RUNNER_TAGSJSON niz oznaka za usmeravanje runnera po projektima.
webhookSEMAPHORE_RUNNER_WEBHOOKURL koji server poziva kada se zadatak stavi u red za ovaj runner.
enabledSEMAPHORE_RUNNER_ENABLEDDa li runner prihvata zadatke.
project_idSEMAPHORE_RUNNER_PROJECT_IDID projekta (Project) za runner na nivou projekta. Izostavite za globalni runner.
check_interval_secondsSEMAPHORE_RUNNER_CHECK_INTERVAL_SECONDSInterval provere u sekundama. Podrazumevano: 1.
max_parallel_tasksSEMAPHORE_RUNNER_MAX_PARALLEL_TASKSMaksimalan broj istovremenih zadataka. Podrazumevano: 9999.
one_offSEMAPHORE_RUNNER_ONE_OFFIzlazi nakon obrade jednog posla. Korisno za runnere koji se pokreću na zahtev preko webhook-a.

Detalje podešavanja potražite u Runneri, a kompletnu listu opcija u Konfiguracija.

Registrovanje runnera (runner register)

Registruje runner na serveru i čuva izdati token runnera u konfiguracionoj datoteci (prepisujući postojeći token). Server mora imati konfigurisan runner_registration_token; isti taj token prosleđujete ovde.

# Token read from a file:
semaphore runner register --registration-token-file /path/to/token --config /path/to/config.runner.json

# Token piped from stdin:
echo "$REGISTRATION_TOKEN" | semaphore runner register --stdin-registration-token --config /path/to/config.runner.json

# Token from the environment:
SEMAPHORE_RUNNER_REGISTRATION_TOKEN="$REGISTRATION_TOKEN" semaphore runner register --config /path/to/config.runner.json
FlegOpis
--registration-token-file <path>Čita registracioni token iz datoteke.
--stdin-registration-tokenČita registracioni token sa standardnog ulaza (stdin).
--name <name>Naziv pod kojim se runner registruje.
--tags <tags>Oznake runnera, razdvojene zarezom ili ponavljanjem flega (npr. --tags a,b ili --tags a --tags b).
--webhook <url>Webhook URL runnera.
--enabledUključuje ili isključuje runner na serveru. Podrazumevano true; prosledite --enabled=false da registrujete isključen runner.
--project-id <id>Registruje runner na nivou projekta za zadati projekat. Ako se izostavi (ili je 0), runner se registruje kao globalni runner.

Primenjuju se samo flegovi koje zaista prosledite; --name, --webhook, --tags i --enabled prepisuju odgovarajuće vrednosti iz konfiguracione datoteke i okruženja samo kada su navedeni u komandnoj liniji.

Odakle dolazi registracioni token

Pri registraciji Semaphore uzima registracioni token iz prvog dostupnog izvora, sledećim redosledom:

  1. Fleg --registration-token-file.
  2. Podešavanje registration_token_file u konfiguracionoj datoteci (ili SEMAPHORE_RUNNER_REGISTRATION_TOKEN_FILE).
  3. Standardni ulaz, kada je prosleđen --stdin-registration-token.
  4. Promenljiva okruženja SEMAPHORE_RUNNER_REGISTRATION_TOKEN.

Datoteka sa tokenom koja postoji, ali je prazna, predstavlja grešku. Ako nijedan izvor ne obezbedi token, registracija se pokušava bez njega i server je odbija.

Pokretanje runnera (runner start)

Pokreće runner, povezuje se sa serverom i počinje da prihvata zadatke. Ovo je komanda kojom registrovani runner držite na mreži.

semaphore runner start --config /path/to/config.runner.json
FlegOpis
--auto-registerRegistruje runner pre pokretanja ako još nije registrovan (tj. konfiguracija nema token runnera).
--registerAlijas za --auto-register.

Sa --auto-register, ako konfiguracija nema token, Semaphore čita registracioni token iz registration_token_file (ili SEMAPHORE_RUNNER_REGISTRATION_TOKEN_FILE) ili iz SEMAPHORE_RUNNER_REGISTRATION_TOKEN, zatim ponavlja registraciju svakih 5 sekundi dok ne uspe, ponovo učitava konfiguraciju i pokreće se. Ovo je pogodno za runnere koji se sami registruju pri prvom pokretanju, na primer u kontejnerima.

runner start ne prihvata --registration-token-file ni --stdin-registration-token; ti flegovi pripadaju isključivo komandi runner register.

Uklanjanje registracije runnera (runner unregister)

Uklanja registraciju runnera sa servera, koristeći token runnera iz konfiguracione datoteke.

semaphore runner unregister --config /path/to/config.runner.json