Semaphore UI ve GitLab CI/CD

Denis GukovSemaphore UI Kurucusu ve Teknoloji Direktörü
20 dk okuma

GitLab CI/CD ve Semaphore UI altyapı otomasyonu çalıştırır. GitLab job'ları kaynak kodu incelemesi, test ve uygulama teslimatına bağlar. Semaphore UI ise Ansible, Terraform/OpenTofu ve bakım işlemlerini envanterler, kimlik bilgileri, başlatma formları ve zamanlamalarla paylaşılan operasyonlar olarak düzenler. Bu karşılaştırma GitLab 19.5 ve Semaphore UI 2.20.0 sürümlerini kapsar.

Bu makaleyi yapay zekâyla tartış

Genel bakış

Bir uygulama sürümü ve filo çapında sertifika kontrolü aynı playbook'ları kullanabilir, ancak farklı çalışma rutinlerine ihtiyaç duyar. Sürüm genellikle kod değişikliğiyle başlar, artifact üretir ve testlerini kaydeder. Bakım ise operatörün bir hizmet, ortam ve hazırlanmış eylem seçmesiyle başlayabilir. İkisi de güvenilir otomasyon ister, ancak işi başlatan kişiler ve ele aldıkları yapılandırma her zaman aynı değildir.

GitLab depoları, merge request'leri ve CI/CD'yi daha geniş bir geliştirme platformunda birleştirir. Pipeline YAML job'ları tanımlar, GitLab Runner'lar yürütür ve sonuçlar önerilen kod değişikliğine bağlı kalır. Elle başlatmalar ve pipeline zamanlamaları yeni commit'ten bağımsız işleri de kapsar. GitLab.com, Self-Managed ve Dedicated bu platformu edinmek ve işletmek için farklı yollar sunar.

Semaphore UI mevcut Git depolarına bağlanır ve otomasyonu görev şablonlarıyla hazırlar. Ansible envanterleri, kimlik bilgileri ve değişken grupları paylaşılan proje kaynaklarıdır. Formlar çalıştırmaya özel değerleri toplar, zamanlamalar hazırlanmış görevleri tekrarlar ve iş akışları desteklenen araçlardaki işlemleri birleştirir. Ekipler Semaphore UI'ı dağıtım, kaynak sağlama ve sonraki bakım arayüzü olarak kullanırken playbook'lar GitLab'da kalabilir.

Tek projede farklı otomasyon araçları için Semaphore UI görev şablonları.
Semaphore UI. Hazırlanmış Ansible, kod olarak altyapı ve komut satırı işlemleri projenin görev listesini paylaşır.
Job'ların aşamalara göre gruplandığı GitLab pipeline ayrıntıları.
GitLab. Pipeline aşamalarına göre gruplanmış job'lar. Resmî dokümantasyon örneği. Kaynak

Kısa karşılaştırma

Rutin otomasyonda her ikisi de elle başlatma, zamanlama ve yürütme logları sunar. Farklar mühendislerin işlemi nerede tanımladığı, hedefleri ve kimlik bilgilerini nasıl yeniden kullandığı ve sonuçların kod inceleme ve teslimatla ne kadar bağlantılı olduğuyla ilgilidir.

GitLab ve Semaphore UI: temel özellikler
Ölçütler Semaphore UI GitLab
Job yapılandırması Araca özel görev şablonları .gitlab-ci.yml job'ları ve yeniden kullanılabilir bileşenler
Otomasyon araçları Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python Runner job'ları içinde komut satırı araçları
Barındırma Kendi altyapınızda, ikili dosya, paketler, Docker veya Kubernetes GitLab.com, Self-Managed veya Dedicated
Yürütme Sunucuda veya runner'larda Shell, konteyner veya Kubernetes yürütücülü GitLab Runner'lar
Ansible envanteri Yeniden kullanılabilir envanter kaynakları, Git dosyaları ve Ansible keşif eklentileri Job içinde yapılandırılan envanter dosyaları ve keşif eklentileri
Girdiler ve değişkenler Formlar, değişken grupları ve envanter değişkenleri Tür belirtilmiş pipeline girdileri, CI/CD değişkenleri ve ortam kapsamları
İş akışları Araca özel görev şablonlarını bağlayan görsel grafik YAML pipeline'ları, job bağımlılıkları ve yeniden kullanılabilir bileşenler
Kimlik bilgileri Anahtar deposu ve harici secret deposu entegrasyonları CI/CD değişkenleri ve harici secret entegrasyonları
Erişim denetimi Proje rolleri, Enterprise özel rolleri ve şablon izinleri Grup ve proje rolleri, korumalı dallar ve ortamlar
Terraform durumu Pro'da yerleşik HTTP backend veya harici backend Free dahil GitLab tarafından yönetilen HTTP state backend
Lisans ve planlar MIT lisanslı Community, Pro ve Enterprise MIT lisanslı Community Edition, ticari Enterprise Edition özellikleri

Semaphore UI ekibe bir envanteri, bağlantı kimlik bilgilerini ve birden fazla playbook'un ihtiyaç duyduğu değişkenleri yeniden kullanabileceği bir yer sunar. Bir görev ekip arkadaşına form, zamanlanmış bakım işlemi veya kaynak sağlama iş akışının adımı olarak sunulabilir. GitLab kendi yeniden kullanılabilir pipeline yapılandırmasını ve değişkenlerini, merge request'lere, artifact'lara ve dağıtım ortamlarına daha güçlü bağlantılarla sağlar. Ayrım iki ürünün de bakım komutu çalıştırıp çalıştıramaması değil, otomasyonun etrafındaki yapılandırma modelidir.

Özellik karşılaştırması

Bir ortamın tüm yaşamını düşünün: kaynakları oluşturmak, host'ları yapılandırmak, sürüm dağıtmak ve bakıma devam etmek. Aynı kod bu adımların birkaçında yer alabilir. Değişen, platformun hedefleri ve kimlik bilgilerini nasıl yeniden kullandığı, girdileri nasıl topladığı, işi nasıl yürüttüğü ve sonucu sonraki eyleme nasıl bağladığıdır.

Kurulum ve yapılandırma

Paylaşılan otomasyon hizmeti bir host'a, veritabanına ve yükseltme sürecine ihtiyaç duyar. İş bir uygulama derlemesi değil gece yedeklemesi olsa da bu gereksinimler önemlidir.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Kurulum ve yapılandırma: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Kendi altyapısında dağıtım Evet Evet
Yerel Linux paketleri Evet Evet
Yerel Windows sunucusu Evet HayırDesteklenen sunucu Linux'ta çalışır
Kubernetes dağıtımı EvetHelm chart EvetHelm chart veya Operator

GitLab.com Git barındırmayı, CI/CD'yi ve çevresindeki platformu yönetilen hizmet olarak sunar. Self-Managed GitLab için Linux paketleri, Docker ve Kubernetes kurulumları PostgreSQL, Redis ve arka plan worker'ları gibi birlikte çalışan çeşitli hizmetler içerir. GitLab'ı zaten işleten ekip başka web hizmeti eklemeden bu kurulumu otomasyon için kullanabilir.

