Cách cài đặt GitLab với Docker trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Gitlab Server là phiên bản mã nguồn mở của kiểm soát phiên bản Gitlab được lưu trữ trên đám mây. Ư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 Cộng đồng miễn phí và phiên bản Doanh nghiệp trả phí. Chúng tôi sẽ cài đặt phiên bản Cộng đồng. 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.

Điều kiện tiên quyế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ứ đều được cập nhật.
Mã:
$ 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.
Mã:
$ sudo ufw status
Bạn sẽ thấy nội dung tương tự như sau.
Mã:
Trạng thái: activeĐến Hành động Từ-- ------ ----OpenSSH ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)
Cho phép các cổng HTTP và HTTPs.
Mã:
$ 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.
Mã:
$ sudo ufw allow http$ sudo ufw allow 587
Kiểm tra lại trạng thái để xác nhận.
Mã:
$ sudo ufw statusTrạng thái: activeĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443 ALLOW Anywhere587 ALLOW AnywhereOpenSSH (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 Dependencies​

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 yêu cầu trong quá trình hướng dẫn của chúng ta.
Mã:
$ 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.

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à bạn nên thay đổi cổng mặc định của hệ thống.

Để thực hiện việc này, hãy mở tệp /etc/ssh/sshd_config để chỉnh sửa.
Mã:
$ 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
Mã:
#Port 22
thành
Mã:
Port 2425
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại dịch vụ SSH.
Mã:
$ sudo systemctl restart sshd
Mở cổng 2425 trong tường lửa.
Mã:
$ sudo ufw allow 2425
Đóng phiên SSH hiện tại của bạn và đăng nhập lại bằng cổng mới.
Mã:
$ ssh username@ -p 2425

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

Thêm khóa GPG chính thức của Docker.
Mã:
$ 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.
Mã:
$ 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.
Mã:
$ sudo apt update
Cài đặt Docker.
Mã:
$ 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ì nhị phân cũ. Do đó, lệnh để chạy plugin đã thay đổi từ docker-compose thành docker compose và điều này được phản ánh ở đây.

Docker chạy với các đặc 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 nhóm người dùng docker.
Mã:
$ sudo usermod -aG docker ${USER}
Biến ${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ý 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.
Mã:
$ su - $(USER)

Bước 5 - Thiết lập Docker Volume​

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

Tạo thư mục Docker volume.
Mã:
$ sudo mkdir /srv/gitlab -p
Tạo thư mục cho tệp Docker compose.
Mã:
$ mkdir ~/gitlab-docker
Chuyển đến thư mục.
Mã:
$ cd ~/gitlab-docker
Tạo tệp biến môi trường và mở tệp đó để chỉnh sửa.
Mã:
$ nano .env
Dán mã sau để xác định $GITLAB_HOME.
Mã:
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 container và cách sử dụng tương ứng của chúng.
Vị trí cục bộVị trí containerCách sử dụng
$GITLAB_HOME/data/var/opt/gitlabĐể lưu trữ dữ liệu ứng dụng.
$GITLAB_HOME/logs/var/log/gitlabĐể lưu trữ nhật ký.
$GITLAB_HOME/config/etc/gitlabĐể lưu trữ cấu hình Gitlab.

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

Đảm bảo 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.
Mã:
$ nano docker-compose.yml
Dán mã sau vào đó.
Mã:
version: '3.6'services: web: image: 'gitlab/gitlab-ee:latest' container_name: 'gitlab-howtoforge' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com' gitlab_rails['smtp_enable'] = đúng 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'] = đúng gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_authentication'] = "đăng nhập" gitlab_rails['gitlab_email_from'] = '[emailprotected]' gitlab_rails['gitlab_email_reply_to'] = '[emailprotected]' # Thêm bất kỳ cấu hình gitlab.rb nào khác tại đây, mỗi cấu hình trên một dòng riêng 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.
  • image đề 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 vùng chứa. Đặt thành always có nghĩa là vùng chứa nếu thoát sẽ tự động được khởi động lại.
  • hostname định nghĩa 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.
  • environment cung cấp biến GITLAB_OMNIBUS_CONFIG cho phép bạn nhập bất kỳ cài đặt cấu hình Gitlab nào.
  • external_url đề cập đến tên miền nơi Gitlab của bạn sẽ được cài đặt. Sử dụng giao thức https đả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 mình, 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 về trình gửi thư SMTPđể tìm hiểu cách cấu hình chúng.
  • cổng cho biết container xuất bản các cổng hoặc một phạm vi 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 hiển thị cho 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à do cổng đó không khả dụng), trước tiên bạn sẽ cung cấp cổng máy chủ rồ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ể yêu cầu 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 trong GITLAB_OMNIBUS_CONFIG ở trên.
  • volume định nghĩa các thư mục có trên máy chủ để lưu trữ dữ liệu liên tục. Theo định nghĩa trong bước 5, $GITLAB_HOME hiện có thể được sử dụng trong tệp compose để gắn các thư mục có liên quan vào vùng chứa.
  • shm_size đề cập đến bộ nhớ dùng chung mà vùng chứa 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ể không đủ cho các số liệu Prometheus mà vùng chứa Gitlab tạo ra. Do đó, bộ nhớ dùng chung tối thiểu là 256MB sẽ đả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.
