Giriş

GitLab CE veya Community Edition, öncelikli olarak Git depolarını barındırmak için kullanılan, sorun izleme gibi geliştirmeyle ilgili ek özelliklerle birlikte açık kaynaklı bir uygulamadır. Kendi altyapınızı kullanarak barındırılmak üzere tasarlanmıştır ve geliştirme ekibiniz için dahili bir depo deposu, kullanıcılarla arabirim oluşturmanın genel bir yolu veya katkıda bulunanların kendi projelerini barındırmaları için bir araç olarak dağıtmada esneklik sağlar.

GitLab projesi, kolay bir kurulum mekanizmasıyla kendi donanımınızda bir GitLab örneği kurmayı nispeten kolaylaştırır. Bu kılavuzda, GitLab’ın bir Ubuntu 18.04 sunucusuna nasıl kurulup yapılandırılacağını ele alacağız.

Önkoşullar

Bu eğitim için ihtiyacınız olacak:

Yayınlanan GitLab donanım gereksinimleri ile bir sunucu kullanmanızı öneririz:

  • 2 çekirdek
  • 8 GB RAM

RAM için bir miktar takas alanı değiştirerek idare edebilseniz de, tavsiye edilmez. Bu kılavuz için, asgari olarak yukarıdaki kaynaklara sahip olduğunuzu varsayacağız.

Adım 1 – Bağımlılıkları Kurmak

GitLab’i kurmadan önce, kurulum sırasında ve sürekli olarak kullandığı bazı yazılımları kurmak önemlidir. Neyse ki, gerekli tüm yazılımlar Ubuntu’nun varsayılan paket depolarından kolayca kurulabilir.

aptBu oturum sırasında ilk kez kullandığımız için, yerel paket indeksini yenileyebilir ve ardından şunu yazarak bağımlılıkları yükleyebiliriz:

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

Muhtemelen bu yazılımın bir kısmına zaten sahip olacaksınız. İçin postfixkurulum, seçmek İnternet Sitesi istendiğinde. Sonraki ekranda, sistemin nasıl posta göndereceğini yapılandırmak için sunucunuzun etki alanı adını girin.

Adım 2 – GitLab’ı Kurma

Artık bağımlılıklar yerinde olduğuna göre GitLab’ın kendisini kurabiliriz. Bu, sisteminizi GitLab depolarıyla yapılandırmak için bir kurulum betiğinden yararlanan basit bir işlemdir.

İçine taşıyın /tmpdizin ve sonra kurulum komut dosyası indir:

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

Komut dosyasının güvenliğinden memnun olduğunuzda, yükleyiciyi çalıştırın:

sudo bash /tmp/script.deb.sh

Komut dosyası, sunucunuzu GitLab tarafından sağlanan depoları kullanacak şekilde ayarlayacaktır. Bu, GitLab’i diğer sistem paketleriniz için kullandığınız paket yönetim araçlarıyla yönetmenize olanak tanır. Bu tamamlandığında, gerçek GitLab uygulamasını şu şekilde kurabilirsiniz apt:

sudo apt install gitlab-ce

Bu, gerekli bileşenleri sisteminize kuracaktır.

Adım 3 – Güvenlik Duvarı Kurallarını Ayarlama

GitLab’i yapılandırmadan önce, güvenlik duvarı kurallarınızın web trafiğine izin verecek kadar izin verdiğinden emin olmanız gerekir. Önkoşullarda bağlantısı verilen kılavuzu izlediyseniz, ufwetkin bir güvenlik duvarınız olacaktır .

Etkin güvenlik duvarınızın mevcut durumunu yazarak görüntüleyin:

sudo ufw status
OutputStatus: active

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

Gördüğünüz gibi, mevcut kurallar SSH trafiğinin geçişine izin veriyor, ancak diğer hizmetlere erişim kısıtlı. GitLab bir web uygulaması olduğu için HTTP erişimine izin vermeliyiz. İsteği uygun GitLab en yeteneğinden yararlanarak olmak ve ücretsiz TLS / SSL sertifikası sağlayacak Çünkü edelim Şifrele , en de erişim HTTPS izin verelim.

HTTP ve HTTPS için bağlantı noktası eşleştirme protokolü /etc/servicesdosyada mevcuttur , bu nedenle bu trafiğe adıyla izin verebiliriz. Zaten OpenSSH trafiğini etkinleştirmediyseniz, o trafiğe şimdi de izin vermelisiniz:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

