GitLab là một công cụ vòng đời DevOps nguồn mở được sử dụng để lưu trữ và quản lý kho lưu trữ Git. Công cụ này được viết bằng Ruby và cung cấp nhiều tính năng bao gồm wiki, quản lý sự cố, đánh giá mã, giám sát, tích hợp và triển khai liên tục. Bạn có thể lưu trữ GitLab trong cơ sở hạ tầng của riêng mình và triển khai kho lưu trữ nội bộ cho nhóm phát triển của mình. GitLab có ba phiên bản: Community Edition (CE), Enterprise Edition (EE) và phiên bản do GitLab lưu trữ.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt GitLab CE trên máy chủ Ubuntu 20.04.
Sau khi hệ thống của bạn được cập nhật, hãy cài đặt các gói cần thiết khác bằng lệnh sau:
Sau khi tất cả các gói cần thiết được cài đặt, bạn có thể tiến hành bước tiếp theo.
Đầu tiên, hãy tải xuống và thêm khóa GPG của GitLab bằng lệnh sau:
Tiếp theo, hãy thêm kho lưu trữ GitLab trong APT bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, hãy cập nhật kho lưu trữ và cài đặt GitLab CE bằng lệnh sau:
Sau khi GitLab được cài đặt thành công, bạn sẽ nhận được kết quả sau:
Tại thời điểm này, GitLab đã được cài đặt trong hệ thống của bạn. Bây giờ bạn có thể tiến hành bước tiếp theo.
Thay đổi dòng sau bằng tên máy chủ hoặc tên miền hợp lệ của bạn:
Lưu và đóng tệp. Sau đó, cấu hình lại GitLab bằng cách chạy lệnh sau:
Sau khi cấu hình thành công GitLab, bạn sẽ nhận được kết quả sau:
Bây giờ bạn có thể kiểm tra trạng thái của GitLab bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Trước tiên, hãy cài đặt công cụ máy khách Let's Encrypt bằng lệnh sau:
Sau khi cài đặt, hãy chỉnh sửa tệp /etc/gitlab/gitlab.rb và bật Let's Encrypt.
Thay đổi các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, cấu hình lại GitLab bằng lệnh sau:
Sau khi hoàn tất. Bạn có thể tiến hành bước tiếp theo.
Bây giờ, hãy đặt mật khẩu mới và nhấp vào nút Đổi mật khẩu của bạn. Bạn sẽ thấy màn hình sau:
Bây giờ, hãy cung cấp tên người dùng và mật khẩu gốc của bạn, sau đó nhấp vào nút Đăng nhập . Bạn sẽ thấy màn hình sau:
Trên bảng điều khiển GitLab, nhấp vào biểu tượng khu vực quản trị. Bạn sẽ thấy màn hình sau:
Bây giờ, hãy nhấp vào Cài đặt ở ngăn bên trái. Bạn sẽ thấy màn hình sau:
Tiếp theo, cuộn xuống phần Hạn chế đăng ký và nhấp vào nút Mở rộng. Bỏ chọn hộp Đã bật đăng ký và nhấp vào Lưu thay đổi khi hoàn tất.
Bây giờ, hãy đăng xuất khỏi GitLab và truy cập lại GitLab. Bạn sẽ thấy màn hình sau với chức năng đăng ký công khai bị vô hiệu hóa:
Trên bảng điều khiển GitLab, nhấp vào nút dự án. Bạn sẽ thấy màn hình sau:
Bây giờ, hãy nhấp vào nút Tạo một dự án. Bạn sẽ thấy màn hình sau:
Cung cấp tên dự án, URL, mô tả, mức độ hiển thị và nhấp vào nút Tạo dự án. Bạn sẽ thấy màn hình sau:
Tiếp theo, hãy đến hệ thống từ xa và cấu hình Git bằng lệnh sau:
Tiếp theo, hãy sao chép kho lưu trữ của dự án của bạn bằng lệnh sau:
Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu GitLab của mình như hiển thị bên dưới:
Tiếp theo, hãy thay đổi thư mục thành dự án của bạn và tạo tệp README.md:
Tiếp theo, hãy thêm tệp README.md vào kho lưu trữ của bạn và cam kết thay đổi bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, đẩy tệp của bạn lên kho lưu trữ từ xa bằng lệnh sau:
Cung cấp tên người dùng và mật khẩu GitLab của bạn để đẩy tệp lên kho lưu trữ từ xa:
Bây giờ, hãy mở bảng điều khiển GitLab của bạn và nhấp vào nút project. Bạn sẽ thấy tệp README.md của mình trong màn hình sau:
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt GitLab CE trên máy chủ Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Một tên miền hợp lệ được trỏ đến VPS của bạn.
- Một mật khẩu gốc được thiết lập trên máy chủ của bạn.
Bắt đầu
Trước tiên, bạn sẽ cần cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Mã:
apt-get install apt-transport-https gnupg2 curl -y
Cài đặt GitLab CE
Theo mặc định, GitLab không có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ chính thức của GitLab vào hệ thống của mình.Đầu tiên, hãy tải xuống và thêm khóa GPG của GitLab bằng lệnh sau:
Mã:
curl -sL https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | apt-key add -
Mã:
nano /etc/apt/sources.list.d/gitlab.list
Mã:
deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic maindeb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main
Mã:
apt-get update -y
apt-get install gitlab-ce -y
Mã:
Có vẻ như GitLab vẫn chưa được định cấu hình; bỏ qua tập lệnh nâng cấp. *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,************,,,,,,,, ,,,,,,,,,,*********,,,,,,,,, .,,,,,,,,,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,,,,, .,,,,,,,,,,,,,,******, ... _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / __ `/ __ \ / /_/ / /_/ /___/ /_/ / _/ / _/ / _____/ _ _/_/ _ _/_/ _ _,_/_.___/Cảm ơn bạn đã cài đặt GitLab!GitLab không thể phát hiện tên máy chủ hợp lệ cho phiên bản của bạn.Vui lòng định cấu hình URL cho phiên bản GitLab của bạn bằng cách đặt cấu hình `external_url`trong tệp /etc/gitlab/gitlab.rb.Sau đó, bạn có thể khởi động phiên bản GitLab của mình bằng cách chạy lệnh sau: sudo gitlab-ctl reconfigureĐể biết danh sách đầy đủ các tùy chọn cấu hình, vui lòng xem tệp readme Omnibus GitLabhttps://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Cấu hình GitLab
Tiếp theo, bạn sẽ cần định nghĩa URL của GitLab. Bạn có thể định nghĩa nó bên trong tệp /etc/gitlab/gitlab.rb.
Mã:
nano /etc/gitlab/gitlab.rb
Mã:
external_url 'http://gitlab.linuxbuz.com'
Mã:
gitlab-ctl reconfigure
Mã:
Công thức: gitlab::puma * runit_service[puma] action restart (up to date) * runit_service[puma] action restart (up to date)Công thức: gitlab::sidekiq-cluster * runit_service[sidekiq] action restart (up to date)Công thức: gitlab::gitlab-rails * execute[clear the gitlab-rails cache] action run - execute /opt/gitlab/bin/gitlab-rake cache:clearCông thức: nginx::enable * runit_service[nginx] action restart (up to date)Công thức: monitoring::grafana * runit_service[grafana] action restart (up to date)Các trình xử lý đang chạy:Đang chạy handlers hoàn tấtChef Client đã hoàn tất, 12/767 tài nguyên đã được cập nhật trong 01 phút 20 giâygitlab Đã cấu hình lại!
Mã:
gitlab-ctl status
Mã:
down: alertmanager: 1 giây, bình thường là lên, muốn lên; chạy: log: (pid 12973) 142 giâychạy: gitaly: (pid 14216) 17 giây; chạy: log: (pid 12352) 286 giâychạy: gitlab-exporter: (pid 14165) 19 giây; chạy: log: (pid 12885) 161 giâychạy: gitlab-workhorse: (pid 14152) 19 giây; chạy: log: (pid 12767) 185 giâychạy: grafana: (pid 14252) 15 giây; chạy: log: (pid 13855) 54 giâychạy: logrotate: (pid 12818) 174 giây; chạy: log: (pid 12826) 173 giâychạy: nginx: (pid 12798) 180 giây; chạy: log: (pid 12807) 179 giâychạy: node-exporter: (pid 14160) 19 giây; chạy: log: (pid 12867) 167 giâychạy: postgres-exporter: (pid 14246) 15 giây; chạy: log: (pid 13082) 130 giâychạy: postgresql: (pid 12515) 280 giây; chạy: log: (pid 12532) 277 giâychạy: prometheus: (pid 14183) 18 giây; chạy: log: (pid 12931) 149 giâychạy: puma: (pid 12718) 199 giây; run: log: (pid 12727) 196 giâyrun: redis: (pid 12309) 293 giây; run: log: (pid 12318) 292 giâyrun: redis-exporter: (pid 14176) 18 giây; run: log: (pid 12908) 154 giâyrun: sidekiq: (pid 12737) 193 giây; run: log: (pid 12749) 190 giây
Bảo mật GitLab bằng Let's Encrypt
Tại thời điểm này, GitLab đã được cài đặt và định cấu hình. Tiếp theo, bạn nên bảo mật phiên bản GitLab của mình bằng Let's Encrypt SSL.Trước tiên, hãy cài đặt công cụ máy khách Let's Encrypt bằng lệnh sau:
Mã:
apt-get install letsencrypt -y
Mã:
nano /etc/gitlab/gitlab.rb
Mã:
external_url 'https://gitlab.linuxbuz.com'letsencrypt['enable'] = trueletsencrypt['contact_emails'] = ['[emailprotected]']letsencrypt['auto_renew'] = true
Mã:
gitlab-ctl reconfigure
Truy cập Giao diện GitLab
Lúc này, GitLab được bảo mật bằng Let's Encrypt SSL miễn phí. Bây giờ, hãy mở trình duyệt web của bạn và nhập URL https://gitlab.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang sau:Bây giờ, hãy đặt mật khẩu mới và nhấp vào nút Đổi mật khẩu của bạn. Bạn sẽ thấy màn hình sau:
Bây giờ, hãy cung cấp tên người dùng và mật khẩu gốc của bạn, sau đó nhấp vào nút Đăng nhập . Bạn sẽ thấy màn hình sau:
Tắt Đăng ký công khai
Theo mặc định, GitLab cho phép bất kỳ ai đăng ký tài khoản bằng URL GitLab. Cài đặt này hữu ích nếu bạn muốn lưu trữ một dự án công khai. Tuy nhiên, nếu bạn muốn sử dụng GitLab cho dự án nội bộ của mình, bạn nên tắt Đăng ký công khai.Trên bảng điều khiển GitLab, nhấp vào biểu tượng khu vực quản trị. Bạn sẽ thấy màn hình sau:
Bây giờ, hãy nhấp vào Cài đặt ở ngăn bên trái. Bạn sẽ thấy màn hình sau:
Tiếp theo, cuộn xuống phần Hạn chế đăng ký và nhấp vào nút Mở rộng. Bỏ chọn hộp Đã bật đăng ký và nhấp vào Lưu thay đổi khi hoàn tất.
Bây giờ, hãy đăng xuất khỏi GitLab và truy cập lại GitLab. Bạn sẽ thấy màn hình sau với chức năng đăng ký công khai bị vô hiệu hóa:
Xác minh chức năng GitLab
Tại thời điểm này, GitLab đã được cài đặt và định cấu hình. Tiếp theo, tạo một dự án mới từ bảng điều khiển GitLab.Trên bảng điều khiển GitLab, nhấp vào nút dự án. Bạn sẽ thấy màn hình sau:
Bây giờ, hãy nhấp vào nút Tạo một dự án. Bạn sẽ thấy màn hình sau:
Cung cấp tên dự án, URL, mô tả, mức độ hiển thị và nhấp vào nút Tạo dự án. Bạn sẽ thấy màn hình sau:
Tiếp theo, hãy đến hệ thống từ xa và cấu hình Git bằng lệnh sau:
Mã:
git config --global user.name "Hitesh Jethva"
git config --global user.email "[emailprotected]"
Mã:
git clone https://gitlab.linuxbuz.com/root/project1.git
Mã:
Đang sao chép vào 'project1'...Tên người dùng cho 'https://gitlab.linuxbuz.com': rootMật khẩu cho 'https://[emailprotected]':cảnh báo: Có vẻ như bạn đã sao chép một kho lưu trữ trống.Đang kiểm tra kết nối... xong.
Mã:
cd project1
echo "Đây là tệp đầu tiên của tôi" > README.md
Mã:
git add README.md
git commit -m "add README"
Mã:
[master (root-commit) ae4d108] thêm README 1 tệp đã thay đổi, 1 lần chèn (+) tạo chế độ 100644 README.md
Mã:
git push -u origin master
Mã:
Tên người dùng cho 'https://gitlab.linuxbuz.com': rootMật khẩu cho 'https://[emailprotected]':Đang đếm đối tượng: 3, xong.Đang ghi đối tượng: 100% (3/3), 237 byte | 0 byte/giây, xong.Tổng cộng 3 (delta 0), đã sử dụng lại 0 (delta 0)Đến https://gitlab.linuxbuz.com/root/project1.git * [nhánh mới] master -> masterBranch master được thiết lập để theo dõi nhánh master từ xa từ origin.