GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Server Gitlab dengan Docker di Ubuntu 18.04 LTS

Gitlab CE atau Community Edition adalah aplikasi open-source yang digunakan untuk menghosting repositori Git Anda. Menghosting sendiri repositori Git Anda memberi Anda kendali penuh atas data Anda sekaligus menyediakan antarmuka yang mudah digunakan untuk Anda dan anggota tim Anda.

Dalam panduan ini, kami akan membahas cara menginstal repositori Git Anda menggunakan penawaran gratis Gitlab, Edisi Komunitas. Jika Anda menginginkan fitur lanjutan seperti persetujuan Gabung, Peta Jalan, Manajemen Portofolio, Pemulihan bencana, Pemindaian kontainer, dll., Anda dapat memilih untuk meningkatkan ke Edisi Perusahaan.

Prasyarat

  • Server berbasis Ubuntu 18.04 dengan pengguna sudo non-root.
  • Anda memerlukan VPS dengan minimal 2 inti CPU dan RAM 8GB sesuai dengan persyaratan perangkat keras yang ditentukan untuk Gitlab CE yang akan mendukung 100 pengguna. Meskipun Anda dapat mengganti ruang swap dengan RAM, hal ini tidak disarankan karena aplikasi akan berjalan lebih lambat.

Langkah 1 - Memasang Dependensi

Sebelum kita menginstal Gitlab, kita perlu memastikan server kita memiliki perangkat lunak tertentu yang dibutuhkan Gitlab untuk berjalan dengan baik. Jalankan perintah berikut untuk menginstal dependensi.

$ sudo apt update
$ sudo apt install ca-certificates curl openssh-server ufw apt-transport-https -y

Beberapa perangkat lunak di atas mungkin sudah diinstal sebelumnya untuk Anda.

Langkah 2 - Ubah Port SSH Sistem Anda

Gitlab akan menggunakan port 22 untuk mendorong repositori melalui SSH. SSH server Anda juga berjalan di sana yang akan menghasilkan konflik. Ada dua cara untuk melakukannya. Anda dapat mengubah port SSH yang Anda gunakan untuk terhubung ke sistem Anda atau Anda dapat mengubah port yang akan digunakan Gitlab untuk SSH. Dalam tutorial ini, kita akan mengubah port SSH untuk server itu sendiri.

Untuk melakukan ini, kita perlu mengedit file /etc/ssh/sshd_config. Buka file di editor teks nano.

$ sudo nano /etc/ssh/sshd_config

Temukan baris berikut dan ubah 22 ke 6622 dan hapus # di depannya. Anda dapat memilih port yang Anda inginkan.

# Port 22

Tekan Ctrl + X untuk menutup file Anda dan tekan Y untuk menyimpan perubahan.

Mulai ulang layanan SSH.

$ sudo systemctl restart sshd

Tutup sesi SSH Anda saat ini dan buat sesi baru dengan port 6622 dan sambungkan kembali ke server Anda.

$ ssh [email protected] -p 6622

Langkah 3 - Mengonfigurasi Firewall

Pada langkah kami sebelumnya, kami menginstal, ufw (Uncomplicated Firewall). Sebelum kita dapat melanjutkan untuk menginstal Gitlab, kita perlu mengonfigurasinya.

Aktifkan SSH dan port yang baru saja kita buat agar tidak terkunci.

$ sudo ufw allow OpenSSH
$ sudo ufw allow 6622

Aktifkan firewall ufw.

$ sudo ufw enable

Kami juga perlu mengaktifkan http dan https agar Gitlab dapat beroperasi.

$ sudo ufw allow http
$ sudo ufw allow https

Periksa status firewall.

$ sudo ufw status

Anda akan melihat output seperti berikut.

Status: active

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

Langkah 4 - Instal Docker

Tambahkan kunci GPG Docker ke sistem Anda.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Verifikasi sidik jari dari kunci yang diunduh.

$ sudo apt-key fingerprint 0EBFCD88

Anda akan melihat output seperti berikut.

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

Tambahkan repositori Docker.

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Perbarui basis data paket Anda.

$ sudo apt update

Instal Docker-CE. CE adalah Docker Edisi Komunitas.