ufw statusTekrar kontrol edin ; erişimin en az şu iki hizmet için yapılandırıldığını görmelisiniz:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)

Yukarıdaki çıktı, uygulamayı yapılandırdığımızda GitLab web arayüzünün erişilebilir olacağını gösterir.

Adım 4 – GitLab Yapılandırma Dosyasını Düzenleme

Uygulamayı kullanmadan önce, konfigürasyon dosyasını güncellemeniz ve bir yeniden konfigürasyon komutu çalıştırmanız gerekir. İlk önce Gitlab’ın yapılandırma dosyasını açın:

sudo nano /etc/gitlab/gitlab.rb

En üste yakın bir yerde external_urlyapılandırma satırı var. Alanınızla eşleşecek şekilde güncelleyin. GitLab’in kullanıcıları Let’s Encrypt sertifikasıyla korunan siteye otomatik olarak yeniden yönlendirmesi httpiçin değiştirin https:/etc/gitlab/gitlab.rb

##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

Ardından, letsencrypt['contact_emails']ayarı arayın . Bu ayar, etki alanınızla ilgili sorunlar olması durumunda Let’s Encrypt projesinin sizinle iletişim kurmak için kullanabileceği e-posta adreslerinin bir listesini tanımlar. Herhangi bir sorunu bilmeniz için açıklamayı kaldırıp doldurmak iyi bir fikirdir:/etc/gitlab/gitlab.rb

letsencrypt['contact_emails'] = ['sammy@example.com']

Dosyayı kaydedin ve kapatın. Gitlab’ı yeniden yapılandırmak için aşağıdaki komutu çalıştırın:

sudo gitlab-ctl reconfigure

Bu, GitLab’ı sunucunuz hakkında bulabileceği bilgileri kullanarak başlatacaktır. Bu tamamen otomatik bir süreçtir, bu nedenle herhangi bir soruyu yanıtlamanız gerekmez. İşlem ayrıca etki alanınız için bir Let’s Encrypt sertifikası yapılandıracaktır.

Adım 5 – Web Arayüzü Üzerinden İlk Yapılandırmanın Yapılması

GitLab çalışırken ve erişime izin verildiğinde, uygulamanın bazı ilk yapılandırmalarını web arayüzü aracılığıyla gerçekleştirebiliriz.

İlk Kez Giriş Yapmak

Web tarayıcınızda GitLab sunucunuzun alan adını ziyaret edin:

https://example.com

İlk ziyaretinizde, yönetici hesabı için bir şifre belirlemeniz için bir ilk uyarı görmelisiniz:

İlk parola isteminde, yönetici hesabı için güvenli bir parola sağlayın ve onaylayın. Bitirdiğinizde Parolanızı değiştirin düğmesine tıklayın.

Geleneksel GitLab oturum açma sayfasına yönlendirileceksiniz:

Burada, belirlediğiniz şifre ile giriş yapabilirsiniz. Kimlik bilgileri şunlardır:

  • Kullanıcı adı: root
  • Şifre: [belirlediğiniz şifre]

Bu değerleri mevcut kullanıcılar için alanlara girin ve Oturum aç düğmesini tıklayın. Uygulamada oturum açacaksınız ve proje eklemeye başlamanızı isteyen bir açılış sayfasına yönlendirileceksiniz:

GitLab’i istediğiniz şekilde kurmak için artık bazı basit değişiklikler yapabilirsiniz.

Profil Ayarlarınızı Düzenleme

Yeni bir kurulumdan sonra yapmanız gereken ilk şeylerden biri profilinizi daha iyi bir şekle sokmaktır. GitLab bazı makul varsayılanlar seçer, ancak bunlar yazılımı kullanmaya başladığınızda genellikle uygun değildir.

Gerekli değişiklikleri yapmak için arayüzün sağ üst köşesindeki kullanıcı simgesine tıklayın. Görünen açılır menüde Ayarlar’ı seçin :

Profil ayarlarınızı bölümünde:

Ayarlayın Adı ve E-posta “Yönetici” ve “adresi admin@example.com daha doğru bir şey”. E-posta varsayılan avatar tespiti, bildirimler, arayüz aracılığıyla Git eylemleri vb. İçin kullanılırken, seçtiğiniz ad diğer kullanıcılara gösterilecektir.