Semaphore UI uygulama hizmeti ve veritabanıyla bağımsız ikili dosya, yerel Linux paketi, Docker konteyneri veya Kubernetes dağıtımı olarak çalışabilir. Yerel sunucu ikili dosyaları macOS, Windows ve FreeBSD'yi de kapsar. Böylece yalnızca otomasyon arayüzüne ihtiyaç duyan ekip mevcut Git hizmetinin yanına daha küçük bir uygulama kurabilir.

Sunucu ve worker platformları farklı seçimlerdir. Desteklenen Self-Managed GitLab sunucusu Linux'ta çalışsa da GitLab Runner Windows ve macOS dahil işletim sistemlerinde çalışabilir. Semaphore UI web hizmeti Windows'ta çalıştığında bile Ansible yürütmesi Linux, WSL veya Linux runner gibi desteklenen bir kontrol ortamına ihtiyaç duyar.

Otomasyon araçları ve IaC

Kaynak sağlama, host yapılandırma ve hizmet bakımı çoğu zaman farklı araçlar kullanır. Fark, bir shell'in komutu çalıştırıp çalıştıramamasından çok her işlemin nasıl hazırlanıp yeniden kullanıldığıdır.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Otomasyon araçları ve IaC: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Ansible playbook dosyaları EvetGörev şablonu EvetPipeline job komutu
Terraform/OpenTofu EvetGörev şablonu EvetPipeline job komutu
Terragrunt EvetGörev şablonu EvetPipeline job komutu
Bash EvetGörev şablonu EvetPipeline job komutu
PowerShell EvetGörev şablonu EvetPipeline job komutu
Python EvetGörev şablonu EvetPipeline job komutu
Yerleşik Terraform state depolama EvetProHTTP backend EvetFree dahil HTTP backend

GitLab job'ları pipeline YAML içinde tanımlanan komutları runner'da yüklü veya konteyner imajının sağladığı araçlarla çalıştırır. Böylece Ansible, Terraform/OpenTofu ve Terragrunt test ve dağıtımla aynı pipeline'da veya bağımsız bakım pipeline'ında yer alabilir. GitLab merge request'lerle incelenen değişiklikler için OpenTofu bileşenleri ve altyapı iş akışlarını da belgeler.

Semaphore UI Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell ve Python için ayrı görev şablonları sunar. Mühendisler arayüzde depoyu, araç ayarlarını, kimlik bilgilerini ve ortak değişkenleri seçerken otomasyon kodu Git'te kalır. Terraform kaynak sağlama görevi veya Python hazırlık kontrolü bağımsız, zamanlanmış veya iş akışı içinde çalışabilir. Bu model, ortak başlatma ayarlarını Semaphore UI'da yönetmek ve hazırlanmış işlemleri arayüzden sunmak isteyen ekiplere uygundur. İş sırası ve yapılandırma dahil orkestrasyondaki değişikliklerin kod incelemesi ve sürüm geçmişi gerektirdiği durumlarda Pipeline YAML yararlıdır.

Kaynak sağlama için Semaphore UI Pro workspace'ler, sürüm geçmişi ve arayüz yönetimi içeren HTTP state backend ekler. Paylaşılan Terraform/OpenTofu state başka hizmet gerektirmeden hazırlanmış IaC işlemlerinin yanında kalabilir. GitLab tarafından yönetilen Terraform/OpenTofu state Free'de mevcuttur ve HTTP backend ile kilitlemeyi de destekler. İki üründe de mevcut harici backend'ler kullanılabilir. Semaphore UI'ın varsayılan plan ve apply komutları üzerine yazılmadıkça kilitlemeyi devre dışı bırakır, dolayısıyla yalnızca backend desteği bu çalıştırmalarda kilitlemeyi etkinleştirmez.

Semaphore UI kullanmaya başlamak için depoları taşımak gerekmez. Bir proje kendi URL, dal ve kimlik bilgilerine sahip birden fazla Git deposu kaydedip her şablonda uygun olanı seçebilir. GitLab CI/CD de harici Git hizmetleriyle çalışır: Premium ve Ultimate harici depo entegrasyonu yansıtılmış GitLab projesi oluşturur. Pipeline yapılandırması alternatif yolda, başka projede veya harici YAML URL'sinde bulunabilir, job da başka depoyu açıkça klonlayabilir. GitLab pipeline'ları yine bir GitLab projesine aittir. Dolayısıyla Semaphore UI operasyon projesi mevcut Git hizmetlerinin yanında yer alabilir, GitLab da teslimat ve bakım pipeline'ları için seçenek olmaya devam eder.

Kaydedilmiş işlemler ve zamanlamalar

Hizmet yeniden başlatma, sertifika yenileme veya uygulama yayınlama işlemi yapılandırmasını korumalıdır. Ekip arkadaşları daha sonra işlemi seçer, değişen girdileri sağlar ve elle veya zamanlanmış olarak çalıştırır.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Kaydedilmiş işlemler ve zamanlamalar: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
CI/CD YAML olmadan job tanımları EvetGörev şablonu formu HayırPipeline YAML gerekir
Başlatma girdi formları EvetZorunlu alanlar, tam sayı kontrolleri ve seçenekler EvetTür belirtilmiş girdiler, seçenekler ve regex doğrulaması
Paylaşılan değişkenler EvetDeğişken grupları EvetGrup ve proje değişkenleri
Zamanlanmış çalıştırmalar Evet Evet
Derleme sürümleri ve dağıtım seçimi EvetBirbirine bağlı Build ve Deploy şablonları EvetPipeline job'ları ve artifact/sürüm referansları
Kaydedilmiş depo bağlantıları EvetŞablonların yeniden kullandığı adlandırılmış proje depoları EvetProje deposu ve CI/CD yapılandırması

GitLab job'ları pipeline YAML içinde tanımlar. Pipeline düzenleyicisi yapılandırmayı doğrulayıp görselleştirir, Pipeline Wizard ise depoya commit edilen yapılandırma dosyası oluşturur. Semaphore UI görev şablonu formu, CI/CD YAML tanımı olmadan araç, depo, envanter ve değişken gruplarını seçerek işlemi kaydeder. Bu, mühendislerin kayıtlı işlemi nasıl yönettiğiyle ilgilidir. Her iki ürün de her çalıştırmada yeni commit gerektirmeden mevcut job'ları girdilerle elle veya zamanlanmış olarak başlatabilir.

GitLab pipeline girdileri YAML içinde varsayılan değerler, izin verilen seçenekler ve regex doğrulamasıyla tanımlanan tür belirtilmiş parametrelerdir. Grup ve proje CI/CD değişkenleri ortam kapsamları dahil yeniden kullanılabilir yapılandırma sağlar. Ekip arkadaşı hazırlanmış pipeline'ı başlatırken bu girdileri verir, pipeline zamanlaması ise gözetimsiz çalıştırmalar için yapılandırmayı sağlar.

Semaphore UI yeniden kullanılabilir yapılandırmayı görev şablonunda, seçilen envanterde ve değişken gruplarında tutar. Formlar zorunlu alanlar, tam sayı kontrolleri ve önceden tanımlanmış seçeneklerle başlatma değerlerini sunar. GitLab'ın yapılandırılabilir regex kurallarını sağlamazlar. Örneğin mühendis hizmet adı, istenen durum ve ortam seçenekleriyle bir hizmet işlemi hazırlayabilir. Ekip arkadaşı formu doldurur, görevi başlatır ve durumuyla çıktısını okur. Playbook istenen eylemi uygular, paylaşılan kaynaklar ise depoyu, host'ları ve bağlantı ayrıntılarını sağlar.

