Pređi na glavni sadržaj

Konfiguracioni fajl

Kreiranje konfiguracionog fajla​

Semaphore koristi fajl config.json za svoju osnovnu konfiguraciju. Ovaj fajl možete generisati interaktivno pomoću ugrađenih alata ili preko veb konfiguratora.

Generisanje preko CLI-ja​

Koristite sledeće komande da biste interaktivno generisali konfiguracioni fajl:

  • Za Semaphore server:

    semaphore setup
  • Za Semaphore runner (Runner):

    semaphore runner setup
    savet

    Više detalja o konfiguraciji runnera potražite u odeljku Runneri.

Generisanje na veb-sajtu​

Alternativno, možete koristiti interaktivni veb konfigurator:

Primer konfiguracionog fajla​

Semaphore koristi konfiguracioni fajl config.json sa sledećim sadržajem:

{
"mysql_test": {
"host": "127.0.0.1:3306",
"user": "root",
"pass": "***",
"name": "semaphore"
},

"dialect": "mysql",

"git_client": "go_git",
"git_attempts": 4,

"auth": {
"totp": {
"enabled": false,
"allow_recovery": true
}
},

"use_remote_runner": true,
"runner_registration_token": "73fs***",

"tmp_path": "/tmp/semaphore",
"cookie_hash": "96Nt***",
"cookie_encryption": "x0bs***",
"access_key_encryption": "j1ia***",

"max_tasks_per_template": 3,

"schedule": {
"timezone": "UTC"
},

"log": {
"events": {
"enabled": true,
"path": "./events.log"
}
},

"process": {
"chroot": "/opt/semaphore/sandbox"
}
}

Upotreba konfiguracionog fajla​

  • Za Semaphore server:
semaphore server --config ./config.json
  • Za Semaphore runner:
semaphore runner start --config ./config.json

Direktorijum za tajne​

Semaphore čita fajlove sa tajnama (na primer stavke skladišta ključeva (Key Store) zasnovane na fajlovima ili tokene za HashiCorp Vault i OpenBao koji se čitaju sa diska) isključivo iz konfigurabilnog direktorijuma.

OpcijaPromenljiva okruženjaOpis
dirs.secretsSEMAPHORE_SECRETS_PATHDirektorijum za fajlove sa tajnama. Podrazumevano: /tmp/semaphore.
secrets_path (zastarelo)SEMAPHORE_SECRETS_PATHPodešavanje najvišeg nivoa zadržano radi kompatibilnosti sa starijim verzijama. Koristi se samo kada dirs.secrets nije postavljen ili je još uvek na podrazumevanoj putanji.

Prioritet: dirs.secrets sa vrednošću različitom od podrazumevane ima prednost nad zastarelim secrets_path. Kada postavite SEMAPHORE_SECRETS_PATH, Semaphore ga primenjuje na oba polja.

Primer sa aktuelnom strukturom:

{
"dirs": {
"secrets": "/var/lib/semaphore/secrets"
}
}

Starije instalacije i dalje mogu koristiti:

{
"secrets_path": "/var/lib/semaphore/secrets"
}

Fajlovi ključeva izabrani na kartici Fajl (File) u formi skladišta ključeva, kao i fajlovi tokena na koje se pozivaju spoljna skladišta tajni, moraju se nalaziti unutar ovog direktorijuma. Putanje izvan njega se odbijaju uz poruku file path must be inside secrets path. Pogledajte Ključevi iz promenljivih okruženja i fajlova.

Git operacije​

Semaphore klonira i ažurira repozitorijume (Repository) zadataka pre svakog pokretanja. Ovo ponašanje kontrolišu dve opcije:

OpcijaPromenljiva okruženjaOpis
git_clientSEMAPHORE_GIT_CLIENTImplementacija Git klijenta: cmd_git (podrazumevano, koristi sistemski git binarni fajl) ili go_git (klijent napisan isključivo u jeziku Go).
git_attemptsSEMAPHORE_GIT_ATTEMPTSBroj pokušaja operacija kloniranja i preuzimanja (pull) pre nego što zadatak bude označen kao neuspešan. Podrazumevano: 4. Postavite na 1 za jedan pokušaj bez ponavljanja.

Kada kloniranje ili pull ne uspe, a preostali su pokušaji, Semaphore čeka uz eksponencijalno produžavanje pauze (počinje od 1 sekunde, udvostručuje se pri svakom pokušaju, sa gornjom granicom od 60 sekundi) i upisuje u log poruku poput Git pull failed (...), retrying in 2s. Ponavljanja se odnose samo na mrežne operacije; neuspešan checkout ili greška autentifikacije i dalje dovode do neuspeha zadatka nakon što se iscrpe svi pokušaji.

Ako je vaš Git server povremeno nedostupan, povećajte git_attempts. Ako su greške trenutne i trajne (pogrešni kredencijali, nepostojeći repozitorijum), otklonite osnovni problem — ponavljanja neće pomoći.