$ sudo apt install docker-ce -y

Docker harus diinstal sekarang. Periksa apakah itu berjalan.

$ sudo systemctl status docker

Outputnya harus seperti berikut ini.

? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-11 21:10:31 UTC; 32s ago
     Docs: https://docs.docker.com
 Main PID: 19128 (dockerd)
    Tasks: 12
   CGroup: /system.slice/docker.service
           ??19128 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Tekan q untuk keluar.

Tambahkan akun pengguna Linux Anda yang terbatas ke grup buruh pelabuhan sehingga Anda dapat menjalankan buruh pelabuhan tanpa sudo.

sudo usermod -aG docker $USER

$USER variabel akan memilih dan menambahkan pengguna yang masuk saat ini ke grup buruh pelabuhan. Ganti $USER dengan nama pengguna yang sebenarnya jika saat ini Anda tidak masuk dengan pengguna tersebut.

Beralih ke pengguna yang baru saja kita tambahkan. Meskipun Anda sudah masuk, Anda masih perlu beralih lagi untuk memuat ulang izin.

$ su - ${USER}

Periksa apakah semuanya berjalan dengan baik dengan menjalankan program "Hello World" bawaan.

$ docker run hello-world

Anda akan melihat output berikut yang akan memberi tahu Docker telah diinstal dan berfungsi dengan baik.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Langkah 5 - Instal Docker Compose

Anda dapat melewati langkah ini dan melanjutkan, tetapi menginstal Docker Compose akan membuat menjalankan Gitlab lebih mudah terutama jika Anda ingin melakukannya di lebih dari satu server.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Pada saat penulisan tutorial ini, 1.24.1 adalah rilis stabil Docker Compose saat ini. Anda dapat memeriksa versi rilis terbaru dari halaman Github mereka.

Terapkan izin yang dapat dieksekusi ke biner penulisan buruh pelabuhan.

$ sudo chmod +x /usr/local/bin/docker-compose

Tambahkan Penyelesaian Perintah ke Docker Compose.

$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

Verifikasi apakah instalasi Anda berhasil.

$ docker-compose --version

Ini akan mencetak output berikut.

docker-compose version 1.24.1, build 4667896b

Langkah 6 - Instal Gitlab

Unduh gambar Docker Gitlab dari Dockerhub. Gambar ini berisi semua yang Anda butuhkan untuk menjalankan Docker - nginx, PostgreSQL, Redis, dll. Jalankan perintah berikut untuk mengunduh gambar.

$ docker pull gitlab/gitlab-ee:latest

Meskipun tutorial ini tentang menginstal Edisi Komunitas, namun kami akan mengambil gambar Edisi Perusahaan dari Gitlab. Ini karena edisi Enterprise berperilaku persis seperti Edisi Komunitas kecuali Anda meningkatkannya dengan memasukkan lisensi Anda. Meningkatkan instalasi Edisi Komunitas ke Edisi Perusahaan menghadirkan lebih banyak kerumitan.

Ini akan memakan waktu beberapa saat untuk men-download lengkap gambar. Ketika pekerjaan selesai, Anda dapat menjalankan perintah berikut untuk memeriksa semua gambar yang saat ini ada di sistem Anda.

$ docker images

Outputnya akan terlihat seperti berikut ini.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ee    latest              4bacb2356d28        4 days ago          1.87GB
hello-world         latest              fce289e99eb9        9 months ago        1.84kB

Langkah 7 - Jalankan Gitlab

Kami dapat menjalankan wadah Gitlab langsung pada saat ini dengan menyediakan semua opsi dalam satu perintah, tetapi itu berarti setiap kali Anda perlu menjalankan wadah, Anda perlu menyediakan variabel-variabel ini. Docker Compose membuat proses ini lebih mudah karena memungkinkan Anda untuk menyimpan konfigurasi ke dalam file .yml yang kemudian akan digunakan untuk menjalankan dan meluncurkan container.

Buat docker-compose.yml.

$ nano docker-compose.yml

Tempelkan kode berikut.