Semaphore UI Build ve Deploy şablonlarını da bağlar. Derleme bir sürüm kaydeder, dağıtım başarılı derleme sürümünü seçer veya başarılı derlemeden sonra otomatik başlar. Otomasyon paketi veya imajı ekibin seçtiği depolamaya yükler ve oradan alır. GitLab bu sürümü pipeline job'ları, artifact referansları ve dağıtım ortamlarıyla, entegre test ve teslimat kanıtlarıyla temsil eder.

Aynı kurulum gözetimsiz işleri de destekler. Sertifika kontrolü şablonu her gece ortamın envanterinde çalışabilir ve playbook süresi dolmak üzere olan sertifika bulduğunda hata bildirebilir. 0 2 * * * gibi bir cron ifadesi bunu yapılandırılmış zamanlayıcı saat diliminde her gün 02:00'ye planlar, varsayılan saat dilimi UTC'dir. Tek seferlik zamanlamalar planlı bakım penceresini kapsar. GitLab da pipeline zamanlaması ve yapılandırılmış girdilerle aynı playbook'u zamanlayabilir.

Envanter

Host bakımı, hedeflerin ve bağlantı ayarlarının yeniden kullanılabilir bir tanımına dayanır. Yama uygulama, yedekleme ve sertifika kontrolü aynı tanımı paylaşabilir.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Envanter: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Yeniden kullanılabilir Ansible envanterleri EvetArayüzden yönetilen envanter kaynakları EvetJob'larda envanter dosyaları ve eklentiler
Dinamik host keşfi EvetAnsible envanter eklentileri EvetAnsible envanter eklentilerini job içinde çalıştırma
Başlatırken host seçimi EvetAnsible limit girdisi EvetAnsible limit'e iletilen pipeline girdisi

Semaphore UI envanteri, şablonların paylaşabildiği adlandırılmış bir proje kaynağına dönüştürür. Düzenlenebilir INI/YAML içerebilir, Git'teki bir dosyaya başvurabilir veya Ansible'ın dinamik envanter eklentilerini kullanabilir. Seçilen envanter host ve isteğe bağlı sudo kimlik bilgisi referanslarını da tutar, dolayısıyla hedef yapılandırmasını değiştirmek her bakım işlemini düzenlemeyi gerektirmez.

GitLab aynı Ansible dosyalarını ve keşif eklentilerini kullanabilir. Job envanteri deposundan veya yapılandırılmış başka kaynaktan alır, gerekli keşif eklentisini yükler ve seçilen girdileri Ansible'a iletir. Her ikisi de bulut API'lerinden veya yüklü Ansible eklentilerinin desteklediği diğer sistemlerden host keşfedebilir. Semaphore UI'ın farkı operasyon arayüzündeki yeniden kullanılabilir envanter nesnesi ve bağlantı ayarlarıdır.

Tek sunucudaki bir kurtarma görevi için izin verilen bir Ansible limit, yeni envanter oluşturmadan çalıştırmayı daraltır. Bu, filoyu otomatik olarak bağımsız job'lara bölmek yerine tek görev içindeki host'ları seçer. Değişikliklerinin incelenmesi gerektiğinde Git'teki envanter her iki üründe de yararlıdır.

Yürütme

Yürütmenin doğru bağımlılıklarla hedef ağa ulaşması gerekir. Worker konumu ve job başına izolasyon, web sunucusunun nasıl kurulduğundan bağımsızdır.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Yürütme: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Uzak yürütme EvetRunner'lar EvetGitLab Runner'lar
Konteyner içinde job'lar EvetProDocker yürütücüsü EvetDocker yürütücüsü
Kubernetes görev podları EvetEnterprise EvetKubernetes yürütücüsü
Runner yönlendirme EvetProRunner etiketleri EvetRunner etiketleri
Proje yürütme worker'ları EvetProProjeye atanmış runner'lar EvetProje runner’ları

GitLab Runner'lar job'ları shell, Docker veya Kubernetes yürütücüleriyle çalıştırır. Semaphore UI uygulama sunucusunda veya yönetilen sistemlere yakın runner'da çalışabilir. Her ikisi de paylaşılan arayüz başka yerde dururken yürütmeyi özel ağ içine yerleştirmeye izin verir.

GitLab projeye özel runner'ları ve etiket tabanlı job yönlendirmesini destekler. Semaphore UI Pro projeye atanmış runner'lar, etiket tabanlı yönlendirme ve görev başına Docker yürütmesi ekler. Enterprise Kubernetes görev yürütmesi sunar. Bu ayarlar ekibin gerekli bağlantı ve bağımlılıklara sahip yürütme kapasitesini seçmesini sağlar. Uygulama sunucusunu konteynerde kurmak, her job için konteyner çalışma zamanı seçmekten ayrı kalır.

İş akışları

Bir host oluşturmak, yapılandırmak ve hizmetini doğrulamak birden fazla kayıtlı işlemi birleştirir. Hatalar ve onay noktaları sonraki adımın çalışıp çalışmayacağını belirler.

DestekleniyorKısmen destekleniyorDesteklenmiyor
İş akışları: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Grafik tabanlı iş akışı düzenleme EvetKaydedilmiş şablonları görsel olarak bağlama HayırYAML düzenleme, oluşan grafiği görüntüleme
Başarı ve hata dalları EvetGörsel iş akışı bağlantıları EvetBaşarı/hata job'ları ve needs bağımlılıkları
Elle karar için duraklatma Evetİş akışı onayı EvetBloklayan manuel job
Ayrı onay izni Hayır EvetPremiumKorumalı ortam dağıtım onayları
Job'lar arasında değer iletimi Evet EvetDotenv rapor artifact'ları
Job'lar arasında dosyalar KısmenDepolama ve aktarım yapılandırılır EvetJob artifact'ları
Yeniden kullanılabilir çok adımlı bileşenler KısmenGörevler yeniden kullanılır, sıra yeniden oluşturulur EvetCI/CD bileşenleri

İşlem birden fazla araç kullandığında Semaphore UI iş akışları kayıtlı operasyonları bağlar. OpenTofu görevi ortam oluşturabilir, Ansible görevi host'ları yapılandırabilir ve Python görevi ortamı başka sisteme kaydedebilir. Başarı ve hata dalları sonraki adımı yönlendirir, onay ise değişiklikten önce sırayı duraklatabilir. Şablonlar sonraki bakım için ayrı ayrı da kullanılabilir, dolayısıyla teşhis çalıştırmak tüm kaynak sağlama işlemini yeniden yürütmeyi gerektirmez.

Semaphore UI iş akışı düzenleyicisi, mühendisin kayıtlı şablonları bağlamasına ve başarı ya da hata yollarını grafik üzerinde yapılandırmasına izin verir. GitLab pipeline düzenleyicisi YAML'ı düzenleyip doğrular, ardından oluşan job'ları ve needs bağımlılıklarını görselleştirir. Görselleştirme işlemi incelemeye yardımcı olurken bağlantı değişiklikleri pipeline yapılandırmasında yapılır. Operatör mevcut işlemleri YAML orkestrasyonu yönetmek yerine görsel olarak birleştirmek istediğinde bu fark önemlidir.

GitLab, dağıtılan sürüm veya ortam URL'si gibi hesaplanmış değerleri dotenv rapor artifact'larıyla sonraki job'lara aktarabilir. Karmaşık JSON veya çok satırlı veri için normal dosya artifact'ı kullanılır. Kaynak sağlama ve yapılandırma, Semaphore UI görevleri arasında yapılandırılmış değerler aktarabilir. Örneğin yeni host adresini içeren Terraform/OpenTofu çıktısı sonraki işlemin girdisi olabilir. 2.20'de çıktı toplama, sunucuda veya uzak runner'da yerel yürütücü kullanılarak Ansible set_stats, Terraform/OpenTofu/Terragrunt çıktıları ve Bash, PowerShell veya Python'dan JSON'u kapsar. Docker ve Kubernetes görev yürütücüleri bu iş akışı çıktılarını üretmez. Alıcı şablon girdiyi tanımlar, playbook'u veya envanter yapılandırması bu girdiyi yeni host'u hedeflemek için kullanır.

GitLab her planda bloklayan manuel job ile pipeline'ı duraklatabilir. İsteğe bağlı manuel job'lar pipeline'ı engellemediğinden when: manual ile allow_failure: false birlikte ayarlanmalıdır. Premium ve Ultimate dağıtım onayları korumalı ortamlar için bağımsız atanmış onay gereksinimleri ekler. Semaphore UI 2.20 iş akışı onayı proje görevlerini çalıştırma iznine bağlıdır, ayrı onaylayıcı rolü 2.21 için duyurulmuştur. Bağımsız yönetilen onay sınırı gerektiğinde GitLab'ın korumalı ortam onayları kullanılmalıdır.

Dosyalar farklı bir yol gerektirir. Derlenmiş paket veya kaydedilmiş Terraform planı sonraki işlemin alabileceği yerde saklanmalı ya da açıkça aktarılmalıdır. GitLab job artifact'ları teslimat pipeline'ının bu parçasını zaten karşılar. Dağıtımı Semaphore UI yürüttüğünde otomasyonu CI'ın sağladığı sürüm veya digest ile yayımlanmış artifact'ı alabilir. Böylece GitLab'ın derleme kanıtı korunurken sonraki host işlemleri Semaphore UI envanterlerini, kimlik bilgilerini ve çalıştırma geçmişini kullanabilir.

GitLab CI/CD bileşenleri job dizileri dahil sürümlenmiş ve yeniden kullanılabilir pipeline yapılandırmasını paketler. Semaphore UI tek tek görev şablonlarını yeniden kullanır, işlem sırası ise her iş akışında tanımlanır ve tek bir iç içe iş akışı olarak eklenemez. Birçok teslimat pipeline'ının bakımı yapılan çok adımlı süreç paylaşması gerektiğinde bileşenler değerlidir. Ekipler esas olarak temel işlemleri yeniden kullanıp kaynak sağlama, dağıtım veya kurtarma için farklı biçimlerde bağladığında Semaphore UI modeli yararlıdır.

Erişim kontrolü ve oturum açma

Hazırlanmış işlemi çalıştıran kişi, onu değiştiren mühendis olmayabilir. Proje izinleri, daha dar yürütme yetkileri ve oturum açma kontrolleri bu yetki devrinin farklı parçalarını çözer.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Erişim kontrolü ve oturum açma: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Proje düzeyinde RBAC EvetProje rolleri EvetGrup ve proje rolleri
Proje yönetimi olmadan çalıştırma EvetTask Runner EvetDeveloper rolü, kod da gönderebilir
Dağıtım yürütme kontrolleri EvetEnterpriseŞablon izinleri EvetPremiumKorumalı ortamlar
LDAP ile oturum açma EvetPro EvetSelf-Managed
OpenID Connect ile oturum açma EvetPro EvetSelf-Managed
Çok faktörlü kimlik doğrulama EvetProYerel TOTP veya kimlik sağlayıcısı EvetYerel doğrulayıcı veya passkey

GitLab grup ve proje rolleriyle birlikte korumalı dal ve ortamlar için ek kontroller kullanır. Standart Developer rolü pipeline çalıştırabilir ve korumalı olmayan dallara kod gönderebilir. Bu kod katkısı izinleri olmadan yalnızca dağıtım erişimi için Premium ve Ultimate, korumalı ortama erişimi olan davetli Reporter rolündeki grupları destekler. GitLab üzerinden operasyon devreden ekipler bu dağıtım sınırını açıkça yapılandırır.

Semaphore UI operasyon ekibine şablonlar, envanterler, depolar, kimlik bilgileri ve değişken grupları etrafında kendi proje sınırını verir. Community proje yönetimini yürütmeden zaten ayırır: Task Runner'lar proje şablonlarını çalıştırabilir ve diğer kaynaklara salt okunur erişir. Mühendisler hazırlanmış yapılandırmayı yönetirken ekip arkadaşları projenin sunduğu işlemleri çalıştırabilir.

Enterprise özel rolleri ve şablon düzeyinde izinler bu kapsamı daraltır. Destek çalışanı proje çapında Task Runner erişimi yerine belirli yeniden başlatma şablonunda yürütme izni veren özel role sahip Guest temel rolü alabilir. Envanteri, kimlik bilgileri ve başlatma seçenekleri mühendis tarafından hazırlanır. Devredilen eylem tüm operasyon projesine üyelikten daha belirliyse bu yararlıdır.

Form, işlemin arayüzüdür, erişim kurallarının yerine geçmez. Otomasyon kodu ve izin verilen başlatma geçersiz kılmaları işlemi amaçlanan hedeflerle sınırlı tutmalıdır. Semaphore UI şablon izinleri, kaynakların keyfî birleşimleri için ayrı envanter ve kimlik bilgisi izinleri sağlamaz.

GitLab Self-Managed LDAP ve OpenID Connect'i destekler, GitLab ayrıca hesap düzeyinde iki faktörlü kimlik doğrulama sunar. Semaphore UI Pro yerel TOTP sağlar, LDAP ve OIDC'yi destekler. Merkezi kimlik giriş yapan kişiyi doğrular, hangi işlemleri çalıştırabileceğini ise yine proje rolleri ve şablon izinleri belirler.

Gizli bilgiler

Operatör, başlatma girdilerine tekrar tekrar parola yapıştırmak yerine hazırlanmış bağlantıyı seçmelidir. Mevcut secret depoları bu bağlantıları job parametresine dönüşmeden sağlayabilir.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Gizli bilgiler: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Saklanan secret'lar EvetAnahtar deposu ve secret değişkenleri EvetMaskelenmiş veya gizli değişkenler
HashiCorp Vault EvetPro EvetPremiumYapılandırılmış job secret'ı
AWS Secrets Manager EvetEnterprise EvetPremiumYapılandırılmış job secret'ı
Azure Key Vault EvetEnterprise EvetPremiumYapılandırılmış job secret'ı
Harici OpenBao secret'ları EvetProAnahtar deposu entegrasyonu EvetJob içinde yapılandırılan CLI ile alma
Devolutions Server kimlik bilgileri EvetEnterpriseAnahtar deposu entegrasyonu EvetJob içinde yapılandırılan kimlik bilgisi API çağrısı
CyberArk secret'ları EvetEnterprisePVWA REST API deposu EvetAnsible job'ında CCP üzerinden alma

GitLab job'ları maskelenebilen veya gizlenebilen CI/CD değişkenlerini kullanır. Premium harici secret entegrasyonları HashiCorp Vault, AWS Secrets Manager, Azure Key Vault ve Google Cloud Secret Manager gibi hizmetlerden değer ister. GitLab 19.5 ayrıca Premium ve Ultimate için OpenBao tabanlı Secrets Manager sunar. Çevrimiçi lisanslarda GitLab Credits ile ücretlendirilir, çevrimdışı Self-Managed lisanslarda eklenti olarak sağlanır. Job'lar secret'ları açıkça ister, erişim yapılandırılmış izinlerle yönetilir ve denetim olaylarında kaydedilir.

Semaphore UI anahtar deposu SSH anahtarlarını parola ve erişim token'ları dahil kullanıcı adı/parola kimlik bilgilerinden ayırır. Depo kod çekme kimlik bilgisini seçer, Ansible envanteri host ve isteğe bağlı sudo kimlik bilgilerini seçer, şablon ise Ansible Vault parolası kullanabilir. Bu ilişkiler kayıtlı işlemin parçasıdır, dolayısıyla sertifika yenileme veya hizmet görevi başlatan kişinin her bağlantı secret'ını forma yapıştırması gerekmez.

Zaten secret deposu işleten ekip için Semaphore UI Pro HashiCorp Vault ve OpenBao entegrasyonları sağlar. Enterprise AWS Secrets Manager, Azure Key Vault ve Devolutions Server ekler. Aynı dağıtım için GitLab secret'ları job değişkenleri veya yapılandırılmış secret entegrasyonları üzerinden sağlar. Semaphore UI kimlik bilgisi referanslarını depolara, envanterlere ve şablonlara bağladığından operatörler başlatma sırasında hazır bağlantıları yeniden kullanır. Yerel entegrasyon gereken hizmeti kapsamıyorsa komut doğrudan secret alabilir, bu alma işlemini ekip yapılandırır ve yönetir.

Semaphore UI OpenBao ve Devolutions Server için sırasıyla Pro ve Enterprise'da adlandırılmış anahtar deposu entegrasyonları sunar. GitLab job'ları OpenBao değerini CLI veya Devolutions Credentials girdisini API üzerinden alabilir. Ekip, kayıtlı anahtar deposu bağlantısı seçmek yerine kimlik doğrulama, alma ve ekleme işlemlerini job içinde yönetir. Mevcut secret deposu ve job kodu süreci zaten kapsıyorsa bu uygulanabilir bir yoldur.

Semaphore UI Enterprise CyberArk ile PVWA REST API üzerinden entegre olur. Ansible çalıştıran GitLab job'ı cyberark.pas koleksiyonu ve Central Credential Provider üzerinden CyberArk kimlik bilgilerini alabilir. Koleksiyon ve uygulama kimlik doğrulaması job çalışma ortamında yapılandırılır. Bunlar farklı CyberArk arayüzleri kullandığından entegrasyon ekibin işlettiği CyberArk hizmetiyle eşleşmelidir.

Günlükler ve denetim

Yama uygulama veya dağıtımdan sonra ekip hem yürütme sonuçlarına hem de işlemi kimin değiştirdiği ya da başlattığına ilişkin kayda ihtiyaç duyar. Bu kayıtlar farklı soruları yanıtlar.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Günlükler ve denetim: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
Yürütme geçmişi ve loglar Evet Evet
Ansible sonuçlarının sunumu EvetProYerleşik host/görev özeti EvetYapılandırılmış Ansible JUnit callback ve rapor yayımlama
Yönetimsel denetim geçmişi EvetKayıt etkinleştirilir, yönetici görünümü EvetPremiumProje ve grup denetim olayları
SIEM iletimi EvetProTLS Syslog veya Splunk HEC EvetUltimateGrup denetim olayı akışı

Semaphore UI görev durumunu, başlatma ayrıntılarını, depo revizyonunu ve çıktıyı tutar. Pro entegre Ansible host/görev özeti ekleyerek filo çapındaki başarısız kontrolden etkilenen host'lara ulaşmayı kolaylaştırır. GitLab job loglarını saklar ve Ansible sonuçlarını yapılandırılmış JUnit rapor artifact'ları üzerinden gösterebilir. Test raporları merge request ve pipeline görünümlerine de yansır, bu da altyapı kontrolleri kod incelemesinin parçası olduğunda yararlıdır.

Semaphore UI erişim incelemeleri ve olay araştırmaları için denetim kaydı açıkken kimlik doğrulama, kaynak değişiklikleri ve görev etkinliğini kaydeder. Yönetici denetim görünümü tüm sürümlerde projeler arasıdır. GitLab Premium ve Ultimate grup ve proje denetim sayfaları sunar, Free hesap geçmişi ise başarılı oturum açmaları kapsar. GitLab denetim izinleri ve olay türleri grup, proje ve instance kapsamına bağlıdır.

Semaphore UI Pro filtreleme, CSV veya JSONL dışa aktarma ve TLS Syslog veya Splunk HEC ile iletme ekler. GitLab Ultimate grup denetim olaylarını JSON olarak harici hedeflere aktarır. Her ikisi de güvenlik bilgileri ve olay yönetimi (SIEM) sistemini besleyebilir, ancak olaylar ve kapsam sıradan job çıktısından farklıdır.

Entegrasyonlar

Bir sürüm yayınlama olayı veya izleme sistemi hazırlanmış işlemi başlatıp sonucunu ekibe iletebilir. Asıl karşılaştırılması gereken, bu bağlantının ne kadarının ürün içinde yapılandırıldığıdır.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Entegrasyonlar: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
API ile job başlatma ve inceleme Evet Evet
Gelen webhook tetikleyicileri Evetİstek eşleştiricileri ve değer çıkarıcıları EvetPipeline tetikleme webhook'u
Sohbet bildirimleri EvetSlack, Teams, Telegram ve diğer kanallar EvetProje bildirim entegrasyonları

Semaphore UI kimlik doğrulamalı görev API'si ve gelen entegrasyon endpoint'leri sunar. Eşleştiriciler isteği filtreler, çıkarıcılar başlık veya gövde alanlarını görev girdilerine eşler. GitLab bir dal veya etiket için pipeline başlatan pipeline tetikleme API'leri ve webhook URL'leri sağlar. Proje entegrasyonları teslimat olaylarını issue takip sistemlerine ve harici hizmetlere de bağlar. Böylece izleme uyarısı yeni kod commit'i olmadan hazırlanmış teşhis başlatabilir.

Semaphore UI e-posta, Slack, Microsoft Teams, Telegram, Rocket.Chat, DingTalk ve Gotify bildirim kanallarını içerir. Şablonlar ve proje uyarıları sonuçların nereye gideceğini seçer. GitLab Microsoft Teams bildirimleri, pipeline durum e-postaları ve Slack uygulaması gibi proje entegrasyonları sağlar. Bildirim bağlantısı ekip arkadaşlarının çalıştırmayı incelemesine yardım eder, kendi başına sohbet içinden onay değildir.

Yapay zekâ destekli otomasyon

Bir kodlama asistanı, belgelenmiş API'leri, yapılandırma örneklerini ve ilgili çıktıyı kullanarak bir işlemi hazırlamaya veya başarısız bir çalıştırmayı incelemeye yardımcı olabilir.

DestekleniyorKısmen destekleniyorDesteklenmiyor
Yapay zekâ destekli otomasyon: GitLab ve Semaphore UI
Ölçütler Semaphore UI GitLab
MCP erişimi EvetTopluluk bağlayıcısı EvetGitLab MCP sunucusu

Her iki ürün de Claude Code ve Codex gibi asistanların yapılandırma hazırlarken veya job çıktısını incelerken başvurabileceği herkese açık dokümantasyon ve API'ler sağlar. GitLab pipeline YAML asistana teslimat yapılandırmasını verir, Semaphore UI API'si ise kayıtlı işlemi ve proje kaynaklarını sunar. Bu, oluşturulan değişiklikleri otomatik olarak doğru kılmadan kurulum ve sorun gidermeyi destekler.

GitLab 19.5 genel kullanıma açık MCP sunucusu içerir, kullanılabilir araçlar erişime ve lisanslı özelliklere bağlıdır. Semaphore UI'ın API'si için topluluk MCP bağlayıcısı vardır ve Pro için 2.21.0 sürümünde resmî MCP desteği duyurulmuştur. Bağlayıcı erişimi kendisine sağlanan hesap ve kimlik bilgilerine bağlı olduğundan asistana işleme uygun kapsam verilmelidir.

Lisanslama ve destek

GitLab otomasyonun çevresindeki geliştirme platformunu kapsar, Semaphore UI ise onu çalıştırmaya odaklı bir hizmet sunar. Ekonomik karşılaştırma, ekibin mevcut sistemleri dahil hangi sorumlulukları satın almak ve işletmek istediğine bağlıdır.

Açık kaynak ve ticari seçenekler

GitLab Community Edition MIT lisanslıdır, Enterprise Edition ise ayrı lisanslanan ticari yetenekler içerir. Free, Premium ve Ultimate planları farklı gereksinimleri kapsar. Dağıtım onayları ve belgelenmiş yerel harici secret entegrasyonları Premium gerektirir. GitLab tarafından yönetilen Terraform/OpenTofu state Free'de vardır. Barındırılan seçenekler işlem ve depolama kotaları içerirken kendi yönetilen runner'lar ekibin altyapısını kullanır.

Semaphore UI Community MIT lisanslıdır ve temel şablonlar, proje rolleri, zamanlamalar ve iş akışlarını kapsar. Pro ve Enterprise aynı ürün ailesine yeni yetenekler ekler. Mevcut tüm Semaphore UI planları kendi altyapınızda barındırılır. Zaten Git hizmetine sahip ve Ansible ile IaC hizmeti arayan ekip için yeni hizmet, yalnızca bu job'lar için daha geniş geliştirme platformu getirmek yerine otomasyon işletmeye odaklanır.

Ücretli özellikler ve destek

Semaphore UI Pro burada ele alınan state backend, proje runner'ları ve görev başına Docker yürütmesini ekler. Enterprise Kubernetes görev yürütmesi, özel roller ve şablon izinleri sunar. Sürüm seçimi her operatörün gelişmiş kontrole ihtiyaç duyduğu varsayımına değil, gereken yürütme ve yetki devri modeline dayanır.

GitLab Free teknik destek içermez, Premium ve Ultimate ise destek etkisine bağlı yanıt hedefleriyle üretici desteği sunar. Semaphore UI Community imkânlar ölçüsünde yardım sağlar, Pro mesai saatlerinde üretici desteği içerir, Enterprise ise özel destek taahhütleri ve başlangıç, yapılandırma, yükseltme ve geçiş yardımı sunar. İşletilen ortamın gerçek plan ve anlaşması karşılaştırılmalıdır.

Bakım ve sorumluluk

Aynı dağıtım veya bakım işleminde GitLab komutları, işlem sırasını ve yapılandırma referanslarını pipeline YAML içinde tutar. Semaphore UI araç ayarlarını, envanteri, kimlik bilgilerini ve değişken gruplarını yeniden kullanılabilir görev şablonlarıyla tutar. Bu işlemleri Semaphore UI'a taşımak, otomasyon kodu ve incelemeleri GitLab'da kalırken CI yapılandırmasının yerini alabilir. GitLab'ın başlatma girdileri, izinleri ve yürütme modeli onu kullanan kişilere zaten uygunsa job'ları orada tutmak mantıklıdır.

Nasıl seçmeli?

Seçim, otomasyonu kullanan kişilere ve platformun onlar için düzenlemesi gereken kaynaklara dayanmalıdır. Komut çalıştırma yeteneği ortaktır. Daha büyük fark, çevresindeki işin bir teslimat pipeline'ı mı, hazırlanmış altyapı işlemi mi yoksa ikisi birden mi olduğudur.

GitLab CI/CD ne zaman seçilmeli?

Otomasyon geliştirme ve inceleme sürecine yakın kalmalıysa GitLab CI/CD uygundur.

  • Kod inceleme, testler ve artifact'lar tek bir zincir oluşturur. Altyapı ve uygulama değişiklikleri merge request'lerde doğrulanır, pipeline sonuçları ve dağıtım kanıtı yanlarında tutulur.
  • Pipeline bileşenleri ve ortam kontrolleri zorunludur. Birçok proje sürümlenmiş job sıralarını paylaşır veya dağıtımlar korumalı ortam onay kurallarına dayanır.
  • Mevcut pipeline'lar operatörlere etkili biçimde hizmet verir. Girdileri, zamanlamaları, runner'ları ve erişim kontrolleri ayrı arayüz olmadan bakım işini zaten karşılar.

Semaphore UI ne zaman seçilmeli?

Kod GitLab'da kalsa bile altyapı otomasyonunu paylaşmak ve işletmek ayrı bir ihtiyaçsa Semaphore UI uygundur.

  • Ansible envanterleri ve kimlik bilgileri her gün yeniden kullanılır. Yama uygulama, teşhis, sertifika işleri ve dağıtımlar her biri ayrı job yapılandırması çalışmasına dönüşmek yerine hedef ortamları paylaşır.
  • Ekip arkadaşlarının hazırlanmış işlemlere ihtiyacı vardır. Mühendisler şablonları ve ortak yapılandırmayı yönetir, operatörler form, zamanlama ve görev geçmişini kullanır. Community proje rolleri ortak yürütmeyi kapsar, belirli şablonlar için Enterprise izinleri kullanılabilir.
  • İşlem birden fazla otomasyon aracı kullanır. Doğrudan Terraform/OpenTofu, Terragrunt, Bash, PowerShell ve Python şablonları Ansible işlemlerine tek iş akışında katılır ve bağımsız yeniden kullanılabilir kalır.
  • Hizmet mevcut altyapıya uymalıdır. İkili dosya, paket ve Docker kurulum seçenekleri ekibin operasyon arayüzünü mevcut Git hizmetinin yanında barındırmasına, runner'ları da özel sistemlerin yakınına yerleştirmesine izin verir.

Semaphore UI ile GitLab CI/CD'yi birlikte kullanma

