This commit introduces a reordered and renumbered set of setup documentation files to better reflect the deployment stages for both test and production environments. Key changes include: * A new `setup-vs-roadmap-map.md` file to provide a clear mapping between roadmap tasks and their corresponding setup phases. * Significantly expanded Ansible bootstrap documentation for both test and production, detailing Docker, Swarm, security hardening, and StorageBox SSH key management roles. * Formalized database Docker and Swarm cluster setup instructions for test and production, including explicit steps for Swarm worker integration of DB nodes. * Updated roadmap documentation (`roadmap/prod-env/*`) to align with the refined setup, incorporating correct private IP addresses for Swarm joins, new node labels, and floating IP usage for GoDaddy DNS records.
2.7 KiB
2.7 KiB
05 - Test Runner ve Deploy Ön Koşulları
Bu aşamanın amacı test ortamında Gitea Actions runner'ı (act_runner) systemd servisi olarak kurmak ve CI/CD pipeline'larının çalışabileceği ortamı hazırlamaktır.
Runner Yerleşimi
Test ortamında maliyet ve basitlik için tek runner kullanılır:
| Host | Servis Adı | Label |
|---|---|---|
iklim-app-01 |
gitea-act-runner |
test-runner, iklim-app-01, docker |
1. Runner Kullanıcısı ve Yetkiler
Runner, host üzerinde Docker komutlarını çalıştırabilmelidir.
# Kullanıcıyı oluştur
sudo useradd -m -s /bin/bash gitea-runner
# Docker grubuna ekle
sudo usermod -aG docker gitea-runner
2. act_runner Kurulumu
Binary İndirme
wget -O act_runner https://dl.gitea.com/act_runner/0.2.10/act_runner-0.2.10-linux-amd64
sudo mv act_runner /usr/local/bin/
sudo chmod +x /usr/local/bin/act_runner
Kayıt (Registration)
Gitea arayüzünden (Organization -> Settings -> Actions -> Runners) bir Registration Token alın.
# Config dosyasını oluştur
act_runner generate-config > config.yaml
# Kayıt işlemini gerçekleştir
act_runner register --instance https://git.tarla.io --token <TOKEN> --no-interactive
Not: Kayıt sırasında label olarak test-runner,iklim-app-01,docker girildiğinden emin olun.
3. Systemd Servisi
/etc/systemd/system/gitea-act-runner.service dosyasını oluşturun:
[Unit]
Description=Gitea Actions runner
After=network.target docker.service
[Service]
ExecStart=/usr/local/bin/act_runner daemon --config /etc/gitea-act-runner/config.yaml
WorkingDirectory=/var/lib/gitea-runner
User=gitea-runner
Group=gitea-runner
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Servisi başlatın:
sudo systemctl daemon-reload
sudo systemctl enable --now gitea-act-runner
4. Deploy Ön Koşulları
Pipeline'ın iklim-app-01 üzerinde başarılı deploy yapabilmesi için şu araçların kurulu olması şarttır:
docker-cevedocker-compose-plugingettext(envsubstkomutu için)jqgit
5. Gitea Organization Secrets
Pipeline'ların çalışması için Gitea Organization seviyesinde şu secret'lar tanımlanmalıdır:
| Secret | Açıklama |
|---|---|
STORAGEBOX_SSH_PRIV |
StorageBox'a erişim için private key |
HARBOR_USERNAME |
Container registry kullanıcı adı |
HARBOR_PASSWORD |
Container registry şifresi |
Kabul Kriterleri
- Gitea Runners sayfasında
iklim-app-01statusü Idle (yeşil) görünür. - Bir test workflow'u (
runs-on: test-runner) başarıyla tetiklenir. - Runner, host üzerindeki Docker daemon'a erişip konteyner oluşturabilir.
8200/tcp(Vault) portu public internete kapalıdır.