Gitlab Kurulumu – Gitlab – Mysql – CentOS

Merhaba

Gitlab yazılımını CentOS dağıtımına kurulumu için aşağıdaki adımları izleyebilirsiniz.

1 – CentOS kurulumu

CentOS kurulumunda 32 bit yada 64bit fark etmemektedir. Önemli olan nokta CentOS minimal imajın kurulu olmasıdır. Bu döküman CentOS 6.3 x64 minimal  iso üzerinden anlatım yapmaktadır.

2 – CentOS update’leri ve Repo’lar

Gitlab kurulumuna başlamadan önce update işlemlerini gerçekleştiriniz.

Gitlab kurulumu için gerekli olan ruby vb paketlerin ilgili versiyonlarını bulabileceğimiz repoları ekleyelim.

Bunun için öncelikel EPEL repo’su için gerekli GPG key’ini sisteme yüklememiz gerekmekte.

Ardından EPEL rpm’ini kuruyoruz.

EPEL repo’sundan başka ihtiyacımız PUIAS repo’su. Bu repo’nun sisteme yüklenmesi gerekli.

Bu oluşturulan dosyayı metin editoru ile açıp aşağıdaki satırları içine kaydedip çıkınız.

PUIAS için GPG key’lerini sisteme tanıtalım.

Eklenen repoların sisteme işlediğini kontrol etmek için aşağıdaki komutu yazınız. Komut çıktısı aşağıda görüldüğü gibi olmalıdır. Repoları yeni eklediğimiz için bu repoların update’i gerçekleşecektir.

3 – Gitlab için bağımlılıkların kurulması

Aşağıdaki komut ile sistem güncelleştirmelerini yapıp, gerekli bağımlılıkları kurunuz.

Buradaki vim-enchanced benim seçtiğim metin editörü için gereklidir.

Gitlab için gerekli Python versiyonu 2.5+ ‘dır. Python 3.x için henüz hizmet verilmemektedir. Bu nedenle aşağıdaki komut ile Python 2.5+ versiyon kullandığınızdan emin olun.

4 – Redis Konfigürasyonu

Redis key-value sistemidir. Redis’in sistem açılışında çalışması ve şimdi servise başlaması için aşağıdaki komutları yazınız.

5 – Mail Server

Gitlab kullanıcılara mail gönderebilmektedir. Mail servisi olarak postfix kullanmanızı öneririm.

Postfix konfigürasyonuna bu yazıda değinilmeyecektir.

6 – Ruby

Gitlab Ruby teknolojilerini kullanmaktadır. Bunun için ilgili Ruby versiyonunu kurmanız gerekmektedir. CentOS minimal ile hali hazırda Ruby paketleri gelmemektedir. Eğer mevcutta kurulu Ruby varsa aşağıdaki komut ile kaldırınız.

İlgili Ruby versiyonunun kurulumu için aşağıdaki adımları takip ediniz.

İlgili Ruby versiyonu indirilip derlenmektedir. Bu işlem, CentOS sunucusunun CPU gücüne bağlı olarak zaman alabilir.

Bundler GEM’in kurulması

Ruby’nin PATH değişkenine etki etmesi için sistemden çıkış yapıp tekrardan giriş yapmanız gerekmektedir. İlgili Ruby versiyonunun düzgün şekilde kurulduğunu test etmek için aşağıdaki komutlara ve çıktılarına bakınız.

7 – Sistem Kullanıcılarının Oluşturulması

Sistemde git adında user oluşturulacaktır.

Bir güvenlik adımı olarak bu kullanıcının terminalden login olup komut çalıştıramaması gerekir. Bunun için aşağıdaki adımları uygulayabilirsiniz.

Açılan dosyada aşağıdaki satırı arayınız.

Bu satırın sonuna /usr/local/bin ekleyip dosyayı kaydedip çıkınız.

8 – Gitlab Shell

Öncelikle git klasörüne gidip gitlab shell’in clone’unu indiriyoruz.

Hali hazırda gelen konfigürasyonu dosyasını uygun isimde kopyalayınız.

Ardından bu dosya içerisinde ki gitlab_url değişkenini hizmet vereceğiniz domain ile değiştiriniz. Bu yazıda http://gel.mehmetince.net kullanılacaktır.

Ve setup çalıştırılır.

9 – Veri tabanı

Gitlab Postgresql veya MySQL ile çalışabilir. Bu yazıda MySQL tercih edilmiştir.

Mysql Kurulur.

Mysql kurulumu için güvenli kurulum scripti kullanılmalıdır! Scriptin sorduğu sorulara Yes diyerek devam ediniz.

Root için şifre girilmesi istendiğinde, güçlü ve random şifre seçmenizi öneririm. Bunun için http://www.random.org/strings/ kullanabilirsiniz.

Mysql’e bağlanıp git adından bir mysql kullanıcısı oluşturulmalıdır. İlgili adımları aşağıdan takip ediniz.

10 – Gitlab Kurulumu

Gitlab kurulumu için aşağıdaki adımları uygulayınız.

Gitlab klasörü altında konfigürasyon dosyasının düzenlenmesi gerekmektedir.

gitlab.yml dosyasında localhost yazan yere hizmet vereceğiniz domain’i yazmanız gerekmektedir. Örn: gel.mehmetince.net

Ardından dizin ve izinlerin ayarlanması için aşağıdaki komutları uygulayınız.

Ardından gitlab için ilgili kullanıcı bilgilerinin tanımlanması gerekmektedir.

