CI/CD DevOps

Hướng dẫn cài đặt Gitlab với Docker trên Ubuntu

Gitlab Server là phiên bản mã nguồn mở của cloud-hosted Gitlab. Ưu điểm của việc tự lưu trữ kho lưu trữ của bạn so với lưu trữ đám mây là toàn quyền kiểm soát mã của bạn.

Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt Gitlab Server bằng Docker trên máy chủ Ubuntu 22.04. Gitlab Server cung cấp hai phiên bản – phiên bản Community miễn phí và phiên bản Enterprise trả phí. Chúng tôi sẽ cài đặt phiên bản Community. Nếu bạn muốn có nhiều tính năng hơn, bạn có thể dễ dàng nâng cấp lên phiên bản Enterprise.Ezoic

Điều kiện tiên quyết

  • Một máy chủ chạy Ubuntu 22.04.
  • Người dùng không phải root có quyền sudo.
  • Tường lửa đơn giản (UFW) đã được bật và đang chạy.
  • Tên miền đủ điều kiện (FQDN) trỏ đến máy chủ như  gitlab.example.com.
  • Mọi thứ đã được cập nhật.$ sudo apt update && sudo apt upgrade

Bước 1 – Cấu hình Tường lửa

Bước đầu tiên trước khi cài đặt bất kỳ gói nào là cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.

Kiểm tra trạng thái của tường lửa.

$ sudo ufw status

Bạn sẽ thấy nội dung tương tự như sau.

Status: active

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

Cho phép các cổng HTTP và HTTPs.

$ sudo ufw allow http

$ sudo ufw allow https

Mở cổng 587 để nhận thư qua SMTP. Bạn có thể đang sử dụng một cổng khác với trình gửi thư SMTP của mình.

$ sudo ufw allow http

$ sudo ufw allow 587

Kiểm tra lại trạng thái để xác nhận.

$ sudo ufw status

Status: active

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

Bước 2 – Cài đặt các phụ thuộc

Trước khi cài đặt Gitlab, chúng ta cần cài đặt một số gói nhất định sẽ cần thiết trong quá trình hướng dẫn.

$ sudo apt install ca-certificates curl openssh-server apt-transport-https gnupg lsb-release -y

Một số gói này có thể đã được cài đặt sẵn trên hệ thống của bạn.Ezoic

Bước 3 – Thay đổi cổng SSH của hệ thống

Gitlab sử dụng cổng SSH mặc định sẽ xung đột với cổng SSH của hệ thống. Để có kết quả tốt nhất, tốt hơn là thay đổi cổng mặc định của hệ thống.

Để thực hiện việc này, hãy mở  /etc/ssh/sshd_config tệp để chỉnh sửa.

$ sudo nano /etc/ssh/sshd_config