İşiniz bittiğinde alttaki Profil ayarlarını güncelle düğmesine tıklayın:

Sağladığınız adrese bir onay e-postası gönderilecektir. Hesabınızı onaylamak için e-postadaki talimatları izleyin, böylece onu GitLab ile kullanmaya başlayabilirsiniz.

Hesap Adınızı Değiştirme

Ardından, sol taraftaki menü çubuğunda bulunan Hesap öğesine tıklayın :

Burada, özel API simgenizi bulabilir veya iki faktörlü kimlik doğrulamayı yapılandırabilirsiniz. Ancak, şu anda ilgilendiğimiz işlevsellik Kullanıcı adını değiştir bölümüdür.

Varsayılan olarak, ilk yönetici hesabına kök adı verilir . Bu bilinen bir hesap adı olduğundan, bunu farklı bir adla değiştirmek daha güvenlidir. Yine de yönetici ayrıcalıklarına sahip olacaksınız; Değişecek tek şey isimdir. Kökü tercih ettiğiniz kullanıcı adıyla değiştirin :

 Güncelleme kullanıcı adı değişikliği yapmak için düğmeye tıklayın:

GitLab’da bir sonraki oturum açışınızda, yeni kullanıcı adınızı kullanmayı unutmayın.

Hesabınıza bir SSH Anahtarı Ekleme

Çoğu durumda GitLab projelerinizle etkileşimde bulunmak için Git ile SSH anahtarlarını kullanmak isteyeceksiniz. Bunu yapmak için, SSH genel anahtarınızı GitLab hesabınıza eklemeniz gerekir.

Yerel bilgisayarınızda oluşturulmuş bir SSH anahtar çiftiniz varsa, genel anahtarı genellikle şunu yazarak görüntüleyebilirsiniz:

cat ~/.ssh/id_rsa.pub

Bunun gibi büyük bir metin parçası görmelisiniz:

Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Bu metni kopyalayın ve GitLab’ın web arayüzündeki Profil Ayarları sayfasına geri dönün.

Bunun yerine, şuna benzer bir mesaj alırsanız, makinenizde henüz yapılandırılmış bir SSH anahtar çiftiniz yok:

Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

Bu durumda, şunu yazarak bir SSH anahtar çifti oluşturabilirsiniz:

ssh-keygen

Varsayılanları kabul edin ve isteğe bağlı olarak anahtarı yerel olarak korumak için bir şifre sağlayın:

OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work
The key's randomart image is:
+---[RSA 2048]----+
|          ..%o==B|
|           *.E =.|
|        . ++= B  |
|         ooo.o . |
|      . S .o  . .|
|     . + .. .   o|
|      +   .o.o ..|
|       o .++o .  |
|        oo=+     |
+----[SHA256]-----+

Bunu aldıktan sonra, genel anahtarınızı yukarıdaki gibi şunu yazarak görüntüleyebilirsiniz:

cat ~/.ssh/id_rsa.pub
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Görüntülenen metin bloğunu kopyalayın ve GitLab’ın web arayüzünde profil ayarlarınıza geri dönün .

Sol menüdeki SSH Anahtarları öğesine tıklayın :

Sağlanan alana yerel makinenizden kopyaladığınız ortak anahtarı yapıştırın. Açıklayıcı bir başlık verin ve Anahtar ekle düğmesini tıklayın:

Artık GitLab hesap kimlik bilgilerinizi sağlamak zorunda kalmadan GitLab projelerinizi ve depolarınızı yerel makinenizden yönetebilmelisiniz.

Adım 6 – Genel Kayıtları Kısıtlama veya Devre Dışı Bırakma (İsteğe Bağlı)

GitLab örneğinizin açılış sayfasını ziyaret ettiğinizde herhangi birinin bir hesaba kaydolmasının mümkün olduğunu fark etmiş olabilirsiniz. Herkese açık bir projeye ev sahipliği yapmak istiyorsanız, istediğiniz şey bu olabilir. Ancak çoğu zaman daha kısıtlayıcı ayarlar tercih edilir.

Başlamak için , sayfanın üst kısmındaki ana menü çubuğunda bulunan İngiliz anahtarı simgesine tıklayarak yönetim alanına gidin :