web:
  image: 'gitlab/gitlab-ee:latest'
  container_name: 'gitlab-howtoforge-tutorial'
  restart: always
  hostname: 'gitlab.example.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.example.com'
      gitlab_rails['smtp_enable'] = true
	  gitlab_rails['smtp_address'] = "smtp.gmail.com"
      gitlab_rails['smtp_port'] = 587
      gitlab_rails['smtp_user_name'] = "[email protected]"
      gitlab_rails['smtp_password'] = "app-password"
      gitlab_rails['smtp_domain'] = "smtp.gmail.com"
      gitlab_rails['smtp_authentication'] = "login"
      gitlab_rails['smtp_enable_starttls_auto'] = true
      gitlab_rails['smtp_tls'] = false
      gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
      # Add any other gitlab.rb configuration here, each on its own line
  ports:
    - '80:80'
    - '443:443'
    - '22:22'
    - '587:587'
  volumes:
    - '/srv/gitlab/config:/etc/gitlab'
    - '/srv/gitlab/logs:/var/log/gitlab'
    - '/srv/gitlab/data:/var/opt/gitlab'

Mari kita lihat apa arti dari setiap opsi di atas.

  • gambar mengacu pada lokasi image Docker dari Gitlab di Dockerhub.
  • nama_wadah memungkinkan Anda untuk menerapkan label ke wadah buruh pelabuhan Anda, untuk digunakan saat mereferensikan wadah dalam jaringan Docker.
  • nama host mendefinisikan hostname internal container atau dalam kasus kami, URL tempat Gitlab Anda akan dipasang.
  • mulai ulang menentukan kebijakan mulai ulang untuk penampung. Kami telah menyetelnya ke selalu yang berarti wadah jika keluar, secara otomatis akan dimulai ulang.
  • lingkungan memasok variabel GITLAB_OMNIBUS_CONFIG yang memungkinkan Anda untuk memasukkan pengaturan konfigurasi Gitlab. Dalam hal ini, kami menyediakan URL eksternal yang seharusnya digunakan Gitlab.
  • volume mendefinisikan direktori yang dipasang di server untuk menyimpan data persisten. Tiga volume/direktori menyimpan data aplikasi, file log, dan file konfigurasi. Nilai di sebelah kiri titik koma adalah direktori lokal di server, dan nilai di sebelah kanan adalah direktori di dalam wadah.
  • terbitkan memberitahu wadah untuk mempublikasikan port atau berbagai port ke host. Karena Gitlab membutuhkan port 22(SSH), 80(HTTP), 443(HTTPS) dan 587(SMPT - MSA), kami telah menetapkannya di sini. Jika Anda ingin Gitlab menggunakan port non-standar di server Anda (mungkin karena tidak tersedia), Anda harus menyediakan port host terlebih dahulu, lalu port container. Misalnya, karena server Anda sudah menggunakan port SSH(22), Anda dapat memberi tahu Gitlab untuk menggunakan SSH melalui port yang berbeda, misalnya 3333. Kemudian Anda akan mengubah 22:22 dalam file di atas ke 3333:22 . Anda juga perlu menambahkan baris gitlab_rails['gitlab_shell_ssh_port'] =3333 di bawah GITLAB_OMNIBUS_CONFIG di atas.
  • external_url mengacu pada domain tempat Gitlab Anda akan dipasang. Kami telah memilih https yang akan secara otomatis memasang sertifikat Let's Encrypt SSL untuk kami.
  • Kami juga telah menambahkan konfigurasi tambahan untuk mengonfigurasi Gitlab agar menggunakan Gmail untuk mengirim email. Anda dapat menggunakan layanan email SMTP pihak ketiga. Dokumen Gitlab telah mempertahankan panduan terperinci tentang cara mengonfigurasi berbagai layanan SMTP dengannya.

Pastikan Anda berada di direktori yang sama dengan docker-compose.yml. Jalankan perintah berikut untuk memulai Gitlab.

$ docker-compose up -d

Anda akan melihat sesuatu seperti berikut.

Creating gitlab-howtoforge-tutorial ... done

Diperlukan beberapa menit lagi sebelum Anda dapat mengakses Gitlab melalui browser. Anda dapat mengetahui lebih lanjut tentang proses startup melalui perintah berikut.

$ docker logs -f gitlab-howtoforge-tutorial