Tìm dòng sau, xóa dấu thăng (#) ở phía trước và thay đổi giá trị từ 22 thành bất kỳ giá trị nào bạn chọn. Đối với hướng dẫn của chúng tôi, chúng tôi đã chọn 2425 bằng cách thay đổi

#Port 22

ĐẾN

 Port 2425

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.Ezoic

Khởi động lại dịch vụ SSH.

$ sudo systemctl restart sshd

Mở cổng 2425 trong tường lửa.

$ sudo ufw allow 2425

Đóng phiên SSH hiện tại và đăng nhập lại bằng cổng mới.

$ ssh username@<serverIP> -p 2425

Bước 4 – Cài đặt Docker và Docker Compose

Thêm khóa GPG chính thức của Docker.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

Chạy lệnh sau để thêm kho lưu trữ Docker.

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Cập nhật hệ thống để bao gồm kho lưu trữ của Docker.

$ sudo apt update

Cài đặt Docker.

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Hướng dẫn này sẽ sử dụng plugin Docker Compose v2 thay vì binary legacy cũ hơn. Do đó, lệnh để chạy nó đã thay đổi từ  docker-compose thành  docker compose và điều này được phản ánh ở đây.

Docker chạy với quyền nâng cao nên bạn sẽ cần sử dụng  sudo thường xuyên để chạy lệnh. Tùy chọn tốt hơn là thêm tài khoản người dùng Linux của bạn vào  docker nhóm người dùng.

$ sudo usermod -aG docker ${USER}

Biến này  ${USER} chọn tài khoản hệ thống hiện đang đăng nhập. Nếu bạn không đăng nhập bằng người dùng mà bạn muốn cấp quyền, hãy thay thế  ${USER} bằng tên người dùng.

Để đăng ký làm thành viên nhóm mới, hãy đăng xuất khỏi máy chủ và đăng nhập lại hoặc sử dụng lệnh sau. Bạn sẽ được nhắc nhập mật khẩu của người dùng.

$ su - $(USER)

Bước 5 – Thiết lập Docker Volumes

Trước khi tiến hành cài đặt, chúng ta cần thiết lập vị trí để truy cập dữ liệu và cấu hình Gitlab thông qua ổ đĩa Docker.

Tạo thư mục ổ đĩa Docker.

$ sudo mkdir /srv/gitlab -p

Tạo một thư mục cho tệp Docker compose.

$ mkdir ~/gitlab-docker

Chuyển sang thư mục.

$ cd ~/gitlab-docker

Tạo một tệp biến môi trường và mở nó để chỉnh sửa.

$ nano .env

Dán đoạn mã sau để định nghĩa  $GITLAB_HOME biến.

GITLAB_HOME=/srv/gitlab

Bộ chứa Gitlab sử dụng các ổ đĩa gắn trên máy chủ để lưu trữ dữ liệu liên tục. Bảng sau đây hiển thị bản đồ vị trí cục bộ của các thư mục Gitlab đến vị trí của các bộ chứa và cách sử dụng tương ứng của chúng.

Vị trí địa phươngVị trí ContainerCách sử dụng
$GITLAB_HOME/dữ liệu/var/opt/gitlabĐể lưu trữ dữ liệu ứng dụng.
$GITLAB_HOME/nhật ký/var/log/gitlabĐể lưu trữ nhật ký.
$GITLAB_HOME/cấu hình/etc/gitlabĐể lưu trữ cấu hình Gitlab.

Bước 6 – Cài đặt Gitlab bằng Docker Compose

Đảm bảo rằng bạn đang ở trong thư mục Docker compose của Gitlab.

Tạo và mở tệp cấu hình Docker compose để chỉnh sửa.

$ nano docker-compose.yml

Dán đoạn mã sau vào đó.

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ee:latest'
    container_name: 'gitlab-congdonglinux'
    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'] = "email-smtp.us-west-2.amazonaws.com"
        gitlab_rails['smtp_user_name'] = "SESUsername"
        gitlab_rails['smtp_password'] = "SESKey"
        gitlab_rails['smtp_domain'] = "example.com"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['gitlab_email_from'] = '[email protected]'
        gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
      - '587:587'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'

Chúng ta hãy xem xét tất cả các tùy chọn được xác định trong tệp.

  • hình ảnh  đề cập đến vị trí của hình ảnh Docker của Gitlab trên Dockerhub.
  • container_name  cho phép bạn áp dụng nhãn cho vùng chứa docker của mình để sử dụng khi tham chiếu đến vùng chứa trong mạng Docker.
  • restart  chỉ định chính sách khởi động lại cho container. Đặt thành  luôn  có nghĩa là container nếu thoát sẽ tự động được khởi động lại.
  • hostname  xác định tên máy chủ nội bộ của vùng chứa hoặc trong trường hợp này là URL nơi Gitlab của bạn sẽ được cài đặt.
  • môi trường  cung cấp biến  GITLAB_OMNIBUS_CONFIG  cho phép bạn nhập bất kỳ thiết lập cấu hình Gitlab nào.
  • external_url  là tên miền nơi Gitlab của bạn sẽ được cài đặt. Sử dụng  https giao thức đảm bảo cài đặt tự động chứng chỉ SSL Let’s Encrypt.
  • Chi tiết SMTP  – chúng tôi đã bao gồm chi tiết SMTP để phiên bản Gitlab có thể gửi email và thông báo quan trọng. Đối với hướng dẫn của chúng tôi, chúng tôi đang sử dụng dịch vụ SES của Amazon. Tuy nhiên, bạn có thể sử dụng bất kỳ dịch vụ nào bạn chọn. Kiểm tra  tài liệu Gitlab dành cho trình gửi thư SMTP  để tìm hiểu cách cấu hình chúng.
  • ports  bảo container xuất bản các cổng hoặc một loạt các cổng tới máy chủ. Vì Gitlab cần các cổng 22(SSH), 80(HTTP), 443(HTTPS) và 587(SMTP), nên chúng đã được đưa ra hệ thống. Nếu bạn muốn Gitlab sử dụng một cổng không chuẩn trên máy chủ của mình (có thể là vì nó không khả dụng), trước tiên bạn sẽ cung cấp cổng máy chủ rồi mới đến cổng container. Ví dụ, vì máy chủ của bạn đã sử dụng cổng SSH(22), bạn có thể bảo Gitlab sử dụng SSH qua một cổng khác, chẳng hạn như 3333. Sau đó, bạn sẽ thay đổi  22:22  trong tệp trên thành  3333:22 . Bạn cũng sẽ cần thêm dòng  gitlab_rails['gitlab_shell_ssh_port'] = 3333 dưới  GITLAB_OMNIBUS_CONFIG  ở trên.
  • volume  xác định các thư mục có trên máy chủ để lưu trữ dữ liệu liên tục. Như đã xác định ở bước 5,  $GITLAB_HOME giờ đây có thể được sử dụng trong tệp compose để gắn các thư mục có liên quan vào container.
  • shm_size  đề cập đến bộ nhớ dùng chung được container sử dụng. Theo mặc định, Docker phân bổ 64MB cho thư mục bộ nhớ dùng chung (được gắn tại  /dev/shm). Điều này có thể chứng minh là không đủ cho các số liệu Prometheus mà container Gitlab tạo ra. Do đó, bộ nhớ dùng chung tối thiểu là 256MB đảm bảo docker chạy trơn tru. Bạn có thể tăng giá trị của nó tùy thuộc vào RAM mà hệ thống của bạn có. Ngoài ra, bạn có thể tắt số liệu Prometheus khỏi khu vực quản trị sau khi cài đặt. Chúng ta sẽ khám phá điều này trong bước tiếp theo.

Khởi động vùng chứa Gitlab Docker.

$ docker compose up -d

Quá trình này sẽ mất vài phút để hoàn tất. Bạn có thể theo dõi tiến trình bằng cách sử dụng nhật ký Docker.

$ docker logs gitlab-congdonglinux -f

Nhấn  Ctrl + C  để thoát khỏi việc theo dõi nhật ký.

Bạn có thể kiểm tra trạng thái của container Gitlab bằng lệnh sau.

$ docker ps

Bắt đầu từ Gitlab 14.0, nó tự động tạo mật khẩu gốc và lưu trữ trong  initiall_root_password tệp. Tệp này có thể được tìm thấy trong  /srv/gitlab/config thư mục. Chạy lệnh sau để xem mật khẩu gốc.

$ sudo cat /srv/gitlab/config/initial_root_password

Bạn sẽ nhận được kết quả tương tự.

# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: Hz3t7Etn18wB6VAfBWyDlYbN2VQdMCO0xIIENfDHcFo=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

Sao chép mật khẩu và lưu lại để sử dụng sau. Bây giờ mọi thứ đã được thiết lập, chúng ta có thể tiến hành cấu hình.

Bước 7 – Cấu hình Gitlab

Truy cập Gitlab

Mở URL  https://gitlab.example.com trong trình duyệt của bạn và bạn sẽ nhận được màn hình đăng nhập sau.

Nhập  root tên người dùng và mật khẩu bạn đã lấy ở bước trước để đăng nhập vào bảng điều khiển Gitlab của bạn. Khi đăng nhập, bạn sẽ được đưa đến màn hình bảng điều khiển sau.

Như bạn có thể thấy, Gitlab đã tạo một dự án để theo dõi phiên bản này.

Hạn chế đăng ký công khai

Theo mặc định, bất kỳ ai cũng có thể tạo tài khoản và có quyền truy cập. Nếu bạn không muốn, bạn có thể tắt nó đi. May mắn thay, cài đặt cho nó được hiển thị dưới dạng màn hình bật lên trên bảng điều khiển. Nhấp vào  nút Tắt  để hạn chế đăng ký công khai trên phiên bản Gitlab của bạn. Làm như vậy sẽ chuyển hướng bạn đến trang cài đặt sau.

Bỏ chọn tùy chọn  Đăng ký được bật  để hạn chế chúng. Nhấn nút  Lưu thay đổi  để áp dụng cài đặt.

Trong trường hợp bạn không thấy cửa sổ bật lên trên bảng điều khiển, bạn có thể truy cập trang cài đặt bằng cách nhấp vào  nút Menu  và truy cập bảng quản trị từ đó.

Khi đã vào bảng quản trị, hãy di chuột qua  tùy chọn Cài đặt  ở thanh bên trái và nhấp vào  menu phụ Chung  . Từ đó, bạn có thể đến  bảng Hạn chế đăng ký  .

Cấu hình hồ sơ Gitlab

Hồ sơ mặc định của bạn khá nhạt nhẽo và không có gì để hiển thị. Để thay đổi điều đó, hãy nhấp vào biểu tượng người dùng ở góc trên bên trái để mở menu thả xuống và chọn  tùy chọn Chỉnh sửa hồ sơ  .

Bạn sẽ được đưa đến trang Cài đặt hồ sơ, tại đó bạn có thể thêm tên, email và các thông tin khác về bản thân. Nhấp vào  Cập nhật cài đặt hồ sơ  khi bạn hoàn tất. Đừng quay lại trang chủ vì chúng tôi còn một số thứ khác cần cấu hình ở đây.

Thay đổi mật khẩu gốc

Đây là một trong những bước quan trọng nhất. Bạn nên thay đổi mật khẩu root mặc định ngay lập tức. Với các phiên bản trước, Gitlab yêu cầu bạn phải thay đổi mật khẩu như một phần của quá trình cài đặt nhưng giờ đây nó đã trở thành tùy chọn. Để thay đổi mật khẩu, hãy nhấp vào  menu Mật khẩu  từ thanh bên trái.

Nhập thông tin mật khẩu của bạn và nhấp vào  Lưu mật khẩu  để thực hiện thay đổi. Bạn sẽ được đăng xuất khỏi phiên bản của mình và sẽ phải đăng nhập lại.

Thay đổi tên người dùng

Bạn có thể thay đổi tên người dùng Gitlab mặc định của mình từ  root bất kỳ tên nào bạn chọn. Để thực hiện việc đó, hãy nhấp vào  menu Tài khoản  từ thanh bên trái.

Khi vào trang, nhập tên người dùng mới của bạn và nhấp vào  nút Cập nhật tên người dùng  để thực hiện thay đổi. Bạn sẽ được nhắc xác nhận lần nữa. Nhấn  nút Cập nhật tên người dùng  lần nữa để xác nhận thay đổi.

Bạn cũng nên bật xác thực hai yếu tố tại đây để cải thiện tính bảo mật tài khoản của mình.

Tắt Prometheus Metrics và cải thiện Quyền riêng tư

Ở bước trước, chúng ta đã thảo luận về việc tăng kích thước bộ nhớ dùng chung cho droplet và giữ ở mức tối thiểu là 256 MB. Chủ yếu là để lưu trữ dữ liệu liên quan đến số liệu của Prometheus trên đĩa. Nếu bạn không sử dụng tính năng này, bạn nên tắt tính năng này. Bạn chỉ có thể thực hiện sau khi cài đặt. Để tắt tính năng này, hãy mở  Bảng quản trị  từ thanh menu.

Khi vào bảng Quản trị, hãy mở  tùy chọn menu Cài đặt >> Số liệu và hồ sơ  .

Trên trang Metrics, hãy mở rộng  phần Metrics – Prometheus  và bỏ chọn  tùy chọn Enable health and performance metrics endpoint  . Nhấp vào  nút Save changes  để thực hiện thay đổi.

Gitlab cũng thu thập thông tin sử dụng từ mọi cài đặt. Nếu bạn coi trọng quyền riêng tư và không muốn điều đó xảy ra, hãy mở rộng  tùy chọn Thống kê sử dụng  trên cùng một trang và Bỏ chọn  tùy chọn Bật dịch vụ Ping  . Nhấp vào  nút Lưu thay đổi  để thực hiện thay đổi.

Bước 8 – Tạo Dự án đầu tiên của bạn

Chúng ta hãy thử tạo dự án đầu tiên và đẩy cam kết.

Thêm Khóa SSH của bạn

Trước khi tiến hành thêm, chúng ta nên thêm khóa SSH. Điều này cho phép chúng ta tương tác với cài đặt của mình mà không cần sử dụng bất kỳ mật khẩu nào. Nếu bạn có khóa SSH, bạn có thể bỏ qua lệnh sau. Nếu bạn không có, bạn có thể tạo một khóa bằng lệnh sau.

$ ssh-keygen -t ed25519 -C "gitlab.example.com"

Lệnh này phổ biến trên macOS, Linux và Git Bash/WSL trên Windows. Chấp nhận mặc định và nhập mật khẩu mạnh. Chúng tôi đang tạo khóa SSH trên Windows Powershell Terminal.

Generating public/private rsa key pair.
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\<username>/.ssh/id_ed25519):
Enter same passphrase again:
Your identification has been saved in C:\Users\<username>/.ssh/id_ed25519.
Your public key has been saved in C:\Users\<username>/.ssh/id_ed25519.pub.
SHA256:CI3Ja1LSTN+j4LQnDYkAoP+DvZB8SWrD26zDyUBRbUY gitlab.example.com
+--[ED25519 256]--+
|* ..+E           |
|. + / o o        |
| o = B o .       |
|. o B = S        |
|.o X +           |
| +X.*            |
| .=B o           |
+----[SHA256]-----+

