GitLab CE (Communtiy Edition – Topluluk Sürümü) özgür yazılım tabanlı bir uygulamadır. Bu uygulamanın en büyük özelliği Git kaynak depolarını barındırmak ve yönetmektir. GitLab topluluk sürümünü kullanarak kendi yazılım geliştirme ekipleriniz ile kullanabileceğiniz sadece size özel bir GitHub ortamını size sunmaktadır, size sunulan bu ortamla kendi projenizi kendi ortamınızda istediğiniz şekilde yönetebilirsiniz.

Aşağıda yer alan kurulum adımlarını tek tek yapmak yerine size özel kurulmuş olan hazır GitLab Ortamını kullanmak isterseniz CloudEOS’un sizlere sunduğu tek tuşla uygulama hizmetinden de faydalanabilirsiniz. Tek yapmanız gereken CloudEOS‘ a kayıt olmak ardından kontrol panel altında yer alan tek tuşla uygulama havuzunda yer alan GitLab uygulamasını seçip başlatmaktır.

Gereksinimler

Öncelikle GitLab kurulumu ve yapılandırmasına geçmeden önce CloudEOS‘ a kayıt olarak bir adet Ubuntu 16.04 sunucunuzu oluşturmalısınız.

Kuruluma başlamadan önce Ubuntu sunucular için güvenlik açısından sudo yetkilerine sahip bir kullanıcı oluşturmanızı tavsiye ediyoruz.

Yayınlanan GitLab donanım gereksinimlerinde önerilen sunucu özellikleri örnek olarak 100 kullanıcı için aşağıdaki şekilde olmalıdır.

  • 2 Core CPU
  • 4 GB RAM

Yeni Kullanıcı Ekleme

Sisteme size verilen şifre ve root kullanıcısı ile giriş yaptıktan sonra

$ adduser yenikullanici

ile kullanıcı oluşturmuş oluyoruz.

$ usermod -aG sudo yenikullanici

komutu ile de oluşturduğumuz kullanıcıya sudo yetkilerini vermiş olduk. Şimdi GitLab yapılandırma adımlarına bu oluşturduğumuz sudo haklı kullanıcı ile devam edeceğiz.

Gerekli Ön Paketlerin Kurulumu

GitLab’ ı yüklemeden önce bazı yazılım paketlerinin kurulması gerekmektedir. Gerek duyulan tüm yazılım paketleri Ubuntu paket depolarında bulunmaktadır.

$ sudo apt-get update
$ sudo apt-get install ca-certificates curl openssh-server postfix

Postfix kurulumunda ekrana seçim için çıktığında Internet Site alanını seçmelisiniz. Sonraki adımda sunucu isminizi ve IP adresini sunucu yapılandırmak için doldurmanız gerekmektedir.

GitLab Kurulumu

Şu anda kurulum için gerekli ön paketlerin kurulumunu başarılı şekilde tamamlayıp GitLab kurulumu için hazırız. Sistemimizi GitLab kaynak deposu ile yapılandırmak için aşağıda yer alan kurulum script’ini kullanmak en kolay yöntemdir.

$ cd /tmp
$ curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Kurulum script’ini aşağıdaki komut ile inceleyebilirsiniz.

$ less /tmp/script.deb.sh

Aşağıdaki komut ile kurulumu başlatabilirsiniz.

$ sudo bash /tmp/script.deb.sh

Bu script sunucunuzu GitLab kaynak deposunu kullanmak için ayarlayacaktır. Bu şekilde GitLab paketlerini sanki sıradan herhangi bir paket kurulumu yapıyor gibi gerçekleştirebilirsiniz. Aşağıda yer alan komut ile GitLab paketlerini kurabilirsiniz.

$ sudo apt-get install gitlab-ce

Gerekli bileşenler sunucunuz üzerine kurulmuş olacaktır. Uygulamanızı çalıştırmadan önce aşağıdaki başlangıç ayar komutunu çalıştırmalısınız.

