Ana içeriğe geç

FreeBSD Üzerinde Buildbot ile CI/CD Ortamı Kurulumu

Bu rehberde ne öğreneceksiniz?

Bu rehberde FreeBSD Jail mimarisi kullanılarak güvenli bir CI/CD ortamı kurulacaktır.
Buildbot Master ve Worker bileşenleri izole edilecek, ağ erişimi IPFW ile yönetilecek ve web arayüzü Nginx üzerinden yayınlanacaktır.


Ön Hazırlıklar

Kuruluma başlamadan önce aşağıdaki gereksinimler sağlanmalıdır:

  • FreeBSD 11.2 veya üzeri çalışan bir sunucu
  • Kurulu Nginx servisi
  • Root yetkilerine sahip kullanıcı
  • Alan adı (opsiyonel, SSL için önerilir)

1. Buildbot Master ve Worker için Jail Ortamlarının Hazırlanması

Buildbot dış kaynaklı kodlar çalıştırdığı için izolasyon kritik önemdedir.
FreeBSD Jail mimarisi bu izolasyonu düşük kaynak tüketimiyle sağlar.

Loopback Arayüzü Oluşturma

sudo sysrc cloned_interfaces+=lo1
sudo service netif cloneup
  • Bu komutlar jail’ler arası özel ağ iletişimini sağlar.

Master Jail Yapılandırması


buildbot-master {
host.hostname = buildbot-master.localdomain;
ip4.addr = "lo1|10.0.0.2/24";
path = "/usr/jails/buildbot-master";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
mount.devfs;
persist;
}
  • Jail’e özel IP ve dosya yolu atanır.

Worker Jail Yapılandırması


buildbot-worker0 {
host.hostname = buildbot-worker0.localdomain;
ip4.addr = "lo1|10.0.0.3/24";
path = "/usr/jails/buildbot-worker0";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
mount.devfs;
persist;
}

2. Jail’ler İçin İnternet Erişimi (IPFW ve NAT)

  1. Jail’lerin paket indirebilmesi için NAT yapılandırılır.

sudo sysrc firewall_nat_interface=vtnet0

IPFW Kuralları


ipfw nat 123 config if $ext_if
ipfw add 1 allow all from any to any via lo1
ipfw add 2 nat 123 ip4 from any to any in via $ext_if
  • Bu kurallar jail trafiğini kontrollü şekilde internete çıkarır.

3. Buildbot Master Kurulumu


sudo jexec buildbot-master csh
pkg install py36-buildbot py36-buildbot-www git-lite
  • Bu komutlar Buildbot Master bileşenini kurar.


buildbot-3.6 create-master /var/buildbot-master
  • Master yapılandırması oluşturulur.

4. Buildbot Worker Kurulumu


sudo jexec buildbot-worker0 csh
pkg install py36-buildbot-worker git-lite py27-twisted
  • Worker tarafı kurulup Master’a bağlanır.


buildbot-worker-3.6 create-worker /var/buildbot-worker 10.0.0.2 worker0 PAROLA

5. Nginx ile Web Arayüzü Yayınlama


location /buildbot/ {
proxy_pass http://10.0.0.2:8010/;
}

location /buildbot/ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://10.0.0.2:8010/ws;
}
  • Bu yapı Buildbot arayüzünü güvenli şekilde yayınlar.

Sıkça Sorulan Sorular (SSS)

  1. Neden Jail kullanılıyor? İzolasyon sağlar ve CI süreçlerini ana sistemden ayırır.

  2. Birden fazla Worker eklenebilir mi? Evet, ek jail’ler ile yatay ölçekleme yapılabilir.

  3. SSL gerekli mi? Üretim ortamında önerilir.


Sonuç

Bu rehber ile FreeBSD üzerinde izole, güvenli ve ölçeklenebilir bir Buildbot CI/CD altyapısı kurulmuştur. Geliştirme süreçleri otomatikleştirilmiş ve merkezi olarak yönetilebilir hale gelmiştir.

Bu yapı FreeBSD tabanlı sunucularda yüksek performansla Rabisu Bulut altyapısında çalıştırılabilir.