Thêm danh tính khóa riêng vào tác nhân xác thực SSH. Đảm bảo  dịch vụ Tác nhân xác thực OpenSSH  đang chạy nếu bạn đang sử dụng Windows. Nếu bạn đang sử dụng Linux hoặc macOS, hãy chạy lệnh sau.

$ eval $(ssh-agent -s)

Thêm khóa.

$ ssh-add C:\Users\<username>/.ssh/id_ed25519

Trên Linux và macOS, lệnh sẽ thay đổi thành

$ ssh-add ~/.ssh/id_ed25519

Bạn sẽ được nhắc nhập mật khẩu. Nhập mật khẩu và khóa sẽ được thêm vào.

Tiếp theo, chúng ta cần lưu các thiết lập này vào  ~/.ssh/config tệp. Trên Windows, đây sẽ là thư  C:\Users\<username>\.ssh mục. Dán mã sau vào cuối tệp.

Host gitlab.example.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_ed25519

Trong tệp này, tên đường dẫn sẽ giữ nguyên trên mọi hệ điều hành. Lưu tệp.

Tiếp theo, chúng ta cần sao chép khóa công khai vào tài khoản Gitlab của mình. Bạn có thể hiển thị khóa công khai của mình thông qua lệnh sau. Tên đường dẫn sẽ lại hoạt động trên tất cả các hệ điều hành ở đây.