Takip eden sayfada, GitLab örneğinizin bir bütün olarak genel bakışını görebilirsiniz. Tıklayın ayarlarını yapmak için Ayarlar sol menünün en altındaki öğeye:

GitLab örneğiniz için genel ayarlara yönlendirileceksiniz. Burada, yeni kullanıcıların kaydolup kaydolamayacağını ve erişim düzeylerini etkileyen bir dizi ayarı düzenleyebilirsiniz.

Kayıtları Devre Dışı Bırakma

Kayıtları tamamen devre dışı bırakmak istiyorsanız (yine de yeni kullanıcılar için manuel olarak hesap oluşturabilirsiniz), Kayıt Kısıtlamaları bölümüne gidin.

Kaydolma etkin onay kutusunun seçimini kaldırın :

Aşağıya doğru kaydırın ve Değişiklikleri kaydet düğmesine tıklayın:

Kaydolma bölümü artık GitLab açılış sayfasından kaldırılmalıdır.

Kayıtları Alan Adına Göre Kısıtlama

Bir etki alanıyla ilişkili e-posta adresleri sağlayan bir kuruluşun parçası olarak GitLab kullanıyorsanız, kayıtları tamamen devre dışı bırakmak yerine etki alanına göre sınırlandırabilirsiniz.

In ol Kısıtlamalar bölümünde, seçmek kaydolma Gönderme onay e- kullanıcıların kendi e-posta teyit ettik ancak sonra oturum sağlayacak kutu.

Ardından, alanınızı veya alanlarınızı , her satırda bir alan olacak şekilde kaydolmak için Beyaz Listedeki alanlara ekleyin . Joker karakter alan adlarını belirtmek için yıldız işaretini “*” kullanabilirsiniz:

Aşağıya doğru kaydırın ve Değişiklikleri kaydet düğmesine tıklayın:

Kaydolma bölümü artık GitLab açılış sayfasından kaldırılmalıdır.

Proje Oluşturmayı Kısıtlama

Varsayılan olarak, yeni kullanıcılar 10 adede kadar proje oluşturabilir. Görünürlük ve katılım için dışarıdan yeni kullanıcılara izin vermek, ancak yeni projeler oluşturma erişimlerini kısıtlamak istiyorsanız, bunu Hesap ve Sınır Ayarları bölümünden yapabilirsiniz.

İçeride, yeni kullanıcıların proje oluşturmasını tamamen devre dışı bırakmak için Varsayılan proje sınırını 0 olarak değiştirebilirsiniz:

Yeni kullanıcılar yine de projelere manuel olarak eklenebilir ve diğer kullanıcılar tarafından oluşturulan dahili veya genel projelere erişebilir.

Aşağıya doğru kaydırın ve Değişiklikleri kaydet düğmesine tıklayın:

Yeni kullanıcılar artık hesap oluşturabilecek, ancak proje oluşturamayacak.

Let’s Encrypt Sertifikalarını Yenilemek

Varsayılan olarak GitLab, her dördüncü günde bir gece yarısından sonra Let’s Encrypt sertifikalarını yenilemek için ayarlanmış bir zamanlanmış göreve sahiptir external_url. Bu ayarları /etc/gitlab/gitlab.rbdosyada değiştirebilirsiniz . Örneğin, her 7 günde bir saat 12: 30’da yenilemek istiyorsanız, bunu aşağıdaki gibi yapılandırabilirsiniz:/etc/gitlab/gitlab.rb

letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Aşağıdakilere ek bir ayar ekleyerek de otomatik yenilemeyi devre dışı bırakabilirsiniz /etc/gitlab/gitlab.rb:/etc/gitlab/gitlab.rb

letsencrypt['auto_renew'] = false

Otomatik yenilemeler uygulandığında, hizmet kesintileri konusunda endişelenmenize gerek kalmayacak.

Sonuç

Artık kendi sunucunuzda barındırılan çalışan bir GitLab örneğiniz olmalıdır. Yeni projeleri içe aktarmaya veya oluşturmaya başlayabilir ve ekibiniz için uygun erişim düzeyini yapılandırabilirsiniz. GitLab düzenli olarak platformlarına özellikler ekliyor ve güncellemeler yapıyor, bu nedenle herhangi bir iyileştirme veya önemli bildirimlerden haberdar olmak için projenin ana sayfasını kontrol ettiğinizden emin olun.