Untuk keluar dari proses pemantauan log, tekan Ctrl + C.

Muat situs Gitlab di browser Anda. Jika Anda mencoba memuatnya terlalu lama setelah memulai penampung, Anda akan mendapatkan kesalahan 502. Jika itu terjadi, tunggu beberapa menit lagi dan coba lagi.

Jika semuanya baik-baik saja, maka Anda akan melihat halaman berikut di browser Anda.

Langkah 8 - Konfigurasi Gitlab

Berikan kata sandi untuk Kata Sandi Administrator Gitlab. Anda akan dibawa ke layar login berikutnya. Gunakan akar sebagai nama pengguna dan sandi yang baru saja Anda pilih untuk masuk.

Konfigurasi SMTP

Kami perlu mengaktifkan pengaturan SMTP sebelum kami

Konfigurasi Profil Gitlab

Klik ikon pengguna di sudut kanan atas untuk membuka menu tarik-turun dan pilih setelan.

Anda akan dibawa ke halaman pengaturan Profil Anda. Tambahkan nama dan email Anda di sini. Anda perlu mengonfirmasi alamat email Anda agar dapat diperbarui. Anda juga dapat menambahkan lebih banyak informasi tentang diri Anda di sini jika Anda mau.

Klik Perbarui Setelan Profil setelah selesai.

Ubah Nama Pengguna

Selanjutnya, kita perlu mengubah nama pengguna kita dari root ke sesuatu yang lain karena root adalah nama pengguna yang cukup umum yang dapat ditebak. Klik Akun di bilah sisi kiri.

Ubah pengguna menjadi nama pengguna apa pun yang ingin Anda pertahankan. Klik Perbarui nama pengguna menyelesaikan. Anda juga harus mengaktifkan autentikasi dua faktor di sini untuk keamanan lebih.

Batasi Pendaftaran Publik

Secara default, instalasi Gitlab memungkinkan siapa saja untuk mendaftar. Jika Anda tidak menginginkannya, Anda harus menonaktifkannya. Klik ikon kunci inggris di bilah atas untuk mengakses area Administrasi.

Untuk menyesuaikan setelan, klik Setelan di bilah sisi kiri.

Di sini, gulir ke bawah ke Pembatasan pendaftaran dan klik tombol Luaskan tombol. Hapus centang Pendaftaran diaktifkan kotak dan klik Simpan perubahan setelah selesai.

Anda masih dapat menambahkan pengguna baru melalui antarmuka Admin.

Tambahkan Kunci SSH

Langkah terakhir adalah menambahkan kunci SSH kami. Jika Anda memiliki kunci SSH, Anda dapat melewati perintah berikut. Jika Anda tidak memilikinya, Anda dapat membuatnya menggunakan perintah berikut.

$ ssh-keygen

Perintah ini umum untuk Mac OS, Linux dan Git Bash/WSL di Windows. Terima default dan biarkan bidang frasa sandi kosong.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/gitlab
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in gitlab.
Your public key has been saved in gitlab.pub.
The key fingerprint is:
SHA256:6dNGAPyd8JAkHAikYOW2PsFjGlzBBpwy4XQ9RQgVwK8 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+*OB=*O=..       |
|B+o+o+oo+        |
|oo.+. ...= .     |
|. + ..  .o+      |
| o *.   S .      |
|  =Eo  . o       |
| . o    o o      |
|    .    o       |
|                 |
+----[SHA256]-----+

Anda dapat menampilkan kunci publik Anda melalui perintah berikut

$ cat ~/.ssh/gitlab.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUf64YH7uJimFWVJSy/mgYiLRqBxVB6JJMTxZZ96DwExoINhWVRhQAgMgExBWGpUCpWXhLcNuIM+EfFRtCq+YYyLC+GlHsNdnLgecGgop72p8BEi8UckgCiCSuMrWCMAOFh5NKs2YHpF7bOUjXQRVvGujLuV1UBof7SXQ/za7e3aybNiH3KpA6oWSSmpqnOt8rZT54IjLnVFUSLx7ZxWDVW1bO29mI8NjWwzZGLAtNIkJQEOqVo8nhVkroFHvBTrZnUsmr5oFOWG++LPqED9EUSPTpO8PNnogYT3xsVncBMMAEt0pPE7ATmstQc161SEtqAUa98Qb0RRKqCKcKStOp [email protected]

