Sobes.tech
Middle

Πώς λειτουργεί το GitLab Runner;

sobes.tech AI

Απάντηση από AI

GitLab Runner είναι ένας πράκτορας που εκτελεί εργασίες CI/CD. Ανταλλάσσει δεδομένα με το GitLab CI/CD μέσω API. Όταν συμβεί ένα γεγονός στο GitLab που ξεκινάει ένα pipeline (π.χ., ένα commit), το GitLab στέλνει ένα αίτημα στον runner. Ο runner λαμβάνει την εργασία, κλωνοποιεί το αποθετήριο, εκτελεί τις εντολές που περιγράφονται στο .gitlab-ci.yml και στέλνει το αποτέλεσμα πίσω στο GitLab.

Βασικά στοιχεία λειτουργίας:

  • Τύποι runners: Shared, Specific, Group. Διαφέρουν ως προς την ορατότητα και την πρόσβαση σε έργα.
  • Executor (Εκτελεστής): Ορίζει το περιβάλλον στο οποίο θα εκτελούνται οι εργασίες. Δημοφιλείς εκτελεστές: shell, docker, kubernetes, virtualbox, ssh. Η επιλογή του εκτελεστή επηρεάζει την απομόνωση και το περιβάλλον εκτέλεσης.
  • Εγγραφή: Ο runner εγγράφεται στο GitLab χρησιμοποιώντας ένα token, συνδέοντάς τον με μια συγκεκριμένη εγκατάσταση, ομάδα ή έργο.
  • Polling (Ερωτήματα): Ο runner ερωτά περιοδικά το GitLab για νέες εργασίες.
  • config.toml: Αρχείο διαμόρφωσης που ορίζει τις ρυθμίσεις του runner, συμπεριλαμβανομένου του τύπου εκτελεστή, του αριθμού παράλληλων εργασιών και άλλων παραμέτρων.

Παράδειγμα δομής config.toml:

# Παγκόσμιες ρυθμίσεις
concurrent = 4

# Ρυθμίσεις runner
[[runners]]
  name = "my-docker-runner"
  url = "https://gitlab.com/"
  token = "YOUR_RUNNER_TOKEN"
  executor = "docker" # επιλογή εκτελεστή
  [runners.docker]
    tls_verify = false
    image = "ubuntu:latest" # εικόνα κατά τη χρήση docker εκτελεστή
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]