$ cat ~/.ssh/id_ed25519.pub

Bạn sẽ nhận được kết quả tương tự.

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAml2KPhmGkdMWv7jksLKO13u3g1zI9CumKDQSpv7lYh gitlab.example.com

Mở cài đặt hồ sơ của bạn trong Gitlab và chọn  menu Khóa SSH  từ thanh bên trái.

Dán khóa SSH vào hộp được cung cấp và nhấp vào  Thêm khóa  để tiếp tục.

Tiếp theo, chúng ta cần kiểm tra xem kết nối SSH của chúng ta có hoạt động thành công không. Chạy lệnh sau trên thiết bị đầu cuối PC của bạn.

Bạn sẽ nhận được kết quả tương tự. Đầu tiên, bạn sẽ được yêu cầu thêm khóa SSH vào danh sách máy chủ đã biết của hệ thống. Nhập  yes  để tiếp tục. Bạn cũng sẽ nhận được cảnh báo rằng khóa SSH cho phiên bản Gitlab và IP máy chủ của bạn không giống nhau và sẽ lại được hỏi xem bạn có muốn tiếp tục không. Nhập  yes  lần nữa. Cuối cùng, bạn sẽ nhận được thông báo thành công xác nhận kết nối của bạn với phiên bản Gitlab.