Kembali ke area Pengaturan Profil Anda dan akses kunci SSH dari bilah sisi.

Rekatkan kunci SSH di kotak yang disediakan dan klik Tambah Kunci untuk melanjutkan.

Sekarang Anda dapat membuat dan berkomitmen ke repositori Anda tanpa harus memberikan kredensial Gitlab Anda.

Langkah 9 - Buat Proyek Pertama Anda

Setiap repositori di Gitlab milik sebuah proyek. Sebuah proyek mencakup repositori, pelacak masalah, permintaan gabungan, wiki, integrasi berkelanjutan dan saluran pengiriman berkelanjutan (CI/CD), dan banyak fitur lainnya.

Untuk membuat repositori pertama Anda, klik Buat proyek .

Anda akan dibawa ke halaman Proyek Baru. Masukkan nama proyek. Anda dapat mengubah siput proyek menjadi sesuatu yang berbeda. Masukkan deskripsi proyek jika Anda suka dan ubah visibilitas proyek sesuai keinginan. Anda dapat Menginisialisasi repositori Anda dengan file README. Setelah selesai, klik Buat proyek .

Anda akan dibawa ke halaman repositori hanya dengan satu file README.md kosong.

Sekarang setelah repositori kita aktif, mari kita coba menambahkan changelog dari baris perintah.

Masukkan perintah berikut di komputer Anda untuk membuat file CHANGELOG dan dorong kembali ke repositori Anda. Pastikan Anda telah menginstal Git di komputer Anda.

Mengkloning repositori. Anda dapat mengkloning menggunakan SSH atau HTTPS.

Kloning menggunakan SSH.

$ git clone [email protected]:user/howtoforge-test.git

atau Klon menggunakan HTTPS.

$ git clone https://gitlab.example.com/user/howtoforge-test.git

Masukkan sisa perintah untuk membuat dan menekan CHANGELOG.

$ cd howtoforge-test
$ touch CHANGELOG  # Or create the file in your editor and enter a project description
$ git add CHANGELOG
$ git commit -m "add Changelog"
$ git push -u origin master

Langkah 10 - Kelola Penampung Gitlab

Untuk melihat semua container yang sedang berjalan, jalankan perintah berikut.

$ docker-ps

Untuk menghentikan penampung Gitlab Anda, jalankan perintah berikut.

$ docker stop gitlab-howtoforge-tutorial

Untuk memulai penampung Anda lagi, gunakan perintah berikut.

$ docker start gitlab-howtoforge-tutorial

Jika Anda ingin menghapus wadah Anda, Anda dapat melakukannya dengan perintah berikut.

$ docker container rm gitlab-howtoforge-tutorial

Langkah 11 - Tingkatkan Gitlab

Jika Anda ingin memutakhirkan Gitlab ke versi terbaru, Anda harus menghentikan dan menghapus penampung yang ada, menarik gambar terbaru, lalu membuat ulang penampung.

$ docker stop gitlab-howtoforge-tutorial
$ docker rm gitlab-howtoforge-tutorial
$ docker pull gitlab/gitlab-ee:latest
$ docker-compose up -d

Dan sebelum Anda bertanya, data Anda akan aman meskipun Anda melepas wadahnya.

Ini menyimpulkan tutorial kami tentang pengaturan Gitlab di server Ubuntu 18.04 menggunakan Docker. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Ubuntu
  1. Cara Menginstal Docker di Ubuntu 16.04

  2. Cara Menginstal Server RabbitMQ di Ubuntu 18.04 &16.04 LTS

  3. Cara Menginstal Docker di Ubuntu 20.04 LTS

  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Cara Menginstal Server Gitlab di Ubuntu 18.04 &16.04 LTS

  3. Cara Menginstal Xrdp Server di Ubuntu 20.04 LTS

  1. Cara Menginstal Docker di Ubuntu 20.04

  2. Cara Menginstal Docker di Ubuntu 22.04 / 20.04 LTS

  3. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 18.04 LTS