$ sudo gitlab-ctl reconfigure

Güvenlik Duvarı Ayarları

GitLab’ a ilk erişimden önce, normal web trafiği izin verebilmek için güvenlik duvarı kurallarının yeterli doğru olduğunundan emin olmalısınız.

İlk olarak güvenlik duvarı durumunu kontrol edelim.

$ sudo ufw status
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

Gördüğünüz üzere şu andaki kurallarda SSH trafiğine izin verilmektedir ancak diğer servislere erişim kısıtlıdır. GitLab bir web uygulaması olduğundan HTTP erişimine de izin vermek durumundayız.

Eğer OpenSSH trafiğine izin verilmemişse bu izini de aşağıdaki gibi verebilirsiniz.

$ sudo ufw allow http
$ sudo ufw allow OpenSSH

Tekrar güvenlik duvarı durumunu kontrol edelim.

$ sudo ufw status
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)

Şu anda GitLab web arayüzüne erişebilirsiniz.

Web Arayüzünde Başlangıç Yapılandırması

Şu anda GitLab çalışmakta ve izin verilmiş durumdadır. Uygulamanın başlangıç yapılandırmasını web arayüzden yapabiliriz.

İlk Kullanıcı Girişi

Tercih ettiğiniz bir browser’ dan aşağıdaki adresi yazarak giriş yapabilirsiniz.

http://gitlab_domain_veya_IP_adresi

İlk giriş yaptığınızda, aşağıdaki gibi yönetici şifresi oluşturma ekranı karşınıza çıkacaktır. Bu adımda yönetici şifrenizi oluşturabilirsiniz.

Şifre belirleme adımından sonra bilinen GitLab giriş ekranı sayfasına yönlendirileceksiniz.

Burada az önce belirlediğiniz kimlik bilgileri ile giriş yapmanız gerekmektedir.

Kullanıcı Adı: root
Kullanıcı Şifre: bir önceki adımda belirlediğiniz yönetici şifresi

İlgili değerleri girip daha sonrasında Sign in butonuna basarak giriş işlemini başarılı şekilde tamamlayabilirsiniz.

Profil Ayarları

İlk kurulum sonrası profilinizi daha iyi bir hale getirmek için bazı değişiklikler yapmanız gerekmektedir. GitLab bazı makul varsayılan ayarları seçer, ancak bunları kendi ihtiyaçlarınıza göre güncellemeniz önerilmektedir.

Gerekli düzenlemeleri yapmak için kullanıcı ikonunun kenarındaki ok işaretine tıklayarak açılır menüden Profile Settings’ i seçmeniz gerekmektedir.

Profile alanında ilgili değişiklikleri yapmalısınız.

Name (Administrator) ve Email (admin@example.com) alanlarını kendinize ait geçerli değerler ile doldurmalısınız. Name alanına yazdığınız isim diğer kullanıcılar tarafından sizin adınız olarak görüntülecektir yine burada kullanılan e-mail adresi sizin avatarınızı belirlemek için kullanılacaktır.

Değişiklikleriniz bittikten sonra Update profile settings butonuna basarak yaptığınız değişiklikleri kayıt edebilirsiniz.

Elektronik posta adresinize bir doğrulama e-maili gelecektir. Buradaki yönlendirme adımlarını takip ederek hesabınızı GitLab kullanımı için doğrulayabilirsiniz.

Hesap İsmi Değişimi

User Settings kısmında Account alanını seçerek o alana geçelim.

Burada özel API token veya çift etmenli doğrulamayı bulabilirsiniz. Ancak şu an işlevsellik olarak Change username alanını kullanacağız.

Default olarak, ilk yönetici hesabı root adında bir isimle gelmektedir. Bilinen bir hesap ismi olduğundan, daha farklı bir isimle değiştirmek güvenlik olarak önemli bir adımdır. Var olan yönetici haklarınız tanımladığınız bu yeni yönetici isminde de devam edecektir.