Burada ki önemli nokta user.email için tanımlanan mail adresi ile gitlab.yml dosyasında tanımladığınız adresin aynı olmasıdır.

11 – Veri tabanı ayarları

Kurulumunu yaptığımız MySQL için gitlab tanımlamalarını gerçekleştireceğiz.

Database bilgilerini barındıran dosyayı kopyaladıktan sonra metin editörü ile açıyoruz.

database.yml içerisinde sadece production kısmı için güncellemeler yapıyoruz. Bu döküman için ilgili tanımlamalar aşağıda yapılmıştır. Sizde kendi şifrenizi ilgili satıra yazarak dosyayı kaydedip çıkınız.

12 – GEM Yüklenmesi ve Veri Tabanı Hazırlanması

Bu adımda aşağıda ki komutları çalıştırınız.

Bu komut bir çok paket indirip kuracaktır. En son “Post-install message from httparty: When you HTTParty, you must party hard!” yazısını gördüğünüzde her şey yolunda demektir.

Ardından sıra veritabanında tabloları oluşturmaya geldi. Aşağıdaki komutu çalıştırınız. Komut veri tabanı oluşturmak isteyecektir, bu soruya Yes dedikten sonra işlemler gerçekleşecektir.

Giriş bilgileriniz. Bu bilgileri ilk oturumu gerçekleştirdiğinizde Gitlab değiştirmeniz için size zorlayacaktır.

13 – INIT Script Kurulumu

Sunucunun yeniden başlatıldığı gibi durumlarda servislerinde start anında ayağa kalkması gerekmektedir. Ayrıca herhangi bir durumda servisi yeniden başlatmak istediğinizde init script’ler kullanılır. Bu scriptler genelde /etc/init.d/ klasörü altında bulunur. Gitlab’ımız için gerekli olan init scriptini indirip bu dizine kaydediyoruz. Ardından start anında çalışması için gerekli komutları veriyoruz. Bu işlemler için aşağıdaki komutları çalıştırınız.

14 – Logrotate ayarlanması

Logların belli bir düzen ve döngüde tutulması ile ilgili ayarların yapılması gereklidir. Bunun için aşağıda ki komutu çalıştırıyoruz.

15 – Kontroller

Gitlab’ın çevresel değişkenlerinin düzgün konfigüre edilip edilmediğini kontrol etmek için aşağıda ki komutu çalıştırınız. Komut çıktısı da aşağıdakine benzer olacaktır.

16 – Gitlab servisini başlatmak

Şimdiye kadar ki işlemler tamam ise artık Gitlab servisini başlatabilirsiniz.

Komut unicorn ve sidekiq adından iki adet servisi başlatacaktır.

17 – Assets’lerin derlenmesi

Gitlab assets’lerinin derlenmesi için aşağıda ki komutu çalıştırıyoruz. Bu komut ile gitlab’ın kullandığı css, png vb assets dosyaları derlenecektir.

18 – Web Servisinin Konfigüre Edilmesi

Gitlab Apache ve Nginx ile birlikte koşturulabilir. Apache tercihini yapacak arkadaşları bu linkin 7. maddesini okumalarını öneriyorum. Bu döküman Nginx kurulumunu tercih etmektedir.

Gitlab’a web üzerinden erişirken HTTPS kullanılmalıdır. Bunun içinde bir adet self-signed ssl sertifikası oluşturmalıyız. SSL sertifikasının oluşturulması aşamasındaki bilgileri doğru girmeye özen gösteriniz. Bu dökümanda ele alınmayacak olan “Sertifika İmzalatma” sürecine daha sonra ihtiyaç duyduğunuz problem yaşamamanız için bu bilgilerin doğru olması önemlidir.

İlk adım olarak /etc/nginx/conf.d/gitlab.conf dosyasını metin editörü ile açıp server_name değişkenine hizmet vereceğiniz URL’i atamanız.

Metin editörü ile /home/git/gitlab-shell/config.yml dosyasını açıp aşağıda ki şekilde değişiklik yapıyoruz.

Burada ki önemli noktalar;

  • gitlab_url’in https‘e dönmüş olması.
  • ca_file’ın başında ki diyez işaretinin kaldırılıp /etc/nginx/gitlab.crt olarak değiştirilmesi ( ca_file ile self_signed_cert ‘in aynı sütundan başladığına emin olunuz. Syntax hatasına neden olmasın.)
  • self_signed_cert’in true ya atanması.

Son olarak metin editörü ile /home/git/gitlab/config/gitlab.yml dosyasının açılarak aşağıda ki port ve https değişikliğinin yapılması gerekmektedir.

Ve Nginx servisini başlatıyoruz.

19 – Iptables ayarları

Aşağıdaki komutları çalıştırıyoruz. Bu komutlar sayesinde kullanıcılar http servisimize erişebilecektir.

20 – Son Kontroller

Aşağıda ki komutları çalıştırarak son kontrolleri gerçekleştiriniz.

Aşağıdakine benzer bir hata alırsanız bunu önemsemeyiniz.

21 – Son

http://gel.mehmetince.net

Gitlab giriş ekranı

 

Kaynakça:

Bu yazının asıl baba kaynağı aşağıdaki linktedir. Bu linkteki yazıyı hazırlayan insanlara sonsuz teşekkürler.
https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos

 

  • Naci

    Gökte ararken yerde buldum buna denilir :) Gece 2 saatimizi çaldı. Paylaşım İçin Teşekkür Ederim..