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)
- 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)
-
Neden Jail kullanılıyor? İzolasyon sağlar ve CI süreçlerini ana sistemden ayırır.
-
Birden fazla Worker eklenebilir mi? Evet, ek jail’ler ile yatay ölçekleme yapılabilir.
-
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.