Mã:
$ 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.
Mã:
$ docker logs gitlab-howtoforge -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 vùng chứa Gitlab bằng cách sử dụng lệnh sau.
Mã:
$ docker ps
Bắt đầu từ Gitlab 14.0, nó sẽ tự động tạo mật khẩu gốc và lưu trữ trong tệp initiall_root_password. Tệp này có thể được tìm thấy trong thư mục /srv/gitlab/config. Chạy lệnh sau để xem mật khẩu gốc.
Mã:
$ sudo cat /srv/gitlab/config/initial_root_password
Bạn sẽ nhận được kết quả tương tự.
Mã:
# CẢNH BÁO: Giá trị này chỉ hợp lệ trong các điều kiện sau# 1. Nếu được cung cấp thủ công (thông qua biến môi trường `GITLAB_ROOT_PASSWORD` hoặc thông qua thiết lập `gitlab_rails['initial_root_password']` trong `gitlab.rb`, giá trị này được cung cấp trước khi cơ sở dữ liệu được gieo hạt lần đầu tiên (thường là lần chạy cấu hình lại đầu tiên).# 2. Mật khẩu chưa được thay đổi thủ công, thông qua UI hoặc qua dòng lệnh.## Nếu mật khẩu hiển thị ở đây không hoạt động, bạn phải đặt lại mật khẩu quản trị viên theo https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Mật khẩu: Hz3t7Etn18wB6VAfBWyDlYbN2VQdMCO0xIIENfDHcFo=# LƯU Ý: Tệp này sẽ tự động bị xóa trong lần chạy cấu hình lại đầu tiên sau 24 giờ.
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ẽ thấy màn hình đăng nhập sau.



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



Như bạn thấy, Gitlab đã tạo một dự án để giám sát phiên bản.

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 không muốn, bạn có thể tắt tính năng này. May mắn thay, cài đặt cho tính năng này đượ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 Đã bật đăng ký để 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 trong 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 điều khiển Quản trị từ đó.



Khi đã vào bảng điều khiển 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 điều khiển Hạn chế đăng ký.


Cấu hình Hồ sơ Gitlab​

Hồ sơ mặc định của bạn khá đơn điệu 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 ta 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 gốc 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 này trong quá trình cài đặt nhưng giờ đây, Gitlab đã biến việc này 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 chi tiết về 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.

Đổ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 thành 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, hãy 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ại. Nhấn nút Cập nhật tên người dùng một 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 bảo mật tài khoản của mình.

Vô hiệu hóa Prometheus Metrics và cải thiện Quyền riêng tư​

Ở bước trước, chúng tôi đã 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. Tính năng này chủ yếu được yêu cầu để lưu trữ dữ liệu liên quan đến số liệu 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 điều khiển quản trị từ thanh menu.

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



Trên trang Số liệu, hãy mở rộng phần Số liệu - Prometheus và bỏ chọn tùy chọn Bật điểm cuối số liệu về tình trạng và hiệu suất. Nhấp vào nút Lưu thay đổi để triển khai thay đổi.



Gitlab cũng thu thập thông tin sử dụng từ mọi lần 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 Ping dịch vụ. 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 một 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 của mình. Đ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.
Mã:
$ 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 các giá trị mặc định và nhập một mật khẩu mạnh. Chúng tôi đang tạo khóa SSH trên Windows Powershell Terminal.
Mã:
Đang tạo cặp khóa rsa công khai/riêng tư.Đang tạo cặp khóa ed25519 công khai/riêng tư.Nhập tệp để lưu khóa (C:\Users\/.ssh/id_ed25519):Nhập lại cùng một mật khẩu:Thông tin nhận dạng của bạn đã được lưu trong C:\Users\/.ssh/id_ed25519.Khóa công khai của bạn đã được lưu trong C:\Users\/.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.
Mã:
$ eval $(ssh-agent -s)
Thêm khóa.
Mã:
$ ssh-add C:\Users\/.ssh/id_ed25519
Trên Linux và macOS, lệnh sẽ thay đổi thành
Mã:
$ ssh-add ~/.ssh/id_ed25519
Bạn sẽ được nhắc nhập mật khẩu. Nhập nó 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 tệp ~/.ssh/config. Trên Windows, đây sẽ là thư mục C:\Users\<username>\.ssh. Dán mã sau vào cuối tệp.
Mã:
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 tất cả các 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 tại đây.
Mã:
$ cat ~/.ssh/id_ed25519.pub
Bạn sẽ nhận được kết quả tương tự.
Mã:
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 mình 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.
Mã:
$ ssh -T [emailprotected]
Bạn sẽ nhận được kết quả tương tự. Trước 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 một 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.
Mã:
Không thể thiết lập tính xác thực của máy chủ 'gitlab.example.com (192.0.2.0)'.Dấu vân tay khóa ECDSA là SHA256:g5mOqAY2A3lhXW0flnLGdSU7RrDnbRFKVJCquAhLXqk.Bạn có chắc chắn muốn tiếp tục kết nối không (có/không/[dấu vân tay])? cóCảnh báo: Đã thêm vĩnh viễn 'gitlab.example.com' (ECDSA) vào danh sách các máy chủ đã biết.Cảnh báo: khóa máy chủ ECDSA cho 'gitlab.example.com' khác với khóa cho địa chỉ IP '192.0.2.0'Bạn có chắc chắn muốn tiếp tục kết nối (có/không) không? cóKhóa vi phạm cho IP trong C:\Users\navjo/.ssh/known_hosts:7Chào mừng đến với 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 dự án​

