GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Gitlab dengan PostgreSQL dan Nginx di Ubuntu 15.04

Gitlab adalah aplikasi manajemen repositori git berbasis web yang ditulis di Ruby. Ini mirip dengan GitHub dan menyertakan fitur seperti wiki proyek dan sistem pelacakan masalah. Proyek Gitlab dimulai oleh Dmitriy Zaporozhets dan perangkat lunak ini digunakan oleh lebih dari 100.000 perusahaan teknologi termasuk IBM, StackExchange, NASA, Alibaba, Red Hat, dll. Gitlab adalah salah satu solusi terbaik untuk membangun server git Anda sendiri.

Gitlab didukung oleh distribusi Linux utama seperti Ubuntu, Debian, dan CentOS. Gitlab menyediakan paket .deb untuk Debian/Ubuntu dan paket .rpm untuk Rhel dan CentOS. Paket ini berisi semua dependensi termasuk Ruby, Redis, Nginx, Unicorn dan PostgreSQL. Gitlab tersedia dalam 2 versi, Edisi Komunitas (Gitlab CE) dan Edisi Perusahaan (Gitlab EE). Jika Anda ingin membangun server git Anda sendiri, kemungkinan besar edisi CE gratis akan menawarkan semua fitur yang Anda butuhkan.

Dalam tutorial ini, saya akan memandu Anda langkah demi langkah melalui instalasi Gitlab CE dengan PostgreSQL sebagai sistem database, dan Nginx sebagai web server di Ubuntu versi 15.04. Kami akan menggunakan Ruby versi 2.x.x, gitlab stable versi 8.x.

Prasyarat

  • Ubuntu 15.04 - 64bit.
  • CPU 2 Cores - direkomendasikan dari situs gitlab .
  • 2 GB RAM/Memori - direkomendasikan dari situs gitlab .
  • Hak istimewa root.

Langkah 1 - Perbarui Sistem Linux

Sebelum menginstal dependensi Gitlab, kami mengambil pembaruan terbaru dari repositori ubuntu. Masuk ke server ubuntu dengan akses SSH,  jadilah pengguna root, lalu perbarui repositori.

sudo su
apt-get update

Langkah 2 - Instal Dependensi Gitlab

Gitlab memiliki banyak dependensi perangkat lunak seperti redis-server, git-core, nodejs dan postfix untuk mengirim notifikasi email. Saya akan menginstalnya dengan satu perintah apt:

sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4- openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix

Catatan:Selama instalasi postfix, pilih "situs internet" lalu tekan enter untuk mengkonfirmasi nama host.

Jika semua paket terinstal, periksa versi git dan pastikan versi git adalah 1.7.x atau lebih tinggi.

git --version
git versi 2.1.4

Langkah 3 - Instal Ruby dan Go

Gitlab membutuhkan ruby ​​versi 2.x atau lebih tinggi. Dalam tutorial ini, kita akan menggunakan ruby ​​versi 2.7. Pada tahap ini, kita harus menginstal ruby ​​secara manual (dari sumber). Jika Anda telah menginstal Ruby di sistem Anda sebelumnya, hapus dengan perintah di bawah ini:

apt-get hapus ruby ​​-y

Selanjutnya, kita akan menginstal ruby ​​secara manual. Buat direktori baru untuk file sumber ruby:

mkdir -p /tmp/ruby &&cd /tmp/ruby

Unduh sumber ruby ​​​​dengan perintah curl:

curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz

Sekarang verifikasi dan ekstrak ruby.tar.gz, lalu masuk ke direktori ruby:

echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075  ruby-2.1.7.tar.gz' | shasum -c - &&\
tar xzf ruby-2.1.7.tar.gz &&\
cd ruby-2.1.7

Kompilasi dan instal Ruby:

./configure --disable-install-rdoc --prefix=/usr/local
make
make install

Sebagai langkah selanjutnya, kita harus menginstal Go. Sejak gitlab 8.0, permintaan HTTP git ditangani oleh gitlab-workhorse yang ditulis dalam Go. Untuk menginstal gitlab-workhorse, kita memerlukan kompiler go, mendownload dan menginstalnya.

Buat direktori baru untuk Go:

mkdir -p /tmp/go &&cd /tmp/go

Unduh Go - kami menggunakan versi 64 bit:

curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

Verifikasi dan ekstrak ke direktori "/usr/local/":

echo '46eecd290d8803887dec718c691cc243f2175fe0  go1.5.1.linux-amd64.tar.gz' | shasum -c - &&\
sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

Sekarang buat symlink untuk Go di direktori bin:

sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

Sekarang kami telah menginstal Ruby and Go.

Langkah 4 - Buat pengguna Linux baru dan konfigurasikan database PostgreSQL