The authenticity of host 'gitlab.example.com (192.0.2.0)' can't be established.
ECDSA key fingerprint is SHA256:g5mOqAY2A3lhXW0flnLGdSU7RrDnbRFKVJCquAhLXqk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitlab.example.com' (ECDSA) to the list of known hosts.
Warning: the ECDSA host key for 'gitlab.example.com' differs from the key for the IP address '192.0.2.0'
Are you sure you want to continue connecting (yes/no)? yes
Offending key for IP in C:\Users\navjo/.ssh/known_hosts:7
Welcome to GitLab, @navjot!

Bây giờ, chúng ta có thể chuyển sang tạo kho lưu trữ đầu tiên và thực hiện một số cam kết.

Tạo một dự án

Mỗi kho lưu trữ trong Gitlab thuộc về một dự án. Một dự án bao gồm một kho lưu trữ, trình theo dõi sự cố, yêu cầu hợp nhất, wiki, đường ống tích hợp liên tục và phân phối liên tục (CI/CD) và nhiều tính năng khác.

Để tạo kho lưu trữ đầu tiên, hãy nhấp vào  nút Dự án mới  trên trang chủ của bạn.

Bạn sẽ được đưa đến trang Dự án mới, tại đó bạn sẽ được cung cấp nhiều tùy chọn về cách tạo một dự án mới.

