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: 5.
connection.timeout_secondsSEMAPHORE_RUNNER_CONNECTION_TIMEOUT_SECONDSVreme čekanja u sekundama na povezivanje sa serverom i na njegova zaglavlja odgovora. Podrazumevano: 3.
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