Sari la conținut

JSON and YAML Configuration

Configurați binarul probod direct cu un fișier JSON sau YAML transmis prin fișierul -cfg, structura de acoperire, protecția secretelor și rezolvarea problemelor.

Binarul probod citește configurația completă a timpului de rulare dintr-un fișier JSON sau YAML.

Terminal window
probod -cfg-file /etc/probod/config.yml

probod nu caută un fișier implicit atunci când binarul este executat direct.

The root object contains two sections:

  • unit configurează metrica la nivel de proces și exportul OpenTelemetry.
  • probod configură aplicația, baza de date, autentificarea, stocarea, notificările, integrările și lucrătorii.

Următorul YAML prezintă forma unei configurații tipice de producție. Este un exemplu mai degrabă decât o schemă completă; câmpurile disponibile se pot schimba între versiuni.

unit:
metrics:
addr: "0.0.0.0:8081"
tracing:
addr: "otel-collector:4318"
max-batch-size: 512
batch-timeout: 5
export-timeout: 30
max-queue-size: 2048
probod:
base-url: "https://probo.example.com"
encryption-key: "<base64-encoded 32-byte key>"
chrome-dp-addr: "chrome:9222"
api:
addr: "0.0.0.0:8080"
cors:
allowed-origins:
- "https://probo.example.com"
pg:
addr: "postgres.example.com:5432"
username: "probod"
password: "<database password>"
database: "probod"
pool-size: 100
min-pool-size: 10
auth:
disable-signup: false
cookie:
domain: "probo.example.com"
secret: "<base64-encoded 32-byte key>"
duration: 24
secure: true
same-site: "lax"
password:
pepper: "<base64-encoded 32-byte key>"
iterations: 1000000
oauth2-server:
signing-keys:
- private-key: |
<PEM private key content goes here>
kid: "default"
active: true
aws:
region: "eu-west-1"
bucket: "probo-production"
notifications:
mailer:
sender-name: "Probo"
sender-email: "no-reply@example.com"
smtp:
addr: "smtp.example.com:587"
tls-required: true

Omiteți urmărirea atunci când nu rulați un colector OpenTelemetry. Pentru S3 peAWSomiteți cheile de acces statice atunci când sarcina de lucru are un rol IAM. Pentru un alt serviciu compatibil cu S3, setați endpoint și, dacă este necesar, use-path-style: true.

JSON utilizează aceeași ierarhie și nume de câmp ca YAML.

Păstrați-l în afara controlului sursă, restricționați accesul de citire la contul care rulează probod și protejați copiile stocate cu aceleași controale ca și alte credențiale de producție.

Terminal window
chmod 600 /etc/probod/config.yml

Referințele secrete, cum ar fi awssm://secret-id și awsps:///parameter-name sunt interpretate numai de probod-bootstrap; probod nu le rezolvă.

Cheia de criptare, secretul cookie-ului de sesiune, piperul de parolă și cheia de semnare a tokenului trebuie să rămână disponibile pe durata de viață a implementării. Set persistent secrets before first boot before creating a production file.

Configurarea este încărcată o dată în timpul procesului de pornire. Pentru a aplica o actualizare:

  1. Pregătiți și protejați fișierul de înlocuire.
  2. Redeschideți fiecare instanță probod cu aceeași configurație.
  3. Confirmă că fiecare instanță începe cu succes înainte de a elimina fișierul anterior.

Înlocuirea defectuoasă sau incompletă împiedică pornirea ___ZBT_I18N_RUNTIME_BLOCK_186__.

Când probod se oprește în timpul pornirii:

  1. Citiți prima eroare din jurnal; eșecurile ulterioare pot fi consecințe ale acesteia.
  2. Confirmă că -cfg-file indică un fișier care poate fi citit.
  3. Verificați sintaxa JSON sau YAML, indentarea și tipurile scalare.
  4. Verificați dacă valorile necesare sunt prezente și cheile PEM multiline sau certificatele sunt complete.
  5. Dacă parsarea reușește, verificați conectivitatea la baza de date configurată, la stocarea obiectelor, la serverul SMTP, la punctul de terminare Chrome și la colectorul de telemetrie.

Schema de configurare evoluează odată cu platforma. Revizuirea modificărilor de configurare înainte de upgrade și utilizarea schemei din aceeași versiune ca și versiunea binară de rulare. pkg/probodconfig types.

Ultima actualizare: