Bir önceki yazılarımda versiyon kontrol sisteminin ne olduğundan ve
git'in bu sistemdeki rolünden bahsedip bi kaç temel git komutunu siz
değerli okuyucularıma aktarmıştım.Bu yazımda ise bir linux tabanlı server kurulumunun bir git server'a nasıl evrilebileceğinden ve gitosis server arayüzünden bahsedeceğim.git mimarisine göre bütün projeler bir repository içerisinde bulunmak zorunda.Repository ise içerisinde git config ve log dosyları bulunan bir dizine verilen isimdi.Bir repository başlatmak bir dizin açıp içerisinde git init --bare komutunu yazmak kadar basit.Bu komut yazıldığında dizin içerisinde gerekli dosylar oluşturulur ve bu dosyalar sayesinde repository'de pull push vb. işlemler gerçekleştirilebilir.bir git repository'sini kurmak görüldüğü üzere bu denli basit bir işken , kurulu repository'e erişim yönetimi yapmaksa bir o kadar zor bir iş.Tek kullanıcılı server'da commitleri yapanların kimliklerinin ayrımını yapmak imkansız,çok kullanıcılı bir server'da ise repository erişim ayarlarını ayarlamak zor.Ayrıca yetkilendirme gibi bir kavram yok örneğin istediğiniz kullanıcılara pull,push hakkı verip istemediklerinizden pull,push hakkını alamıyorsunuz.İşte bu ve buna eklenebilecek bir çok eksiklikten ötürü gitosis isimli proje başlatılmış.Bu proje ssh ile sunucu arasında bir katman oluşturup kullanıcıların sunucuya doğrudan ssh ile bağlanmasını engelleyip kendi izin politikaları çerçevesinde bağlanmalarını sağlıyor.Kimlik tespiti için basit bir sistem kullanıyor.Gitosis kurulumu yapıldığında otamatik olarak bir gitosis-admin dizini oluşturuyor.Bu dizin içerisindeki keys dizinine ssh public ya da private key'lerinizi yerleştiriyor ve eşi olan diğer key ile sistemde kimlik doğrulaması yapabiliyorsunuz.Keylerin isimlerini kullanarak gitosis.conf dosyasına yazacağınız politikalara göre kullanıcıların hangi repository'lerde hangi haklara sahip olacağını belirleyebiliyorsunuz.Yeni bir repo oluşturulacağı vakit gitosis-admin reposuna erişim hakkına sahip olan kullanıcı gitosis.conf dosyasını düzenleyerek önce politikaları ayarlıyor sonrasında ise repository'i başlatmak isteyen kullanıcı aynı isimde init yaptığı lokal repository'sini server'a push'luyor.Pushladığı anda sunucuda repository oluşturulmuş oluyor.Yani sistem sahibinin her seferinde gidip sunucuda yeni dizin açıp git init --bare komutunu vermesi gerekmiyor.Politika yönetimi standartlara uygun olup gruplara ve bireylere özel yetki atamaları yapılabiliyor.Bunların yanısıra gitweb ile de uyumlu çalışması, sunucuya ait bilgileri görselleştirmek için gitlab vb. ekstra bir arayüz kullanma ihtiyacını ortadan kaldırıyor.Bir sonraki yazımda kurulumdan ve kurulum sırasındaki bazı tuzaklardan bahsedicem.Gitmeden önce projeye ait github linkini buraya ilişitiriyorum.İyi çalışmalar.
https://github.com/tv42/gitosis
Hiç yorum yok:
Yorum Gönder