Published on

Azure'de Ubuntu Makinesi Üzerine Gitlab Kurulumu ve Yönetimi

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

Bu yazımızda, Azure'de Ubuntu makinesi üzerine gitlab kurulumunu gerçekleştirecek ve pratik bir örnek yapacağız.

Öncelikle, Azure hesabımızın olduğunu varsayarak Azure'de sanal makine oluştur sekmesine ilerliyoruz.

azure

Ardından Sanal Makinemizi ihtiyaçlarımız doğrultusunda donatıyoruz.(tavsiye edilen minumum donananım gereksinimini öğrenmek için gitlab'dan araştırma yapabilirsiniz.)

azure

En aşağıda bulunan "Gelen bağlantı noktaları" kısmından https, http, ssh bağlantıları için gerekli port'ların açık olduğundan emin oluyoruz ve oluştur diyerek sanal makinemizi oluşturuyoruz.

azure

Oluştur dedikten sonra karşımıza aşağıdaki gibi bir anahtar oluşturma sekmesi çıkacak buradan anahtarımızı indiriyoruz.

azure

Ben buradan sonrasını VM Debian terminali ile yapacağım sizler de kullandığınız platform'a göre komutları editleyebilirsiniz.


  1. Terminale'de indirdiğim ssh anahtarının konumuna giderek bu anahtarı .ssh dizinine taşıyoruz.
mv ubuntu-test-server_key.pem ~/.ssh

  1. Sonrasında /.ssh dizinine gidiyorum ve bu anahtar dosyasının izinlerini Azure'nin isteği doğrultusunda değişiyorum.(Dosya izinleri? )
chmod 600 ubuntu-test-server_key.pem
  1. İzinleri ayarladıktan sonra aşağıdaki komutu girerek bir ssh bağlantısı oluşturuyoruz.
ssh -i ubuntu-test-server_key.pem azureuser@172.205.146.11

  1. Gerekli tüm bağımlılıkların kurulduğundan emin olmak için aşağıdaki komutları giriyoruz.
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
  1. Mail bildirimlerini gönderebilmek için aşağıdaki komutu yazıyoruz.
 sudo apt-get install -y postfix
  1. Gitlab paketini depomuza ekleyerek indirmek için aşağıdaki komutu yazıyoruz.
  curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
  sudo apt-get install gitlab-ee
  1. Kurulum işlemi tamamlandıktan sonra gitlab.rb dosyamıza girerek gitlab'ın barınacağı URL adresini manuel olarak giriyoruz.(https kullanmanız tavsiyemdir.)
 sudo nano /etc/gitlab/gitlab.rb
azure
  1. Üstteki değişikliliğin geçerli olması için aşağıdaki komutu yazarak gitlab'ı yeniden yapılandırıyoruz ve başlatıyoruz.
 sudo gitlab-ctl reconfigure
 sudo gitlab-ctl restart
  1. Tarayıcıya girip sunucumuzun ip adresini girince aşağıdaki gibi gitlab'ımızın artık internette yayımlandığını görebiliyoruz.
azure

Azure'de gitlab kurulumu bu kadardı. Şimdi gitlab'da örnek bir çalışma yapalım.

  1. Yeni bir gitlab kullanıcısı oluşturalım.

  2. Oluşturulan projeye gitlab/github üzerinden seçilen bir repo'yu yükleyelim.

  3. Yüklenen projeyi 1 ay geri çekerek resetleyelim.

  4. Bir ay gerideki repo'ya yeni bir merge request oluşturarak basit bir string değişikliliği yapalım.

  5. Merge request birleştirildikten sonra üzerine 1 aylık commitleri geri yükleyelim.

  • -----> (Bg-Tek Bilişim Güv. Tek. Soruları)
  1. Register'e tıklayıp yeni bir hesap oluşturalım ;

    azure

    Kayıt oluşturma talebimiz server kısmına gitti, GitLab administrator bu kaydımızı onaylayana kadar giriş yapamayacağız.

    azure

    Tekrardan sunucu kısmına geçerek kayıtları listeliyor ve 0alp'in kaydını onaylıyoruz.

    sudo gitlab-rails console
    

    Gitlab rails console açıldıktan sonra aşağıdaki komutları giriyoruz. Ve kayıtları listeliyoruz.

    users = User.all
    users.each { |user| puts "ID: #{user.id}, Name: #{user.name}, Username: #{user.username}, Email: #{user.email}" }
    
    azure

    Yukarıdan da görebileceğimiz gibi "0alp" isimli kullanıcı biziz ancak diğerini tanımıyoruz. Aşağıdaki komutla 0alp'in kaydını kabul edebiliriz.

    user = User.find_by(username: '0alp')
    user.update!(state: 'active')
    

    Çıktı :

    azure
  2. Evet, "0alp" kullanıcı isimli hesabımızın kaydı onaylandığına göre gitlab'ımıza giriş yaparak bir proje oluşturalım. Repo'yu Github'dan çekmek istediğim için "Import Project" seçeneğine tıkladım ancak aşağıdaki yazı ile karşılaştım :

    azure

    Yani, projenizi içe aktarma seçeneklerini etkinleştirmek için de gitlab'da ayarlamalar yapmamız gerektiğini söylüyor.

    Aşağıdaki komutları yazarak gerekli içe aktarma seçeneklerini aktifleştirelim.

    Öncelikle içe aktarma seçeneklerini kontrol edelim.

    Gitlab::CurrentSettings.import_sources
    
    Çıktı : azure Evet, görebileceğimiz gibi herhangi bir içe aktarma seçeneğimiz yok bu listeye potansiyel olarak kullanacağımız platformları aşağıdaki komut ile ekleyelim.
    Gitlab::CurrentSettings.update!(import_sources: ['github', 'bitbucket', 'gitlab_project', 'gitea', 'fogbugz', 'git'])
    
    Çıktı : azure

    Evet, sayfayı yenilediğimizde ilgili seçeneklerin başarıyla eklendiğini görüyoruz. Ardından import etmek istediğimiz seçeneği seçiyoruz. Ben URL seçeceğim.

    azure
    azure
    azure
  3. Şimdi "yüklenen projeyi 1 ay geriye çekme adımı"na geçelim.

    Öncelikle, lokalimizde bulunan git ile uzak sunucumuzdaki repo'muza erişebilmek için ssh key oluşturmamız ve bunu gitlab hesabımıza eklememiz gerekiyor.

    • azure
    • azure
    • azure

    Evet ssh anahtarımızı eklediğimize göre artık klonlayabiliriz.

    git clone git@172.205.146.11:0alp/HttpGetterSharp.git
    

    Çıktı :

    azure

    Aşağıda görebileceğimiz gibi lokalimize repo'yu klonladık.

    azure

    Projem henüz 1 aylık olmadığı için ve 7 günde bittiği için rastgele şekilde aşağıdaki kırmızı olarak işaretlediğim commit'i seçtim.(1 ay yerine 1gün geriye gideceğim.)

    git log
    

    Çıktı :

    azure

    Artık, aşağıdaki komutu yazarak commit'imize dönebiliriz

    git checkout 07fb97
    
    git checkout -b deneme
    
    git reset --hard 07fb97
    

    Çıktı :

    azure
  4. 1 gün geriye aldığımız 'deneme' isimli branch'ımıza, üzerinde ufak string değişikliliği yapacağımız branchımızı merge etme işlemine geçelim.

    git checkout -b string_degisikligi
    
    cat >> deneme.txt
    önemsiz bir metin ekliyorum buraya :)
    
    git add .
    
    git commit -m "Basit string degisikligi yap"
    
    git push origin string_degisikligi
    

    Çıktı :

    azure
    azure
    azure
  5. "Merge request birleştirildikten sonra üzerine 1 aylık commitleri geri yükleyelim." adımına geçelim.

    Öncelikle gitlab'a giderek adım adım merge işlemini yapalım.

    • 5.1
    azure
    • 5.2
    azure
    • 5.3
    azure
    • 5.4

      git switch main
      
      git rebase deneme
      
      git pull
      
      git push origin main
      
      Çıktı : azure azure

SONUÇ azure

Kaynakça :

  • about.gitlab.com/install/#debian
  • docs.gitlab.com/ee/
  • BG-TEK sistem uzmanlığı soruları