Mỗi kho lưu trữ trong Gitlab đều 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 của bạ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 dự án mới.



Chọn tùy chọn Tạo dự án trống để 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 URL dự án. Đặt slug 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 tệp README.



Sau khi 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 tệp README.md 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.
Mã:
$ git clone [emailprotected]:user/howtoforge-test.git
Nhập phần còn lại của các lệnh để tạo và đẩy tệp CHANGELOG.
Mã:
$ cd howtoforge-test$ touch CHANGELOG # Hoặc tạo tệp trong trình soạn thảo của bạn và nhập mô tả dự án$ 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 lệnh đẩy.

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


Bước 9 - Quản lý vùng chứa Gitlab​

Chúng ta hãy 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 vùng chứa, hãy đưa ra lệnh sau từ bên trong thư mục Docker compose.
Mã:
$ docker compose down
Để bắt đầu lại, hãy đưa ra lệnh sau.
Mã:
$ docker compose up -d
Nếu bạn muốn thay đổi bất kỳ cài đặt nào hoặc thêm cài đặt 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 vùng chứa để 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.
Mã:
$ docker compose down --remove-orphans$ docker compose up -d
Để khởi động lại container, hãy phát hành 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.
Mã:
$ docker compose restart
Truy cập shell container.
Mã:
$ docker exec -it  bash

Bước 10 - Sao lưu Gitlab​

Có thể sao lưu Gitlab thông qua một lệnh duy nhất.
Mã:
$ docker exec -t gitlab-howtoforge gitlab-backup create
Tệp sao lưu được lưu trong thư mục /srv/gitlab/data/backups. Bản sao lưu này không chứa tệp cấu hình gitlab-secrets.json của bạn. Tệp này nằm trong thư mục /srv/gitlab/config. 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 compose 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 compose.

Bạn có thể tạo một 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ó 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 quy trình được kết nối với cơ sở dữ liệu.
Mã:
$ docker exec -it  gitlab-ctl stop puma$ docker exec -it  gitlab-ctl stop sidekiq
Thay thế <tên của container> bằng tên của container 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.
Mã:
$ docker exec -it  gitlab-ctl status
Sao chép tệp sao lưu vào thư mục /srv/gitlab/data/backups. Tạo thư mục nếu nó không tồn tại.

Chạy lệnh khôi phục. Bạn cần xóa phần _gitlab_backup.tar của tên tệp khỏi lệnh.
Mã:
$ docker exec -it  gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
Sao chép tệp gitlab-secrets.json và ghi đè lên bản sao hiện có trong thư mục /srv/gitlab/config của máy chủ mới. Ngoài ra, hãy 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 container mới hơn.

Khởi động lại container Gitlab. Chúng ta không thể sử dụng lệnh docker compose restart 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 compose mà chúng ta cần.
Mã:
$ docker compose down --remove-orphans$ docker compose up -d
Kiểm tra Gitlab.
Mã:
$ docker exec -it  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ư được hiển thị trong lần dừng trước.

Tiếp theo, chuyển đến thư mục soạn thảo Docker của Gitlab.
Mã:
$ cd ~/gitlab-docker
Tiếp theo, dừng và xóa container hiện có. Tuy nhiên, dữ liệu của bạn sẽ được giữ lại.
Mã:
$ docker compose down --remove-orphans
Kéo phiên bản mới nhất của ảnh docker Gitlab.
Mã:
$ docker compose pull
Khởi động lại các container.
Mã:
$ docker compose up -d
Quy trình này phù hợp để nâng cấp giữa các phiên bản Gitlab phụ nhưng khi bạn nâng cấp lên phiên bản chính, 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.

Kết luận​

Như vậy là kết thúc 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 dự án đó 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.
 
Back
Bên trên