Bir uygulama sürümü için GitLab kodu inceleyebilir, testleri çalıştırabilir ve konteyner imajı veya sürümlenmiş paket yayımlayabilir. Pipeline job'ı daha sonra bu değişmez artifact referansını kimlik doğrulamalı görev API'si üzerinden hazırlanmış Semaphore UI dağıtım şablonuna gönderir. Semaphore UI kayıtlı envanterini, kimlik bilgilerini ve değişkenlerini kullanarak hedef ortama erişen runner üzerinden dağıtım yapar. Dağıtım otomasyonu artifact'ı ekibin registry veya deposundan alır.

GitLab job'ı döndürülen görev kimliğini saklamalı, son durumunu kontrol etmeli ve pipeline sonucuna eşlemelidir. Başlatma isteğinin kabulü yalnızca görevi kuyruğa alır. Gelen webhook da işlem tetikleyebilir, tamamlanma bildirimi entegrasyon tarafından uygulanır. Bu, otomatik çift yönlü dağıtım entegrasyonu değil, ekibin API'lerle kurduğu bağlantıdır.

Sürümden sonra ekip arkadaşları Semaphore UI'ı teşhis veya hizmet yeniden başlatma için kullanabilir, gece sertifika kontrolü şablonu da zamanlamasına devam eder. Bu işlemler yeni commit'ten bağımsız olarak hazırlanmış altyapı yapılandırmasını kullanır. GitLab kod incelemesini, test raporlarını ve artifact geçmişini tutarken Semaphore UI çalışan ortamın günlük arayüzünü sunar.

Sık sorulan sorular

GitLab CI/CD Ansible ve altyapı bakımı çalıştırabilir mi?

Evet. Job'lar runner ortamından Ansible, Terraform/OpenTofu ve diğer komut satırı araçlarını çağırabilir. Yeni commit olmadan elle veya zamanlanmış çalışabilirler. Semaphore UI araca özel şablonlar, paylaşılan envanterler, kimlik bilgileri ve değişken gruplarıyla farklı yapılandırma modeli ekler.

Semaphore UI kullanırken playbook'lar GitLab'da kalabilir mi?

Evet. Mevcut GitLab deposu bağlanır, kod çekme kimlik bilgisi yapılandırılır, ardından Semaphore UI görev şablonunda playbook ve envanter seçilir. Semaphore UI hazırlanmış işlemi çalıştırırken GitLab kod incelemesini yönetmeye devam edebilir.

Hangi ürün Terraform/OpenTofu state saklayabilir?

GitLab tarafından yönetilen state Free'de mevcuttur. Semaphore UI Pro workspace'ler ve arayüz yönetimi içeren HTTP state backend sağlar. Her ikisi de harici backend kullanan kod çalıştırabilir. Kilitleme ve kaydedilmiş plan yönetimi, state backend varlığından varsayılmak yerine gerçek çalıştırma süreci için yapılandırılmalıdır.

Yürütmeyi devretmek Semaphore UI Enterprise gerektirir mi?

Sıradan paylaşılan proje yürütmesi için gerekmez. Community, projesindeki şablonları çalıştırabilen ve diğer kaynaklara salt okunur erişen Task Runner rolünü içerir. Ekip arkadaşının yalnızca seçilen işlemleri çalıştırması gerektiğinde Enterprise özel roller ve şablon düzeyinde izinler ekler.

GitLab pipeline'ı Semaphore UI dağıtımını bekleyebilir mi?

Evet, ekibin uyguladığı entegrasyonla. Hazırlanmış görev kimlik doğrulamalı API ile başlatılır, görev kimliği saklanır, sonra durumu kontrol edilip nihai sonuç GitLab'a bildirilir. Başlatma isteğinin başarıyla kabul edilmesi dağıtımın tamamlandığını kanıtlamaz.

Bu makale yararlı oldu mu?