Pada langkah ini, kita akan membuat pengguna sistem Linux baru bernama "git" dengan direktori beranda "/home/git". Gitlab akan dijalankan sebagai pengguna git nanti.

Buat git pengguna baru dengan perintah adduser:

sudo adduser --disabled-login --gecos 'GitLab' git

Sekarang kita mengkonfigurasi database untuk gitlab. Gitlab mendukung MySQL dan PostgreSQL, dalam tutorial ini kita akan menggunakan tipe database yang direkomendasikan PostGreSQL.

Instal PostgreSQL dengan perintah apt di bawah ini:

sudo apt-get install -y postgresql postgresql-client libpq-dev

Setelah selesai, masuk ke PostgreSQL dan buat peran/pengguna baru bernama "git " untuk gitlab:

sudo -u postgres psql -d template1
BUAT PENGGUNA git CREATEDB;

Kemudian buat database baru untuk gitlab bernama "gitlabhq_production " dan berikan database ke git user/role:

BUAT DATABASE gitlabhq_production PEMILIK git;

Sekarang keluar dari shell postgresql dan uji peran/pengguna baru dengan database yang telah kita buat:

\q
sudo -u git -H psql -d gitlabhq_production

Pengguna sistem baru bernama "git" telah dibuat.

Peran/pengguna baru "git" untuk psotgreSQL yang telah diberikan ke database gitlab "gitlabhq_production" telah dibuat juga.

Langkah 5 - Konfigurasi server Redis

Sebelum kita mengedit file konfigurasi redis di direktori "/etc/redis", kita akan membuat salinan cadangan dengan nama redis.conf.original.

cd /etc/redis/
cp redis.conf redis.conf.original

Kemudian edit file "redis.conf" dengan editor vim:

vim redis.conf


Pergi ke baris 45 dan ubah nilainya menjadi 0 , karena kami ingin Redis mendengarkan hanya pada soket unix dan bukan port:

Dengarkan 0

Kemudian pergi ke akhir file dan tambahkan soket redis dan izin untuk itu:

unixsocket /var/run/redis/redis.sock
unixsocketperm 777

Simpan file dan keluar.

Selanjutnya, buat direktori baru untuk soket redis di direktori "/var/run" dan sesuaikan pemilik dan izin direktori:

mkdir -p /var/run/redis
chown redis:redis /var/run/redis
chmod 755 /var/run/redis

Buka direktori soket redis dan jalankan perintah di bawah ini:

cd /var/run/redis
if [ -d /etc/tmpfiles.d ]; lalu
  echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi

Jika semua sudah selesai, restart server redis dan tambahkan pengguna "git" ke grup "redis":

sudo service redis-server restart
sudo usermod -aG redis git

Langkah 6 - Instal GitLab

Buka direktori "/home/git" dan unduh gitlab dari repositori GIT-nya:

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab

Catatan :

sudo -u git -H clone command =kita menjalankan perintah "clone" sebagai user "git".

- Konfigurasikan GitLab

Buka direktori gitlab untuk mengonfigurasi gitlab:

cd /home/git/gitlab

Salin contoh file konfigurasi gitlab gitlab.yml.example ke gitlab.yml di direktori "config":

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

Di direktori gitlab, ubah pemilik sub direktori "log and tmp" menjadi pengguna git:

sudo chown -R git {log,tmp}

Kemudian ubah izin untuk direktori lain sehingga gitlab (pengguna git) dapat menulis ke direktori tersebut:

mkdir -p public/uploads/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX {tmp,tmp/pids,tmp/socket,builds ,shared/artifacts}
sudo chmod -R 0750 publik/upload

Salin contoh konfigurasi serangan unicorn dan Rak:

sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

Sekarang kita harus mengkonfigurasi pengaturan global untuk pengguna git dengan perintah git di bawah ini:

sudo -u git -H git config --global core.autocrlf input

Dan kita harus mengonfigurasi koneksi redis dengan menyalin file "resque.yml" ke direktori config, lalu mengeditnya dengan vim untuk mengubah konfigurasi redis, gunakan soket unix saat kita mengonfigurasi redis untuk mendengarkan di soket:

sudo -u git -H cp config/resque.yml.example config/resque.yml

- Konfigurasi Basis Data

Langkah selanjutnya adalah mengkonfigurasi pengaturan GitLab DB, kami menggunakan postgreSQL untuk database kami. Salin file konfigurasi dan ubah izinnya:

sudo -u git -H cp config/database.yml.postgresql config/database.yml
sudo -u git -H chmod o-rwx config/database.yml

- Instal Permata

sudo gem install bundler
sudo -u git -H bundle install --deployment --tanpa uji pengembangan mysql aws kerberos