İşlem sonrası Update username ile değişikliklerinizi kaydederek devam edebilirsiniz.

Hesabınıza SSH Key Eklenmesi

Bir çok durumda, Git ile GitLab projeleriniz ile etkileşimde olmak için SSH Key kullanımını isteyebilirsiniz. Bunun için SSH açık anahtarını (public key) GitLab hesabına eklemeniz gerekmektedir.

Aşağıda kendi istemci bilgisayarınızın Linux olması durumunda SSH anahtarınızı nasıl oluşturacağınız anlatılmaktadır. Windows veya Mac işletim sistemi kullanmanız durumunda aşağıdaki adımlardan farklı adımlar, yöntemler kullanmanız gerekebilir. Linux istemci üzerinde ilk olarak lokal makinenizde SSH key çiftine sahip olmalısınız. Aşağıdaki komut ile sahip olduğunuz public key’ leri listeleyebilirsiniz.

$ cat ~/.ssh/id_rsa.pub

Aşağıdakine benzer bir çıktı ile karşılaşacaksınız.

ssh-rsa AAAAB3NzasdsfsdfsvdDAQABAAABAQDTnFULc/pP7AFHln/CgpnDXx+Qi+nbEQg134tg4fMSR0assqwd2dCtnh9mbKdAAy7WYP4D5WpoxT93HhhgX6VfRsu39DhiGikv2KL8+bv20QChmQmUnE7Mc1CQ21JJZoyesyFxSJ3oU+4XvAMGzcfa7UNQLSCdEWGcOzy7riEFw0IuuBxxfN/x5G+c5ZTuqoHqs6hAYDeajFugCY0iiYfrmvstQfmljLopSCrR08gXw9soFTp6tub1Z2atYHGTtCaJrWMzDnJEWDHD/8xkWu/TAfMlxzks7Qd3uuVQ5HrT2zej7Dm5yX2i1d+hELOL6lwKV1gZCFnE8jG/jBA3Uv98L root@stdgitlab.com

Bu alanı kopyalayalım ve GitLab web arayüzünde ki User Settings sayfasına geri dönelim.

Eğer yukarıdaki gibi bir SSH Key çiftiniz yok ise public key listeleme adımında aşağıdaki gibi bir çıktı ile karşılaşacaksınız.

$ cat: /home/yenikullanici/.ssh/id_rsa.pub: No such file or directory

Eğer böyle ise aşağıdaki gibi SSH Key çiftini(genel+özel) oluşturabilirsiniz.

$ ssh-keygen

Default ayarları seçerek devam edebilirsiniz.

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Fqmb3N3AZDRAPOgpTe2gZeBfEQrgrZKk+EjcVesH+/o root@stdgitlab.com
The key's randomart image is:
+---[RSA 2048]----+
| ..o. *=oo |
| . o .B.=+ . |
| .. oO.*+.o |
|=...+.=o+= |
|=o.. .ooS.o |
|.+ . =o. o |
|. . + ... . |
| . |
| ..E |
+----[SHA256]-----+

Daha sonra tekrar public key’ i listeleyelim.

$ cat ~/.ssh/id_rsa.pub

Aşağdaki gibi bir çıktı ile oluşturduğumuz SSH Key çiftinden public key’ i görebilirsiniz.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTnFULc/pP7AFHln/CgpnDXx+Qi+nbEQg134tg4fMSR0aOWP8u7Ctnh9mbKdAAy7WYP4D5WpoxT93HhhgX6VfRsu39DhiGikv2KL8+bv20QChmQmUnE7Mc1CQ21JJZoyesyFxSJ3oU+4XvAMGzcfa7UNQLSCdEWGcOzy7riEFw0IuuBxxfN/x5G+c5ZTuqoHqs6hAYDeajFugCY0iiYfrmvstQfmljLopSCrR08gXw9soFTp6tub1Z2atYHGTtCaJrWMzDnJEWDHD/8xkWu/TAfMlxzks7Qd3uuVQ5HrT2zej7Dm5yX2i1d+hELOL6lwKV1gZCFnE8jG/jBA3Uv98L root@stdgitlab.com