Chọn  tùy chọn Create blank project  để tiếp tục. Ở trang tiếp theo, nhập tên dự án. Chọn tên người dùng của bạn từ menu thả xuống trong  tùy chọn Project URL  . Đặt slug cho dự án của bạn. Nhập mô tả về dự án nếu bạn thích và thay đổi khả năng hiển thị của dự án theo nhu cầu của bạn. Bạn có thể Khởi tạo kho lưu trữ của mình bằng một  README tệp.

Khi bạn hoàn tất, hãy nhấp vào  Tạo dự án . Bạn sẽ được đưa đến trang kho lưu trữ của mình chỉ với một  README.md tệp trống.

Bây giờ kho lưu trữ của chúng ta đã hoạt động, hãy thử thêm nhật ký thay đổi từ dòng lệnh. Nhập các lệnh sau trên máy tính của bạn để tạo tệp  CHANGELOG và đẩy tệp đó trở lại kho lưu trữ của bạn. Đảm bảo rằng bạn đã cài đặt Git trên máy tính của mình.

Bước đầu tiên là sao chép kho lưu trữ. Bạn có thể sao chép bằng SSH hoặc HTTPS. Sao chép bằng SSH. Bạn sẽ được yêu cầu nhập mật khẩu.

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

Nhập phần lệnh còn lại để tạo và đẩy  CHANGELOG tệp.

$ cd congdonglinux-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 main

Bạn sẽ được nhắc nhập mật khẩu một lần nữa trong khi thực hiện lệnh đẩy.

Quay lại trang dự án Gitlab của bạn và bạn sẽ thấy  CHANGELOG tệp trong đó. Xin chúc mừng! Bạn đã tạo thành công dự án đầu tiên và đã cam kết tệp vào đó.

Bước 9 – Quản lý Gitlab Container

Hãy cùng xem cách bạn có thể quản lý vùng chứa Gitlab bằng các lệnh đơn giản.

Nếu tại bất kỳ thời điểm nào bạn muốn dừng container, hãy đưa ra lệnh sau từ bên trong thư mục Docker compose.

$ docker compose down

Để khởi động lại, hãy nhập lệnh sau.

$ docker compose up -d

Nếu bạn muốn thay đổi bất kỳ thiết lập nào hoặc thêm thiết lập vào phiên bản Gitlab của mình, bạn có thể thực hiện bằng cách chỉnh sửa tệp  docker-compose.yml trong  biến GITLAB_OMNIBUS_CONFIG  . Sau khi thực hiện thay đổi, bạn sẽ cần khởi động lại container để triển khai thay đổi. Phát hành các lệnh sau để cập nhật container với cấu hình mới.

$ docker compose down --remove-orphans
$ docker compose up -d

Để khởi động lại container, hãy đưa ra lệnh sau. Tuy nhiên, lệnh khởi động lại sau không nhận bất kỳ thay đổi nào được thực hiện đối với tệp Docker compose.

$ docker compose restart

Truy cập vào vỏ container.

$ docker exec -it <container name> bash

Bước 10 – Sao lưu Gitlab

Việc sao lưu Gitlab có thể được thực hiện thông qua một lệnh duy nhất.

$ docker exec -t gitlab-congdonglinux gitlab-backup create