Tunggu sampai perintah selesai.

- Instal Gitlab-shell

Gitlab-shell memungkinkan akses SSH dan manajemen repositori untuk Gitlab. Kami akan menggunakan konfigurasi default, jadi kami tidak perlu mengeditnya. Jalankan perintah di bawah ini untuk menginstal gitlab-shell:

sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

REDIS_URL =pastikan Anda menggunakan soket unix untuk konfigurasi redis di lingkungan produksi.

- Instal gitlab-workhorse

Gitlab-workhorse adalah deamon kecil untuk menangani lalu lintas HTTP Git dari unicorn, dikodekan dalam Go. Kloning dan instal:

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout 0.4.2
sudo -u git -H make

- Inisialisasi database dan aktifkan fitur gitlab

Buka direktori instalasi gitlab dan jalankan perintah di bawah ini:

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

ketik "ya" untuk membuat tabel.

Hasilnya akan menjadi akun gitlab dengan nama pengguna "root " dan sandi "5iveL!fe ".

Langkah 7 - Konfigurasi Skrip Init

Salin skrip init gitlab dari direktori instalasi gitlab dan tambahkan gitlab untuk memulai saat boot dengan perintah update-rc.d:

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab default 21

Kemudian salin konfigurasi gitlab logrotate untuk manajemen log:

sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

Dan periksa status aplikasi dan kompilasi aset:

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

Jika tidak ada kesalahan, mulai gitlab dengan:

/etc/init.d/gitlab start

Langkah 8 - Instal dan Konfigurasi Nginx

Kami akan menggunakan Nginx sebagai server web ujung depan untuk menangani permintaan browser. Instal saja dengan perintah apt ini:

apt-get install nginx -y

Salin konfigurasi host virtual Nginx dari direktori gitlab dan hapus virtualhost default Nginx default:

sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo rm /etc/nginx/sites-enabled/default

Edit file konfigurasi dengan vim:

sudo vim /etc/nginx/sites-available/gitlab

Ubah nilai baris Listen dan ServerName di bagian HTTP:

Dengarkan *:80; #Port Default

#Listen 0.0.0.0:80; #komentari salah satunya

ServerName my.gitlab.me; #Gitlab FQDN/Domain

Simpan dan keluar.

Aktifkan virtualhost gitlab, mulai nginx dan mulai ulang gitlab:

sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
service nginx start
/etc/init.d/gitlab restart

Sekarang Anda dapat mengakses gitlab dengan browser Anda di my.gitlab.me (nama host yang Anda pilih untuk server Anda) dan masuk dengan nama pengguna default "root " dan kata sandi "5iveL!fe ".

Pertama, Anda harus mengganti kata sandi default gitlab dengan kata sandi Anda.

Gitlab 8 dengan PostgreSQL dan Nginx di ubuntu 15.04 berhasil diinstal sekarang.

Catatan :

Jika Anda memiliki kesalahan, misalnya "502 bad gateway", maka perbaiki dengan meningkatkan waktu unicorn atau meng-upgrade perangkat keras Anda. Buka direktori instalasi gitlab dan edit file unicorn.rb dengan vim:

sudo -u git -H vim config/unicorn.rb

Lihat lebih lanjut tentang pemecahan masalah Gitlab di sini https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide.

Kesimpulan

Gitlab adalah perangkat lunak manajemen repositori git open source yang ditulis dalam Ruby. Ini adalah salah satu solusi terbaik untuk membangun server git Anda sendiri. Gitlab dibuat oleh Dmitriy Zaporozhets dan tersedia dalam 2 versi, Gitlab CE (Edisi Komunitas) dan Gitlab EE (Edisi Perusahaan). Gitlab mudah dipasang dan dikonfigurasi dengan antarmuka yang indah, digunakan oleh lebih dari 100.000 perusahaan teknologi. Ini adalah perangkat lunak yang sangat kuat yang membantu pengembang untuk membangun aplikasi bersama dengan pengembang lain.


Ubuntu
  1. Cara Menginstal Mattermost dengan PostgreSQL dan Nginx di Ubuntu 16.04

  2. Cara Menginstal Postgresql dan phpPgAdmin di Ubuntu 15.04

  3. Cara Instal Nginx Dengan PHP5 Dan MySQL Di Ubuntu 11.10

  1. Cara Menginstal Ruby on Rails (RoR) dengan PostgreSQL di Ubuntu 16.04

  2. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal Magento 2 dengan Nginx dan Letsencrypt di Ubuntu 18.04

  1. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  2. Cara Menginstal Drupal 8 dengan Nginx, PHP-FPM dan SSL di Ubuntu 15.10

  3. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10