Yukarıdaki satırı kopyalayıp GitLab web arayüzünden User Settings kısmında SSH Keys menüsüne geçiş yapalım.

Key alanına kopyaladığımız public key’ i yapıştırıp değişikliklerin kaydedilmesi için Add key butonuna basıyoruz.

Kayıtları Kısıtlama veya Pasif Hale Getirme (İsteğe Bağlı)

Gitlab ana giriş sayfasını ziyaret ettiğinizde herhangi birinin giriş yapabilmesinin mümkün olduğunu farketmişsinizdir. Açık yayınlanan proje isteyebilirsiniz ancak çoğu zaman kısıtlayıcı modda ayarlanmak istenmektedir.

İlk olarak ekranın sağ üst tarafında bulunan ingiliz anahtarı şeklindeki ikona tıklıyoruz.

Sonraki sayfada GitLab instance’ ın genel bakışını bütün olarak görebilirsiniz. Ayarlarımızı yapabilmek için dişli ikonuna tıklayarak açılır listeden istediğimiz ayarları yapabiliriz.

Kayıtların Pasif Hale Getirme

Eğer kayıtları pasif hale getirmek isterseniz, Sign-up Restrictions alanını ziyaret etmelisiniz.

Sign-up enabled yanındaki check box daki işareti kaldırıyoruz.

Daha sonra sayfanın altındaki Save butonu ile yaptığımız değişikliği kaydediyoruz.

Girişlerin Domain Bazlı Kısıtlanması

Tamamen kayıtların hepsini pasif hale getirmek yerine domain ile birlikte elektronik posta adresi sağlayan bir organizasyonun parçası olarak GitLab kullanıyorsanız, domain bazlı kayıt kısıtlaması kullanabilirsiniz.

Sign-up Restrictions alanında, ilk olarak Send confirmation email on sign-up kutucuğunu sadece kullanıcıların elektronik posta adreslerini doğruladıktan sonra log tutulması için işaretliyoruz.

Daha sonra, domain(leri)inizi Whitelisted domains for sign-ups alanının içine yazabilirsiniz ve bu alanda wildcard sahibi domainleriniz için “*” tanımlamasını da kullanabilirsiniz.

Daha sonra işlemleriniz bittiğinde değişikliklerin kayıt edilmesi için Save butonuna basmalısınız.

Şu anda sign-up alanı GitLab ana sayfasından kaldırılmış oldu.

Proje Oluşturma Kısıtlanması

Default olarak yeni kullanıcılar 10 ve üzeri proje oluşturabilmektedir. Eğer dışarıdan yeni kullanıcıların görebilmesi ve katılabilmesini istiyor ancak yeni proje oluşturmasını kısıtlamak istiyorsanız Account and Limit Settings alanına geçerek burada bazı değişiklikler yapmalısınız.

Bu sayfada ilk olarak Default projects limit karşısındaki alana “0” yazarak kullanıcıların proje oluşturmasını kıstılayabilirsiniz.

Değişiklikleri kaydetmediğimiz sürece yeni kullanıcılar proje eklemeyebilirler ama başka kullanıcılar tarafından oluşturulan internal ve public projelere erişimleri olacaktır.

Daha sonra değişikliklerin kaydedilmesi için sayfanın altındaki Save butonuna tıklıyoruz.

Yeni kullanıcılar şu anda yeni hesaplar oluşturabilecekler ancak yeni proje oluşturamayacaklar.

Bu dokümanda, makalede yazan komutları, çözümleri uygulamak tamamen kullanıcının kendi sorumluluğunda ve insiyatifinde olan bir konudur, mevcut komutların uygulanması ile doğabilecek, oluşabilecek her türlü sorumluluk ve sonuçlar kullanıcının kendisine aittir, CloudEOS’ un bu konuda herhangi bir sorumluluğu bulunmamaktadır.

g