Kaynaklar

  1. GitLab, “GitLab Secrets Manager credit usage and licensing”. URL: https://docs.gitlab.com/ci/secrets/secrets_manager/credit_usage/ (erişim tarihi: ).
  2. GitLab, “GitLab Secrets Manager”. URL: https://docs.gitlab.com/ci/secrets/secrets_manager/ (erişim tarihi: ).
  3. Semaphore UI, “Semaphore UI build and deploy templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates/build-deploy (erişim tarihi: ).
  4. Semaphore UI, “Semaphore UI automation applications”. URL: https://semaphoreui.com/docs/user-guide/apps (erişim tarihi: ).
  5. Semaphore UI, “Semaphore UI task templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates (erişim tarihi: ).
  6. Semaphore UI, “Semaphore UI installation methods”. URL: https://semaphoreui.com/docs/admin-guide/installation (erişim tarihi: ).
  7. Semaphore UI, “Semaphore UI runners”. URL: https://semaphoreui.com/docs/admin-guide/runners (erişim tarihi: ).
  8. Semaphore UI, “Semaphore UI workflow nodes and data passing”. URL: https://semaphoreui.com/docs/user-guide/workflows (erişim tarihi: ).
  9. Semaphore UI, “Semaphore UI Terraform HTTP backend”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (erişim tarihi: ).
  10. Semaphore UI, “Semaphore UI project roles and template permissions”. URL: https://semaphoreui.com/docs/user-guide/team (erişim tarihi: ).
  11. Semaphore UI, “Semaphore UI Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (erişim tarihi: ).
  12. Semaphore UI, “Semaphore UI Variable Groups”. URL: https://semaphoreui.com/docs/user-guide/environment (erişim tarihi: ).
  13. Semaphore UI, “Semaphore UI schedules”. URL: https://semaphoreui.com/docs/user-guide/schedules (erişim tarihi: ).
  14. Semaphore UI, “Semaphore UI webhook integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (erişim tarihi: ).
  15. Semaphore UI, “Semaphore UI Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (erişim tarihi: ).
  16. Semaphore UI, “Semaphore UI inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (erişim tarihi: ).
  17. Semaphore UI, “Semaphore UI 2.20 candidate Terraform execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (erişim tarihi: ).
  18. Semaphore UI, “Semaphore UI 2.20 candidate runner output handling”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/runners/job_pool.go (erişim tarihi: ).
  19. GitLab, “GitLab 19.5 release notes”. URL: https://docs.gitlab.com/releases/19/gitlab-19-5-released/ (erişim tarihi: ).
  20. GitLab, “GitLab CI/CD pipelines”. URL: https://docs.gitlab.com/ci/pipelines/ (erişim tarihi: ).
  21. GitLab, “GitLab Runner executors”. URL: https://docs.gitlab.com/runner/executors/ (erişim tarihi: ).
  22. GitLab, “Install GitLab”. URL: https://about.gitlab.com/install/ (erişim tarihi: ).
  23. GitLab, “GitLab CI/CD inputs”. URL: https://docs.gitlab.com/ci/inputs/ (erişim tarihi: ).
  24. GitLab, “GitLab CI/CD variables”. URL: https://docs.gitlab.com/ci/variables/ (erişim tarihi: ).
  25. GitLab, “GitLab scheduled pipelines”. URL: https://docs.gitlab.com/ci/pipelines/schedules/ (erişim tarihi: ).
  26. GitLab, “GitLab deployment approvals”. URL: https://docs.gitlab.com/ci/environments/deployment_approvals/ (erişim tarihi: ).
  27. GitLab, “GitLab-managed Terraform/OpenTofu state”. URL: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/ (erişim tarihi: ).
  28. GitLab, “Infrastructure as Code with OpenTofu and GitLab”. URL: https://docs.gitlab.com/user/infrastructure/iac/ (erişim tarihi: ).
  29. GitLab, “GitLab job artifacts”. URL: https://docs.gitlab.com/ci/jobs/job_artifacts/ (erişim tarihi: ).
  30. GitLab, “GitLab unit test reports”. URL: https://docs.gitlab.com/ci/testing/unit_test_reports/ (erişim tarihi: ).
  31. GitLab, “GitLab roles and permissions”. URL: https://docs.gitlab.com/user/permissions/ (erişim tarihi: ).
  32. GitLab, “Use external secrets in GitLab CI/CD”. URL: https://docs.gitlab.com/ci/secrets/ (erişim tarihi: ).
  33. GitLab, “GitLab Licensing and Compatibility”. URL: https://docs.gitlab.com/development/licensing/ (erişim tarihi: ).
  34. GitLab, “GitLab pricing and hosting offerings”. URL: https://about.gitlab.com/pricing/ (erişim tarihi: ).
  35. GitLab, “GitLab CI/CD components”. URL: https://docs.gitlab.com/ci/components/ (erişim tarihi: ).
  36. GitLab, “CI/CD for external repositories”. URL: https://docs.gitlab.com/ci/ci_cd_for_external_repos/ (erişim tarihi: ).
  37. GitLab, “GitLab Support”. URL: https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support (erişim tarihi: ).
  38. Semaphore UI, “Semaphore UI REST API, task creation and task status”. URL: https://semaphoreui.com/api-docs (erişim tarihi: ).
  39. Semaphore UI, “Tasks, execution history and Ansible summaries”. URL: https://semaphoreui.com/docs/user-guide/tasks (erişim tarihi: ).
  40. GitLab, “Protected environments”. URL: https://docs.gitlab.com/ci/environments/protected_environments/ (erişim tarihi: ).
  41. Semaphore UI, “Get Started, installation methods and server platforms”. URL: https://semaphoreui.com/docs/getting-started (erişim tarihi: ).
  42. GitLab, “Installation methods and supported server platforms”. URL: https://docs.gitlab.com/install/install_methods/ (erişim tarihi: ).
  43. GitLab, “GitLab Runner requirements and supported platforms”. URL: https://docs.gitlab.com/runner/install/requirements/ (erişim tarihi: ).
  44. GitLab, “Pass dotenv variables to specific jobs”. URL: https://docs.gitlab.com/ci/variables/dotenv_variables/ (erişim tarihi: ).
  45. GitLab, “CI/CD job logs”. URL: https://docs.gitlab.com/ci/jobs/job_logs/ (erişim tarihi: ).
  46. Semaphore UI, “Repositories, reusable Git resources and authentication”. URL: https://semaphoreui.com/docs/user-guide/repositories (erişim tarihi: ).
  47. GitLab, “Pipeline editor, YAML editing and validation”. URL: https://docs.gitlab.com/ci/pipeline_editor/ (erişim tarihi: ).
  48. GitLab, “Customize pipeline configuration, alternate paths and external YAML”. URL: https://docs.gitlab.com/ci/pipelines/settings/ (erişim tarihi: ).
  49. GitLab, “Pipeline Wizard, generated CI configuration and commit step”. URL: https://docs.gitlab.com/development/cicd/pipeline_wizard/ (erişim tarihi: ).
  50. Ansible project, “JUnit callback, structured playbook result reports”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/junit_callback.html (erişim tarihi: ).
  51. GitLab, “GitLab manual jobs, optional and blocking behavior”. URL: https://docs.gitlab.com/ci/jobs/job_control/ (erişim tarihi: ).
  52. GitLab, “GitLab runner tags and project assignment”. URL: https://docs.gitlab.com/ci/runners/configure_runners/ (erişim tarihi: ).
  53. Semaphore UI, “Semaphore UI authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (erişim tarihi: ).
  54. GitLab, “LDAP authentication for GitLab Self-Managed”. URL: https://docs.gitlab.com/administration/auth/ldap/ (erişim tarihi: ).
  55. GitLab, “OpenID Connect authentication for GitLab Self-Managed”. URL: https://docs.gitlab.com/administration/auth/oidc/ (erişim tarihi: ).
  56. GitLab, “GitLab two-factor authentication”. URL: https://docs.gitlab.com/user/profile/account/two_factor_authentication/ (erişim tarihi: ).
  57. GitLab, “HashiCorp Vault integration”. URL: https://docs.gitlab.com/ci/secrets/hashicorp_vault/ (erişim tarihi: ).
  58. GitLab, “AWS Secrets Manager integration”. URL: https://docs.gitlab.com/ci/secrets/aws_secrets_manager/ (erişim tarihi: ).
  59. GitLab, “Azure Key Vault integration”. URL: https://docs.gitlab.com/ci/secrets/azure_key_vault/ (erişim tarihi: ).
  60. Semaphore UI, “Semaphore UI audit history, export and SIEM forwarding”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (erişim tarihi: ).
  61. GitLab, “GitLab audit events and edition scope”. URL: https://docs.gitlab.com/user/compliance/audit_events/ (erişim tarihi: ).
  62. GitLab, “GitLab audit event streaming”. URL: https://docs.gitlab.com/user/compliance/audit_event_streaming/ (erişim tarihi: ).
  63. Semaphore UI, “Semaphore UI notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (erişim tarihi: ).
  64. GitLab, “Pipeline trigger API and incoming webhooks”. URL: https://docs.gitlab.com/ci/triggers/ (erişim tarihi: ).
  65. GitLab, “GitLab project integrations and notifications”. URL: https://docs.gitlab.com/user/project/integrations/ (erişim tarihi: ).
  66. Community connector contributors, “Community MCP connector for Semaphore UI”. URL: https://github.com/cloin/semaphore-mcp (erişim tarihi: ).
  67. GitLab, “GitLab MCP server”. URL: https://docs.gitlab.com/user/model_context_protocol/mcp_server/ (erişim tarihi: ).
  68. OpenBao project, “OpenBao CLI, read a secret”. URL: https://openbao.org/docs/commands/kv/get/ (erişim tarihi: ).
  69. Devolutions, “Devolutions Server REST API, credential retrieval”. URL: https://docs.devolutions.net/server/web-interface/utilities/api-documentation (erişim tarihi: ).
  70. GitLab, “GitLab conditional jobs and pipeline dependencies”. URL: https://docs.gitlab.com/ci/yaml/ (erişim tarihi: ).
  71. GitLab, “GitLab Jobs API, status and logs”. URL: https://docs.gitlab.com/api/jobs/ (erişim tarihi: ).
  72. Semaphore UI, “Semaphore UI CyberArk PVWA secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/cyberark (erişim tarihi: ).
  73. CyberArk collection maintainers, “CyberArk collection, CCP credential retrieval”. URL: https://docs.ansible.com/projects/ansible/latest/collections/cyberark/pas/cyberark_credential_module.html (erişim tarihi: ).

Bu karşılaştırma yukarıda listelenen dokümantasyon, depolar ve ürün bilgileri kullanılarak Semaphore UI ekibi tarafından hazırlanmıştır. Her kaynak için erişim tarihi kaydedilmiştir.