Tệp sao lưu được lưu trong  /srv/gitlab/data/backups thư mục. Bản sao lưu này không chứa  gitlab-secrets.json tệp cấu hình của bạn. Tệp này nằm trong  /srv/gitlab/config thư mục. Do đó, bạn cần sao lưu tệp này riêng. Có một tệp cấu hình khác,  gitlab.rb, chứa tất cả các thiết lập cho phiên bản Gitlab. Nhưng trong trường hợp của chúng tôi, chúng tôi đã sử dụng  biến GITLAB_OMNIBUS_CONFIG  trong tệp soạn thảo của mình, do đó tệp này không được Gitlab sử dụng. Để thực hiện bất kỳ thay đổi nào đối với Gitlab, bạn sẽ cần phải định nghĩa chúng thông qua biến. Do đó, bạn cũng sẽ cần phải sao lưu tệp soạn thảo.

Bạn có thể tạo mục cron để sao lưu cài đặt Gitlab của mình thường xuyên.

Bước 11 – Khôi phục Gitlab

Để khôi phục Gitlab, bạn phải có một bản cài đặt Gitlab đang hoạt động trên một hệ thống khác. Bạn cũng sẽ cần sao chép thư mục cấu hình của mình và ghi đè lên cấu hình cài đặt hiện có.

Khôi phục Gitlab yêu cầu chạy một số lệnh. Trước tiên, bạn cần dừng các tiến trình được kết nối với cơ sở dữ liệu.

$ docker exec -it <name of container> gitlab-ctl stop puma
$ docker exec -it <name of container> gitlab-ctl stop sidekiq

Thay thế  <name of container> bằng tên của vùng chứa trên máy chủ mới của bạn.

Xác minh rằng các quy trình đã ngừng hoạt động trước khi tiếp tục.

$ docker exec -it <name of container> gitlab-ctl status

Sao chép tệp sao lưu vào  /srv/gitlab/data/backups thư mục. Tạo thư mục nếu thư mục chưa tồn tại.

Chạy lệnh khôi phục. Bạn cần xóa phần  _gitlab_backup.tar tên tệp khỏi lệnh.

$ docker exec -it <name of container> gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce

Sao chép  gitlab-secrets.json tệp và ghi đè lên bản sao hiện có trong thư  /srv/gitlab/config mục của máy chủ mới. Ngoài ra, sao chép tất cả các thiết lập Gitlab từ tệp compose đã sao lưu vào tệp trên vùng chứa mới hơn.

Khởi động lại vùng chứa Gitlab. Chúng ta không thể sử dụng  docker compose restart lệnh trực tiếp vì nó sẽ không chọn bất kỳ thay đổi nào được thực hiện đối với tệp soạn thảo mà chúng ta cần.

$ docker compose down --remove-orphans
$ docker compose up -d

Kiểm tra Gitlab.

$ docker exec -it <name of container> gitlab-rake gitlab:check SANITIZE=true

Bước 12 – Nâng cấp Gitlab

Để nâng cấp Gitlab, bước đầu tiên là sao lưu như hướng dẫn ở mục trước.

Tiếp theo, chuyển sang thư mục Docker compose của Gitlab.

$ cd ~/gitlab-docker

Tiếp theo, dừng lại và xóa vùng chứa hiện tại. Tuy nhiên, dữ liệu của bạn sẽ được giữ lại.

$ docker compose down --remove-orphans

Tải phiên bản mới nhất của hình ảnh docker Gitlab.

$ docker compose pull

Bắt đầu lại các thùng chứa.

$ docker compose up -d

Quá trình này phù hợp để nâng cấp giữa các phiên bản Gitlab nhỏ nhưng khi bạn nâng cấp lên phiên bản lớn, bạn sẽ cần thực hiện các bước bổ sung và thực hiện các biện pháp phòng ngừa. Bạn nên tham khảo  tài liệu của Gitlab  trước khi thực hiện nâng cấp.

Phần kết luận

Như vậy là kết thúc bài hướng dẫn của chúng tôi, trong đó bạn đã học cách cài đặt Gitlab bằng Docker trên máy chủ Ubuntu 22.04. Bạn cũng đã tạo dự án đầu tiên của mình và cam kết một tệp vào đó từ PC của mình. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.

Đọc thêm:

Tags

Add Comment

Click here to post a comment