GitLab Server là phiên bản mã nguồn mở của bộ điều khiển phiên bản GitLab được lưu trữ trên đám mây dùng để lưu trữ kho lưu trữ Git. Ư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. Nó có tất cả các tính năng bạn có thể tìm thấy trên dịch vụ đám mây, khiến nó trở thành một công cụ hữu ích cho nhóm phát triển của bạn. Nó cũng đi kèm với dịch vụ trò chuyện Mattermost cho phép người dùng của bạn trò chuyện với nhau và chia sẻ các đánh giá mã.
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 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. Bạn có thể nâng cấp lên phiên bản Enterprise nếu muốn có nhiều tính năng hơn.
[*]
Một số gói mà hệ thống của bạn cần.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Nó sẽ hiển thị đầu ra sau.
Mở các cổng HTTP và HTTPS trong tường lửa.
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy một đầu ra.
Thực hiện tất cả các thay đổi vĩnh viễn và tải lại tường lửa để cho phép các thay đổi.
Phát hành lệnh sau để cài đặt các phần phụ thuộc.
GitLab yêu cầu giải pháp email hoạt động để gửi email thông báo. Có hai tùy chọn cho cùng một tùy chọn. Một trong số đó là cài đặt Postfix. Và tùy chọn thứ hai là sử dụng dịch vụ SMTP bên ngoài. Nếu bạn muốn sử dụng tùy chọn Postfix, hãy cài đặt bằng lệnh bên dưới.
Trong quá trình cài đặt, bạn có thể được yêu cầu nhập loại trang web. Chọn Internet Site làm tùy chọn để tiếp tục, sau đó thêm FQDN của máy chủ cho
Bạn sẽ cần nhiều hơn nữa để cấu hình Postfix làm máy chủ SMTP, hướng dẫn nằm ngoài phạm vi của bài viết này. GitLab có một bài viết về cách cấu hình Postfix mà bạn có thể tham khảo.
Bỏ qua cảnh báo về gói
GitLab đi kèm với rất nhiều gói giúp việc quản lý dễ dàng hơn nhiều. Ví dụ, GitLab đi kèm với máy chủ web Nginx và hỗ trợ tạo chứng chỉ SSL Let's Encrypt.
Nếu bạn chỉ định một URL bên ngoài cho trang web GitLab của mình trong quá trình cài đặt, trang web đó sẽ tự động được định cấu hình và chứng chỉ SSL sẽ được tạo và áp dụng. Bạn cũng có thể chỉ định mật khẩu quản trị viên trong quá trình cài đặt. Nếu không, GitLab sẽ tạo một mật khẩu tạm thời sẽ tự động bị xóa sau một ngày.
Chúng tôi sẽ chỉ định cả URL bên ngoài và mật khẩu quản trị viên. Chạy lệnh sau để cài đặt GitLab.
Chọn mật khẩu mạnh cho cài đặt của bạn. Ở đây chúng tôi đang cài đặt phiên bản GitLab Enterprise (
Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả tương tự.
Bạn cũng có thể cài đặt một phiên bản GitLab cụ thể. Trước tiên, hãy kiểm tra danh sách các phiên bản GitLab khả dụng.
Bạn sẽ nhận được kết quả tương tự.
Chúng ta hãy cài đặt
Kiểm tra trạng thái của GitLab và các dịch vụ liên quan.
Bạn sẽ thấy thông báo sau đầu ra.
Bạn có thể dừng và khởi động GitLab bằng các lệnh sau.
GitLab sẽ hoạt động.
Bạn cũng có thể dừng và khởi động một dịch vụ riêng lẻ bằng các lệnh sau.
Bạn có thể truy cập cài đặt GitLab của mình bằng cách truy cập
Xác định vị trí phần
Điều này kích hoạt Let's Encrypt, thiết lập email để nhận thông báo hết hạn SSL và thiết lập chứng chỉ được gia hạn tự động vào mỗi ngày thứ 7 hàng tháng và 12:30 theo giờ máy chủ.
Đặt tùy chọn sau trong tệp.
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cấu hình lại GitLab bằng các thiết lập mới.
Quá trình này có thể mất một thời gian để hoàn tất. Sau khi hoàn tất, bạn có thể truy cập cài đặt GitLab của mình bằng cách truy cập
Mở tệp cấu hình GitLab để chỉnh sửa.
Chúng ta sẽ sử dụng Amazon SES cho hướng dẫn này. Tìm phần SMTP trong tệp và đặt các giá trị như hiển thị bên dưới.
Bạn có thể bật nhóm kết nối SMTP bằng cách đặt tùy chọn sau.
Điều này cho phép các nhân viên Sidekiq sử dụng lại các kết nối SMTP cho nhiều công việc.
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bạn cũng có thể mã hóa thông tin xác thực SMTP. Chạy lệnh sau.
Nhập tên người dùng và mật khẩu SMTP vào tệp như hiển thị.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xóa các biến
Sau khi hoàn tất cài đặt SMTP, hãy cấu hình lại GitLab Cài đặt.
Mở tệp cấu hình GitLab để chỉnh sửa.
Tạo
Tạo tệp khối trong nó.
Chỉnh sửa và thêm cài đặt của bạn.
Sau khi hoàn tất, hãy quay lại thiết bị đầu cuối và chạy lệnh sau để tạo
Chạy lệnh sau để tạo symlink.
Sau khi hoàn tất cấu hình Nginx, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cấu hình lại Cài đặt GitLab.
Mở tệp cấu hình GitLab.
Đặt URL bên ngoài cho đăng ký container GitLab của bạn.
Đặt HTTP thành Chuyển hướng HTTPS bằng cách thêm dòng sau bên dưới dòng trên.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cấu hình lại Cài đặt GitLab.
Mở cổng 2425 trong tường lửa.
Xác thực bằng lệnh sau.
Bạn sẽ có thể đăng nhập vào sổ đăng ký vùng chứa từ Docker bằng thông tin đăng nhập GitLab của mình bằng cách sử dụng lệnh sau lệnh.
Bạn có thể sử dụng một URL khác như
Mở tệp cấu hình GitLab.
Đặt các biến sau như được hiển thị.
Cấu hình Nginx cho các trang GitLab trong phần
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cấu hình lại GitLab Cài đặt.
Nếu bạn muốn lưu trữ tên miền dựa trên DNS Wildcard, hãy tham khảo tài liệu GitLab Pages.
GitLab Mattermost bị tắt theo mặc định. Để bật, hãy mở tệp cấu hình GitLab.
Thêm URL bên ngoài Mattermost. GitLab sẽ tự động tạo SSL cho URL bằng Let's Encrypt.
Đảm bảo cài đặt cấu hình HTTP sang HTTPS cho Mattermost được đặt thành true bằng cách thêm dòng sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cấu hình lại Cài đặt GitLab.
Bạn sẽ có thể truy cập Mattermost qua
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22445%22%3E%3C/svg%3E
Nếu bạn đã cài đặt ứng dụng Mattermost, hãy chọn nút Xem trong ứng dụng trên máy tính để bàn hoặc chọn tùy chọn nút Xem trong trình duyệt. Đảm bảo kiểm tra tùy chọn Ghi nhớ tùy chọn của tôi để bạn không bị hỏi lại. Chúng ta sẽ quay lại cấu hình Mattermost ở bước tiếp theo.
Tìm phần
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22653%22%3E%3C/svg%3E
Nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22496%22%3E%3C/svg%3E
Như bạn thấy, GitLab đã tạo một dự án để giám sát phiên bản.
Khi người dùng truy cập trang web GitLab, họ sẽ nhận được trang
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22712%22%20height=%22517%22%3E%3C/svg%3E
Để xóa trang, hãy chạy lệnh sau.
Nếu bạn muốn biến các dự án thành chỉ đọc, hãy chạy lệnh sau để mở Rails console.
Nó trông giống như sau.
Đặt tất cả các dự án thành chỉ đọc bằng cách sử dụng lệnh sau lệnh.
Thoát khỏi bảng điều khiển bằng cách nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22174%22%3E%3C/svg%3E
Bỏ chọn tùy chọn Cho phép đăng ký để hạn chế họ. 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 Khu vực quản trị ở menu dưới cùng bên trái.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22253%22%20height=%22450%22%3E%3C/svg%3E
Khi đã vào trong 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ể truy cập bảng Hạn chế đăng ký.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22447%22%20height=%22390%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22249%22%20height=%22253%22%3E%3C/svg%3E
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ứ cần cấu hình ở đây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22745%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22595%22%3E%3C/svg%3E
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ẽ bị đăng xuất khỏi phiên bản của mình và phải đăng nhập lại.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22576%22%3E%3C/svg%3E
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ần nữa. 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.
Khi đã vào trong Bảng điều khiển quản trị, hãy mở Cài đặt >> Tùy chọn menu Số liệu và hồ sơ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22471%22%20height=%22325%22%3E%3C/svg%3E
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 để thực hiện thay đổi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22385%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22715%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút GitLab để đăng ký. Thao tác này sẽ tích hợp tài khoản Mattermost của bạn với tài khoản GitLab của bạn. Bạn sẽ được đưa đến trang đăng nhập GitLab, tại đó bạn nhập thông tin đăng nhập và nhấp vào nút Đăng nhập để tiếp tục. Bạn sẽ được đưa đến trang Cho phép hiển thị bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22444%22%3E%3C/svg%3E
Nhấp vào nút Cho phép để tiếp tục. Bạn sẽ được đưa trở lại ứng dụng Mattermost yêu cầu nhập tên tổ chức của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22437%22%3E%3C/svg%3E
Nhập tên tổ chức của bạn và nhấp vào trang Tiếp tục. Tiếp theo, bạn sẽ được hỏi về những công cụ bạn sử dụng trong công việc của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22599%22%3E%3C/svg%3E
Nhấp vào biểu tượng GitLab rồi nhấp vào nút Tiếp tục để tiếp tục. Bạn luôn có thể thêm các công cụ khác sau. Tiếp theo, bạn sẽ được yêu cầu mời các thành viên trong nhóm của mình và sẽ được cung cấp một liên kết mời.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22474%22%3E%3C/svg%3E
Lưu liên kết để xem sau và nhấp vào Hoàn tất thiết lập để hoàn tất cài đặt Mattermost. Bạn sẽ được đưa đến bảng điều khiển Mattermost, nơi bạn có thể bắt đầu sử dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22474%22%3E%3C/svg%3E
GitLab chỉ được phép sử dụng để đăng nhập vào phiên bản Mattermost. Phiên bản Mattermost đi kèm với một plugin GitLab được cài đặt sẵn có thể gửi các cam kết và thông báo từ kho lưu trữ của bạn đến phiên bản Mattermost của bạn. Chúng ta cũng cần cấu hình plugin đó.
Truy cập trang Chỉnh sửa hồ sơ của GitLab và chọn menu Ứng dụng từ thanh bên trái. Bạn sẽ thấy ứng dụng đăng nhập Mattermost hiện tại của mình đã được đăng ký.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22447%22%3E%3C/svg%3E
Nhấp vào nút Thêm ứng dụng mới để tạo một ứng dụng khác cho plugin GitLab.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22571%22%3E%3C/svg%3E
Đưa ra tên cho dự án. Đặt
Bạn sẽ được đưa đến trang sau. Sao chép và lưu ID ứng dụng và Bí mật ứng dụng mà bạn sẽ cần sau này. Bí mật ứng dụng sẽ chỉ được hiển thị một lần nên hãy đảm bảo điều đó.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22337%22%3E%3C/svg%3E
Nhấp vào nút Tiếp tục để hoàn tất.
Mở trang Mattermost của bạn và nhấp vào nút trên cùng bên trái để hiển thị menu bật lên sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22337%22%20height=%22387%22%3E%3C/svg%3E
Nhấp vào nút App Marketplace để mở cửa sổ bật lên sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22495%22%3E%3C/svg%3E
Nhấp vào nút Cấu hình đối với plugin GitLab để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22561%22%3E%3C/svg%3E
Nhập URL GitLab, ID máy khách OAuth và Bí mật máy khách OAuth đã tạo trước đó, rồi nhấp vào nút Lưu để hoàn tất.
Bây giờ, mỗi người dùng cần kết nối tài khoản GitLab của họ trong Mattermost. Truy cập kênh GitLab trên Mattermost và nhập lệnh sau để bắt đầu
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22326%22%3E%3C/svg%3E
Nhấp vào nút Liên kết và bạn sẽ được chuyển đến một trang mới yêu cầu cấp quyền kết nối. Nhấp vào Kết nối và bạn sẽ được đưa trở lại trang Mattermost và bạn sẽ thấy thông báo sau xác nhận kết nối.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22616%22%3E%3C/svg%3E
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 khẩu mạnh. Chúng tôi đang tạo khóa SSH trên Windows Powershell Terminal.
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.
Thêm khóa.
Trên Linux và macOS, lệnh sẽ thay đổi để
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 tệp
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.
Bạn sẽ nhận được kết quả tương tự.
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22253%22%20height=%22678%22%3E%3C/svg%3E
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. Bạn sẽ được cung cấp ngày hết hạn mặc định. Bạn có thể thay đổi tùy theo nhu cầu của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22484%22%3E%3C/svg%3E
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.
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. Tiếp theo, 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 của bạn.
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 kho lưu trữ đầu tiên của bạn, hãy nhấp vào phần Tạo dự án trên trang chủ của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22573%22%3E%3C/svg%3E
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E
Chọn tùy chọn Create blank project để tiếp tục. Ở trang tiếp theo, nhập Project name. Chọn tên người dùng của bạn từ menu thả xuống trong tùy chọn Project URL trong hộp Pick a group or namespace. Đặt Project slug của bạn nếu bạn muốn thay đổi slug mặc định. Thay đổi Visibility Level 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
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22512%22%3E%3C/svg%3E
Sau khi hoàn tất, hãy nhấp vào Create project để hoàn tất. Bạn sẽ được đưa đến trang kho lưu trữ của mình với chỉ một tệp
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22659%22%3E%3C/svg%3E
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
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.
Bạn sẽ thấy kết quả tương tự.
Nhập phần còn lại của lệnh để tạo và đẩy
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
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22348%22%3E%3C/svg%3E
Như vậy là kết thúc dự án GitLab đầu tiên của chúng ta.
Bản sao lưu không bao gồm dữ liệu Mattermost, dữ liệu Redis, tác vụ Sidekiq và lưu trữ Đối tượng.
Chạy lệnh sau để thực hiện sao lưu.
Tùy chọn
Bạn sẽ thấy kết quả tương tự.
Tệp sao lưu của bạn được lưu trữ trong
Như đã đề cập trong đầu ra, cấu hình và bí mật GitLab của bạn không được bao gồm trong bản sao lưu. Sao chép thủ công các tệp này đến một vị trí an toàn để khôi phục.
Sao chép chúng.
Bạn có thể cấu hình cron để sao lưu hàng ngày.
Mở crontab cho
Thêm dòng sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tùy chọn
Bạn có thể kiểm tra tài liệu sao lưu GitLab chính thức để biết thêm tùy chọn và cách đảm bảo bản sao lưu của bạn được tự động sao chép sang dịch vụ tương thích với S3.
Sao chép tệp sao lưu vào
Thiết lập quyền chính xác.
Dừng các tiến trình được kết nối với cơ sở dữ liệu. Bạn có thể để phần còn lại của GitLab chạy như bình thường.
Xác minh các quy trình.
Khôi phục bản sao lưu. Đảm bảo những gì bạn đang làm vì nó sẽ ghi đè lên cơ sở dữ liệu của bạn. Bạn không cần phải cung cấp tên tệp đầy đủ trong lệnh. Chỉ phần trước
Thao tác này sẽ khôi phục cài đặt GitLab của bạn thành công.
Những nâng cấp nhỏ có thể thực hiện an toàn cách.
Nhập
Trang web sẽ không khả dụng trong khi quá trình nâng cấp đang được thực hiện hoặc bạn sẽ nhận được thông báo
Sau khi hoàn tất quá trình nâng cấp, hãy thực hiện kiểm tra sau khi nâng cấp để đảm bảo mọi thứ hoạt động bình thường.
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 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. Bạn có thể nâng cấp lên phiên bản Enterprise nếu muốn có nhiều tính năng hơn.
Điều kiện tiên quyết
-
Một máy chủ chạy Rocky Linux 9 với ít nhất 4GB RAM và 4 lõi CPU để hỗ trợ tối đa 500 người dùng.
-
Một người dùng không phải root có quyền sudo.
-
Một tên miền được định cấu hình để trỏ đến máy chủ,gitlab.example.com
. Tùy thuộc vào yêu cầu của bạn, chúng tôi cũng sẽ sử dụngmattermost.example.com
vàpages.example.com
.
-
Mọi thứ đều đã cập nhật.
Mã:
$ sudo dnf update
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo dnf install -y wget nano unzip yum-utils policycoreutils-python-utils
Bước 1 - Cấu hình Tường lửa
Trước khi cài đặt bất kỳ gói nào, bước đầu tiên là cấu hình tường lửa để mở cổng cho HTTP và HTTPS. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --state
running
Mã:
$ sudo firewall-cmd --zone=public --list-all
Mã:
public target: default icmp-block-inversion: no interfaces: enp1s0 sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Mã:
$ sudo firewall-cmd --zone=public --add-service=http
$ sudo firewall-cmd --zone=public --add-service=https
Mã:
$ sudo firewall-cmd --zone=public --list-all
Mã:
public target: default icmp-block-inversion: no interfaces: enp1s0 sources: services: cockpit dhcpv6-client http https ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Mã:
$ sudo firewall-cmd --runtime-to-permanent
$ sudo firewall-cmd --reload
Bước 2 - Cài đặt các phụ thuộc
Trước khi cài đặt GitLab, điều quan trọng là phải cài đặt các gói mà GitLab yêu cầu để hoạt động bình thường. Tất cả các gói này đều có trong kho lưu trữ Rocky Linux.Phát hành lệnh sau để cài đặt các phần phụ thuộc.
Mã:
$ sudo dnf install -y curl policycoreutils openssh-server perl
Mã:
$ sudo dnf install postfix
mail name
và nhấn Enter để tiếp tục. Nếu bạn thấy bất kỳ màn hình bổ sung nào, hãy tiếp tục nhấn phím Enter để chọn các tùy chọn mặc định.Bạn sẽ cần nhiều hơn nữa để cấu hình Postfix làm máy chủ SMTP, hướng dẫn nằm ngoài phạm vi của bài viết này. GitLab có một bài viết về cách cấu hình Postfix mà bạn có thể tham khảo.
Bước 3 - Cài đặt GitLab
Tải xuống và chạy trình cài đặt kho lưu trữ GitLab kịch bản.
Mã:
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
pygpgme
bị thiếu vì nó không khả dụng trên Rocky Linux 9.GitLab đi kèm với rất nhiều gói giúp việc quản lý dễ dàng hơn nhiều. Ví dụ, GitLab đi kèm với máy chủ web Nginx và hỗ trợ tạo chứng chỉ SSL Let's Encrypt.
Nếu bạn chỉ định một URL bên ngoài cho trang web GitLab của mình trong quá trình cài đặt, trang web đó sẽ tự động được định cấu hình và chứng chỉ SSL sẽ được tạo và áp dụng. Bạn cũng có thể chỉ định mật khẩu quản trị viên trong quá trình cài đặt. Nếu không, GitLab sẽ tạo một mật khẩu tạm thời sẽ tự động bị xóa sau một ngày.
Chúng tôi sẽ chỉ định cả URL bên ngoài và mật khẩu quản trị viên. Chạy lệnh sau để cài đặt GitLab.
Mã:
$ sudo GITLAB_ROOT_PASSWORD="[B]" EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ee
gitlab-ee
). Nếu bạn không mua và đăng ký giấy phép, thì nó sẽ hoạt động tốt như phiên bản Community Edition miễn phí. Nhưng nếu bạn cài đặt phiên bản Community (gitlab-ce
), thì bạn sẽ cần cài đặt lại phiên bản Enterprise để nâng cấp. Do đó, chúng tôi khuyên bạn nên sử dụng phiên bản Enterprise ngay cả khi bạn không muốn nâng cấp.Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả tương tự.
Mã:
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
gitlab Reconfigured! *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,***********,,,,,,,,, ,,,,,,,,,,,*********,,,,,,,,,,, .,,,,,,,,,,,*******,,,,,,,,,,,, ,,,,,,,,,*****,,,,,,,,,. ,,,,,,,****,,,,,, .,,,***,,,, ,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __ \ / /_/ / / /_/ /___/ /_/ / /_/ / \____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab should be available at https://gitlab.example.com
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=16-9 Verifying : gitlab-ee-16.9.1-ee.0.el9.x86_64 1/1
Installed: gitlab-ee-16.9.1-ee.0.el9.x86_64
Complete!
Mã:
$ sudo dnf --showduplicates list gitlab-ee*
Mã:
Available Packages
gitlab-ee.x86_64 16.0.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.7-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.0.8-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.1.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.7-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.8-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.2.9-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.3.7-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.4.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.4.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.4.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.4.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.4.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.4.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.7-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.5.8-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.6.7-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.7.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.7.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.7.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.7.4-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.7.5-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.7.6-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.8.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.8.1-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.8.2-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.8.3-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.9.0-ee.0.el9 gitlab_gitlab-ee
gitlab-ee.x86_64 16.9.1-ee.0.el9 gitlab_gitlab-ee
16.7.0
phiên bản.
Mã:
$ sudo GITLAB_ROOT_PASSWORD="" EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ee-16.7.0-ee.0.el9
Mã:
$ sudo gitlab-ctl status
Mã:
run: alertmanager: (pid 6551) 1013s; run: log: (pid 6306) 1093s
run: crond: (pid 6507) 1018s; run: log: (pid 5663) 1251s
run: gitaly: (pid 6479) 1020s; run: log: (pid 5297) 1419s
run: gitlab-exporter: (pid 6522) 1016s; run: log: (pid 6183) 1118s
run: gitlab-kas: (pid 5553) 1400s; run: log: (pid 5566) 1399s
run: gitlab-workhorse: (pid 6455) 1021s; run: log: (pid 5766) 1233s
run: logrotate: (pid 5181) 1434s; run: log: (pid 5189) 1433s
run: nginx: (pid 6470) 1021s; run: log: (pid 5806) 1227s
run: node-exporter: (pid 6515) 1017s; run: log: (pid 6150) 1124s
run: postgres-exporter: (pid 6563) 1013s; run: log: (pid 6351) 1087s
run: postgresql: (pid 5360) 1411s; run: log: (pid 5385) 1408s
run: prometheus: (pid 6532) 1016s; run: log: (pid 6268) 1100s
run: puma: (pid 5666) 1247s; run: log: (pid 5673) 1246s
run: redis: (pid 5227) 1428s; run: log: (pid 5236) 1427s
run: redis-exporter: (pid 6524) 1016s; run: log: (pid 6233) 1110s
run: registry: (pid 6480) 1020s; run: log: (pid 5956) 1165s
run: sidekiq: (pid 5692) 1241s; run: log: (pid 5700) 1240s
Mã:
$ sudo gitlab-ctl stop
$ sudo gitlab-ctl start
Bạn cũng có thể dừng và khởi động một dịch vụ riêng lẻ bằng các lệnh sau.
Mã:
$ sudo gitlab-ctl stop nginx
$ sudo gitlab-ctl start nginx
$ sudo gitlab-ctl restart nginx
https://gitlab.example.com
trong trình duyệt. Chúng tôi sẽ quay lại cấu hình GitLab ở các bước sau.Bước 4 - Cấu hình SSL
GitLab lưu trữ cấu hình của mình trong tệp/etc/gitlab/gitlab.rb
. Mở nó để chỉnh sửa.
Mã:
$ sudo nano /etc/gitlab/gitlab.rb
Let's Encrypt Integration
và thay đổi các giá trị như hiển thị bên dưới.
Mã:
letsencrypt['contact_emails'] = ['[emailprotected]'] # This should be an array of email addresses to add as contacts
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
Kích hoạt Chỉ thị DHParam
Tạo nhóm Diffie-Hellman[/b] chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/gitlab/ssl/dhparams.pem 4096
Mã:
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem" # Path to dhparams.pem, eg. /etc/gitlab/ssl/dhparams.pem
Vô hiệu hóa Bảo mật truyền tải nghiêm ngặt HTTP (HSTS)
Bật HTTPS sẽ tự động bật dịch vụ HSTS. Đôi khi nó có thể gây ra vấn đề khi bạn không cần đến nó sau này. Để vô hiệu hóa HSTS, hãy định cấu hình các biến sau.
Mã:
nginx['hsts_include_subdomains'] = false
Cấu hình lại GitLab bằng các thiết lập mới.
Mã:
$ sudo gitlab-ctl reconfigure
https://gitlab.example.com
trong trình duyệt. Bạn sẽ được chào đón bằng trang đăng nhập sau.Bước 5 - Cấu hình SMTP
GitLab cần gửi email thông báo và để làm được điều đó, chúng ta cần bật cài đặt SMTP cho nó. Nếu bạn đang sử dụng Postfix, bạn có thể bỏ qua bước này. Nếu không, chúng ta hãy tiếp tục.Mở tệp cấu hình GitLab để chỉnh sửa.
Mã:
$ sudo nano /etc/gitlab/gitlab.rb
Mã:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "email-smtp.region-1.amazonaws.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "IAMmailerKey"
gitlab_rails['smtp_password'] = "IAMmailerSecret"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
# If your SMTP server does not like the default 'From: gitlab@localhost' you
# can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = '[emailprotected]'
gitlab_rails['gitlab_email_display_name'] = 'Howtoforge GitLab'
gitlab_rails['gitlab_email_reply_to'] = '[emailprotected]'
Mã:
gitlab_rails['smtp_pool'] = true
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bạn cũng có thể mã hóa thông tin xác thực SMTP. Chạy lệnh sau.
Mã:
sudo gitlab-rake gitlab:smtp:secret:edit EDITOR=nano
Mã:
user_name: 'smtp user'
password: 'smtp password'
Xóa các biến
gitlab_rails['smtp_user_name'], and gitlab_rails['smtp_password']
từ /etc/gitlab/gitlab.rb
.Sau khi hoàn tất cài đặt SMTP, hãy cấu hình lại GitLab Cài đặt.
Mã:
$ sudo gitlab-ctl reconfigure
Bước 6 - Cấu hình Nginx
Máy chủ Nginx tích hợp của GitLab có thể được cấu hình rộng rãi. Chúng ta sẽ xem xét một số tùy chọn quan trọng.Mở tệp cấu hình GitLab để chỉnh sửa.
Mã:
$ sudo nano /etc/gitlab/gitlab.rb
Chuyển hướng HTTP sang HTTPS.
Thay đổi các giá trị sau để tự động chuyển hướng liên kết HTTP sang HTTPS.
Mã:
nginx['redirect_http_to_https'] = true
Thiết lập tiêu đề Referrer-Policy
Theo mặc định, GitLab đặt tiêu đềReferrer-Policy
thành strict-origin-when-cross-origin
trên tất cả các phản hồi. Cấu hình biến sau để đặt tiêu đề này thành một giá trị khác.
Mã:
nginx['referrer_policy'] = 'same-origin'
Chèn cài đặt Nginx tùy chỉnh vào khối máy chủ GitLab
Sử dụng biến sau để chèn cài đặt tùy chỉnh vào máy chủ GitLab chặn.
Mã:
# Example: block raw file downloads from a specific repository
nginx['custom_gitlab_server_config'] = "location ^~ /foo-namespace/bar-project/raw/ {\n deny all;\n}\n"
Chèn cài đặt tùy chỉnh vào cấu hình Nginx
Sử dụng cài đặt sau để chèn cài đặt tùy chỉnh.
Mã:
# Example: include a directory to scan for additional config files
nginx['custom_nginx_config'] = "include /etc/gitlab/nginx/sites-enabled/*.conf;"
/etc/gitlab/nginx/sites-available
thư mục.
Mã:
$ sudo mkdir /etc/gitlab/nginx/sites-available
Mã:
$ sudo touch /etc/gitlab/nginx/sites-enabled/example.conf
Mã:
$ sudo nano /etc/gitlab/nginx/sites-enabled/example.conf
/etc/gitlab/nginx/sites-enabled
thư mục.
Mã:
$ sudo mkdir /etc/gitlab/nginx/sites-enabled
Mã:
sudo ln -s /etc/gitlab/nginx/sites-available/example.conf /etc/gitlab/nginx/sites-enabled/example.conf
Cấu hình lại Cài đặt GitLab.
Mã:
$ sudo gitlab-ctl reconfigure
Bước 7 - Bật Container Đăng ký
Đăng ký container được tự động bật và khả dụng trên miền GitLab của bạn, cổng 5050 nếu bạn đang sử dụng tích hợp Let's Encrypt.Mở tệp cấu hình GitLab.
Mã:
$ sudo nano /etc/gitlab/gitlab.rb
Mã:
registry_external_url 'https://gitlab.example.com:5050'
Mã:
registry_nginx['redirect_http_to_https'] = true
Cấu hình lại Cài đặt GitLab.
Mã:
$ sudo gitlab-ctl reconfigure
Mã:
$ sudo firewall-cmd --zone=public --add-port=5050/tcp
$ sudo firewall-cmd --runtime-to-permanent
$ sudo firewall-cmd --reload
Mã:
$ openssl s_client -showcerts -servername gitlab.example.com -connect gitlab.example.com:5050 > cacert.pem
Mã:
$ docker login gitlab.example.com:5050
https://registry.gitlab.example.com
cho sổ đăng ký container của bạn, việc này sẽ yêu cầu cấu hình bổ sung. Bạn cũng có thể cấu hình lưu trữ S3 cho các container. Kiểm tra Tài liệu GitLab Container Registry để biết hướng dẫn.Bước 8 - Bật GitLab Pages
Bạn cần có một miền không phải là miền phụ của URL GitLab. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụnghttps://pages.example.com
để lưu trữ các trang GitLab. Chúng tôi cũng sẽ tiếp tục với giả định rằng chúng tôi không sử dụng Wildcard DNS.Mở tệp cấu hình GitLab.
Mã:
$ sudo nano /etc/gitlab/gitlab.rb
Mã:
pages_external_url 'https://pages.example.com'
.....
# Experimental - Enable namespace in path
gitlab_pages["namespace_in_path"] = true
GitLab Pages NGINX
.
Mã:
# Below you can find settings that are exclusive to "GitLab Pages NGINX"
pages_nginx['enable'] = true
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/letsencrypt/live/pages.example.com/fullchain.pem"
pages_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/pages.example.com/privkey.pem"
Cấu hình lại GitLab Cài đặt.
Mã:
$ sudo gitlab-ctl reconfigure
Bước 9 - Bật MatterMost
Mattermost là dịch vụ trò chuyện trực tuyến mã nguồn mở với các tính năng như chia sẻ tệp, biểu tượng cảm xúc, GIF, hỗ trợ đánh dấu, tô sáng cú pháp và hỗ trợ đa ngôn ngữ. GitLab đi kèm với MatterMost mà bạn có thể bật và cho phép người dùng công ty chia sẻ phiên bản GitLab giao tiếp với nhau.GitLab Mattermost bị tắt theo mặc định. Để bật, hãy mở tệp cấu hình GitLab.
Mã:
$ sudo nano /etc/gitlab/gitlab.rb
Mã:
mattermost_external_url 'https://mattermost.example.com'
Mã:
mattermost_nginx['redirect_http_to_https'] = true
Cấu hình lại Cài đặt GitLab.
Mã:
$ sudo gitlab-ctl reconfigure
https://mattermost.example.com
. Bạn sẽ thấy trang sau khi khởi chạy URL.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22445%22%3E%3C/svg%3E
Nếu bạn đã cài đặt ứng dụng Mattermost, hãy chọn nút Xem trong ứng dụng trên máy tính để bàn hoặc chọn tùy chọn nút Xem trong trình duyệt. Đảm bảo kiểm tra tùy chọn Ghi nhớ tùy chọn của tôi để bạn không bị hỏi lại. Chúng ta sẽ quay lại cấu hình Mattermost ở bước tiếp theo.
Cấu hình SMTP cho Mattermost
Mattermost lưu trữ cấu hình của mình trong tệp/var/opt/gitlab/mattermost/config.json
. Mở nó để chỉnh sửa.
Mã:
$ sudo nano /var/opt/gitlab/mattermost/config.json
"EmailSettings"
và định cấu hình như minh họa. FeedbackEmail
, ReplyToAddress
, EnableSMTPAuth
, SMTPUsername
, SMTPPassword
, SMTPServer
, SMTPPort
, ConnectionSecurity
và SkipServerCertificateVerification
là những mục chúng ta cần thiết lập cho nó làm việc.
Mã:
"EmailSettings": { "EnableSignUpWithEmail": true, "EnableSignInWithEmail": true, "EnableSignInWithUsername": true, "SendEmailNotifications": true, "UseChannelInEmailNotifications": false, "RequireEmailVerification": false, "FeedbackName": "Howtoforge Mattermost", "FeedbackEmail": "[emailprotected]", "ReplyToAddress": "[emailprotected]", "FeedbackOrganization": "", "EnableSMTPAuth": true, "SMTPUsername": "AmazonSESUsername", "SMTPPassword": "AmazonSESPassword", "SMTPServer": "email-smtp.us-west-2.amazonaws.com", "SMTPPort": "465", "SMTPServerTimeout": 10, "ConnectionSecurity": "TLS", "SendPushNotifications": true, "PushNotificationServer": "https://push-test.mattermost.com", "PushNotificationContents": "full", "PushNotificationBuffer": 1000, "EnableEmailBatching": false, "EmailBatchingBufferSize": 256, "EmailBatchingInterval": 30, "EnablePreviewModeBanner": false, "SkipServerCertificateVerification": true, "EmailNotificationContentsType": "full", "LoginButtonColor": "#0000", "LoginButtonBorderColor": "#2389D7", "LoginButtonTextColor": "#2389D7" },
Bước 10 - Truy cập và cấu hình GitLab Web
Truy cập GitLab
Mở URLhttps://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.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22653%22%3E%3C/svg%3E
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. Khi đăng nhập, bạn sẽ được đưa đến màn hình bảng điều khiển sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22496%22%3E%3C/svg%3E
Như bạn thấy, GitLab đã tạo một dự án để giám sát phiên bản.
Tắt GitLab để bảo trì
Nếu bạn muốn đưa phiên bản GitLab của mình vào trạng thái bảo trì trong khi thực hiện các tác vụ máy chủ, hãy sử dụng lệnh sau lệnh.
Mã:
$ sudo gitlab-ctl deploy-page up
cp /opt/gitlab/embedded/service/gitlab-rails/public/deploy.html /opt/gitlab/embedded/service/gitlab-rails/public/index.html
Deploy in progress
.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22712%22%20height=%22517%22%3E%3C/svg%3E
Để xóa trang, hãy chạy lệnh sau.
Mã:
$ sudo gitlab-ctl deploy-page down
Mã:
$ sudo gitlab-rails console
Mã:
-------------------------------------------------------------------------------- Ruby: ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux] GitLab: 16.9.2-ee (0d71d32d321) EE GitLab Shell: 14.33.0 PostgreSQL: 14.10
------------------------------------------------------------[ booted in 78.60s ]
Loading production environment (Rails 7.0.8)
irb(main):001:0>
Mã:
Project.all.find_each { |project| project.update!(repository_read_only: true) }
exit
. Để khôi phục các dự án về trạng thái bình thường, hãy sử dụng lệnh sau trong bảng điều khiển.
Mã:
Project.all.find_each { |project| project.update!(repository_read_only: false) }
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 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. Thực hiện thao tác này sẽ chuyển hướng bạn đến trang cài đặt sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22174%22%3E%3C/svg%3E
Bỏ chọn tùy chọn Cho phép đăng ký để hạn chế họ. 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 Khu vực quản trị ở menu dưới cùng bên trái.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22253%22%20height=%22450%22%3E%3C/svg%3E
Khi đã vào trong 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ể truy cập bảng Hạn chế đăng ký.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22447%22%20height=%22390%22%3E%3C/svg%3E
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ì nổi bật. Để 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ơ.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22249%22%20height=%22253%22%3E%3C/svg%3E
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ứ cần cấu hình ở đây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22745%22%3E%3C/svg%3E
Đổ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 đổ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 đổi mật khẩu như một phần của quá trình cài đặt nhưng giờ đây, GitLab đã biến việc này thành tùy chọn. Để đổi mật khẩu, hãy nhấp vào menu Mật khẩu từ thanh bên trái.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22595%22%3E%3C/svg%3E
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ẽ bị đăng xuất khỏi phiên bản của mình và phải đăng nhập lại.
Thay đổi Tên người dùng và bật xác thực hai yếu tố
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 điều đó, hãy nhấp vào menu Tài khoản từ thanh bên trái.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22576%22%3E%3C/svg%3E
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ần nữa. 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.
Tắt 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. Điều này chủ yếu cần thiết để 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, hãy mở Bảng điều khiển quản trị từ thanh menu.Khi đã vào trong Bảng điều khiển quản trị, hãy mở Cài đặt >> Tùy chọn menu Số liệu và hồ sơ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22471%22%20height=%22325%22%3E%3C/svg%3E
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 để thực hiện thay đổi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22385%22%3E%3C/svg%3E
Cấu hình Mattermost
Mở URLhttps://mattermost.example.com
và bạn sẽ được đưa đến trang đăng nhập sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22715%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút GitLab để đăng ký. Thao tác này sẽ tích hợp tài khoản Mattermost của bạn với tài khoản GitLab của bạn. Bạn sẽ được đưa đến trang đăng nhập GitLab, tại đó bạn nhập thông tin đăng nhập và nhấp vào nút Đăng nhập để tiếp tục. Bạn sẽ được đưa đến trang Cho phép hiển thị bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22444%22%3E%3C/svg%3E
Nhấp vào nút Cho phép để tiếp tục. Bạn sẽ được đưa trở lại ứng dụng Mattermost yêu cầu nhập tên tổ chức của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22437%22%3E%3C/svg%3E
Nhập tên tổ chức của bạn và nhấp vào trang Tiếp tục. Tiếp theo, bạn sẽ được hỏi về những công cụ bạn sử dụng trong công việc của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22599%22%3E%3C/svg%3E
Nhấp vào biểu tượng GitLab rồi nhấp vào nút Tiếp tục để tiếp tục. Bạn luôn có thể thêm các công cụ khác sau. Tiếp theo, bạn sẽ được yêu cầu mời các thành viên trong nhóm của mình và sẽ được cung cấp một liên kết mời.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22474%22%3E%3C/svg%3E
Lưu liên kết để xem sau và nhấp vào Hoàn tất thiết lập để hoàn tất cài đặt Mattermost. Bạn sẽ được đưa đến bảng điều khiển Mattermost, nơi bạn có thể bắt đầu sử dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22474%22%3E%3C/svg%3E
GitLab chỉ được phép sử dụng để đăng nhập vào phiên bản Mattermost. Phiên bản Mattermost đi kèm với một plugin GitLab được cài đặt sẵn có thể gửi các cam kết và thông báo từ kho lưu trữ của bạn đến phiên bản Mattermost của bạn. Chúng ta cũng cần cấu hình plugin đó.
Truy cập trang Chỉnh sửa hồ sơ của GitLab và chọn menu Ứng dụng từ thanh bên trái. Bạn sẽ thấy ứng dụng đăng nhập Mattermost hiện tại của mình đã được đăng ký.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22447%22%3E%3C/svg%3E
Nhấp vào nút Thêm ứng dụng mới để tạo một ứng dụng khác cho plugin GitLab.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22571%22%3E%3C/svg%3E
Đưa ra tên cho dự án. Đặt
https://mattermost.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/complete
làm URI chuyển hướng. Kiểm tra các tùy chọn Bí mật, api và read_user. Nhấp vào nút Lưu ứng dụng ở cuối trang để hoàn tất.Bạn sẽ được đưa đến trang sau. Sao chép và lưu ID ứng dụng và Bí mật ứng dụng mà bạn sẽ cần sau này. Bí mật ứng dụng sẽ chỉ được hiển thị một lần nên hãy đảm bảo điều đó.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22337%22%3E%3C/svg%3E
Nhấp vào nút Tiếp tục để hoàn tất.
Mở trang Mattermost của bạn và nhấp vào nút trên cùng bên trái để hiển thị menu bật lên sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22337%22%20height=%22387%22%3E%3C/svg%3E
Nhấp vào nút App Marketplace để mở cửa sổ bật lên sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22495%22%3E%3C/svg%3E
Nhấp vào nút Cấu hình đối với plugin GitLab để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22561%22%3E%3C/svg%3E
Nhập URL GitLab, ID máy khách OAuth và Bí mật máy khách OAuth đã tạo trước đó, rồi nhấp vào nút Lưu để hoàn tất.
Bây giờ, mỗi người dùng cần kết nối tài khoản GitLab của họ trong Mattermost. Truy cập kênh GitLab trên Mattermost và nhập lệnh sau để bắt đầu
/gitlab connect
và nhấn phím enter, bạn sẽ nhận được thông báo sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22326%22%3E%3C/svg%3E
Nhấp vào nút Liên kết và bạn sẽ được chuyển đến một trang mới yêu cầu cấp quyền kết nối. Nhấp vào Kết nối và bạn sẽ được đưa trở lại trang Mattermost và bạn sẽ thấy thông báo sau xác nhận kết nối.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22616%22%3E%3C/svg%3E
Bước 11 - 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 lệnh bằng lệnh sau.
Mã:
$ ssh-keygen -t ed25519 -C "gitlab.example.com"
Mã:
Generating public/private rsa key pair.
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\/.ssh/id_ed25519):
Enter same passphrase again:
Your identification has been saved in C:\Users\/.ssh/id_ed25519.
Your public key has been saved in 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]-----+
Mã:
$ eval $(ssh-agent -s)
Mã:
$ ssh-add C:\Users\/.ssh/id_ed25519
Mã:
$ ssh-add ~/.ssh/id_ed25519
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\\.ssh
. Dán đoạn mã sau vào cuối tệp.
Mã:
Host gitlab.example.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_ed25519
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
Mã:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGCEIN84O/9tcvE5wsTswY76xeJyY7TwkMW6uCvYulm1 gitlab.example.com
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22253%22%20height=%22678%22%3E%3C/svg%3E
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. Bạn sẽ được cung cấp ngày hết hạn mặc định. Bạn có thể thay đổi tùy theo nhu cầu của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22484%22%3E%3C/svg%3E
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]
Mã:
The authenticity of host 'gitlab.example.com (178.62.213.105)' can't be established.
ECDSA key fingerprint is SHA256:x1647s5G1iL/cnRFoBuE6qzRZF775fVLZzcLJTGaIvQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitlab.example.com,178.62.213.105' (ECDSA) to the list of known hosts.
Welcome to GitLab, @navjot!
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, tích hợp liên tục, đường ống 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 phần Tạo dự án trên trang chủ của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22573%22%3E%3C/svg%3E
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E
Chọn tùy chọn Create blank project để tiếp tục. Ở trang tiếp theo, nhập Project name. Chọn tên người dùng của bạn từ menu thả xuống trong tùy chọn Project URL trong hộp Pick a group or namespace. Đặt Project slug của bạn nếu bạn muốn thay đổi slug mặc định. Thay đổi Visibility Level 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
. Nếu bạn muốn GitLab phân tích mã của mình để tìm lỗ hổng bảo mật, hãy kiểm tra tùy chọn Enable SAST.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22512%22%3E%3C/svg%3E
Sau khi hoàn tất, hãy nhấp vào Create project để hoàn tất. Bạn sẽ được đưa đến trang kho lưu trữ của mình với chỉ một tệp
README.md
trống.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22659%22%3E%3C/svg%3E
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
Mã:
Cloning into 'howtoforge-test'...
Enter passphrase for key '/c/Users/navjo/.ssh/id_ed25519':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
CHANGELOG
file.
Mã:
$ 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"
[main d6c7a9c] add Changelog 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 CHANGELOG
$ git push -u origin main
Enter passphrase for key '/c/Users/navjo/.ssh/id_ed25519':
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 958 bytes | 958.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To gitlab.example.com:navjot/howtoforge-test.git 523db9a..d6c7a9c main -> main
branch 'main' set up to track 'origin/main'.
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 đó.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22348%22%3E%3C/svg%3E
Như vậy là kết thúc dự án GitLab đầu tiên của chúng ta.
Bước 12 - Sao lưu GitLab
GitLab cung cấp giao diện dòng lệnh để sao lưu toàn bộ phiên bản của bạn bao gồm cơ sở dữ liệu, tệp đính kèm, dữ liệu kho lưu trữ, hiện vật công việc CI/CD, nhật ký đầu ra công việc CI/CD, đối tượng LFS, trạng thái Terraform, hình ảnh sổ đăng ký Container, nội dung GitLab Pages, gói, đoạn mã, wiki nhóm, sự khác biệt về yêu cầu hợp nhất và bảo mật cấp dự án tệp.Bản sao lưu không bao gồm dữ liệu Mattermost, dữ liệu Redis, tác vụ Sidekiq và lưu trữ Đối tượng.
Chạy lệnh sau để thực hiện sao lưu.
Mã:
$ sudo gitlab-backup create STRATEGY=copy
STRATEGY=copy
là để ngăn ngừa lỗi trong trường hợp dữ liệu thay đổi nhanh chóng. Thao tác này sẽ sao chép dữ liệu đến một vị trí tạm thời và tránh được các lỗi có thể xảy ra.Bạn sẽ thấy kết quả tương tự.
Mã:
2024-03-07 11:48:37 UTC -- Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
2024-03-07 11:48:45 UTC -- Dumping database ... done
2024-03-07 11:48:45 UTC -- Dumping repositories ...
{"command":"create","gl_project_path":"navjot/howtoforge-test","level":"info","msg":"started create","pid":107325,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git","storage_name":"default","time":"2024-03-07T11:48:45.720Z"}
{"command":"create","gl_project_path":"navjot/howtoforge-test","level":"info","msg":"completed create","pid":107325,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git","storage_name":"default","time":"2024-03-07T11:48:45.772Z"}
{"command":"create","gl_project_path":"navjot/howtoforge-test.wiki","level":"info","msg":"started create","pid":107325,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git","storage_name":"default","time":"2024-03-07T11:48:45.874Z"}
{"command":"create","gl_project_path":"navjot/howtoforge-test.wiki","level":"info","msg":"completed create","pid":107325,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git","storage_name":"default","time":"2024-03-07T11:48:45.894Z"}
2024-03-07 11:48:45 UTC -- Dumping repositories ... done
2024-03-07 11:48:45 UTC -- Dumping uploads ...
2024-03-07 11:48:46 UTC -- Dumping uploads ... done
2024-03-07 11:48:46 UTC -- Dumping builds ...
2024-03-07 11:48:46 UTC -- Dumping builds ... done
2024-03-07 11:48:46 UTC -- Dumping artifacts ...
2024-03-07 11:48:46 UTC -- Dumping artifacts ... done
2024-03-07 11:48:46 UTC -- Dumping pages ...
2024-03-07 11:48:46 UTC -- Dumping pages ... done
2024-03-07 11:48:46 UTC -- Dumping lfs objects ...
2024-03-07 11:48:46 UTC -- Dumping lfs objects ... done
2024-03-07 11:48:46 UTC -- Dumping terraform states ...
2024-03-07 11:48:46 UTC -- Dumping terraform states ... done
2024-03-07 11:48:46 UTC -- Dumping container registry images ...
2024-03-07 11:48:46 UTC -- Dumping container registry images ... done
2024-03-07 11:48:46 UTC -- Dumping packages ...
2024-03-07 11:48:46 UTC -- Dumping packages ... done
2024-03-07 11:48:46 UTC -- Dumping ci secure files ...
2024-03-07 11:48:46 UTC -- Dumping ci secure files ... done
2024-03-07 11:48:46 UTC -- Creating backup archive: 1709812117_2024_03_07_16.9.1-ee_gitlab_backup.tar ...
2024-03-07 11:48:46 UTC -- Creating backup archive: 1709812117_2024_03_07_16.9.1-ee_gitlab_backup.tar ... done
2024-03-07 11:48:46 UTC -- Uploading backup archive to remote storage ... [SKIPPED]
2024-03-07 11:48:46 UTC -- Deleting old backups ... [SKIPPED]
2024-03-07 11:48:46 UTC -- Deleting tar staging files ...
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/backup_information.yml
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/db
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/repositories
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/uploads.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/builds.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/artifacts.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/pages.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/lfs.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/terraform_state.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/registry.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/packages.tar.gz
2024-03-07 11:48:46 UTC -- Cleaning up /var/opt/gitlab/backups/ci_secure_files.tar.gz
2024-03-07 11:48:46 UTC -- Deleting tar staging files ... done
2024-03-07 11:48:46 UTC -- Deleting backups/tmp ...
2024-03-07 11:48:46 UTC -- Deleting backups/tmp ... done
2024-03-07 11:48:46 UTC -- Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
2024-03-07 11:48:46 UTC -- Backup 1709812117_2024_03_07_16.9.1-ee is done.
2024-03-07 11:48:46 UTC -- Deleting backup and restore PID file ... done
/var/opt/gitlab/backups
thư mục.
Mã:
$ sudo ls /var/opt/gitlab/backups
1709812117_2024_03_07_16.9.1-ee_gitlab_backup.tar
Sao chép chúng.
Mã:
$ sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups
Mở crontab cho
root
người dùng.
Mã:
$ sudo su -
$ EDITOR = nano crontab -e
Mã:
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
Tùy chọn
CRON=1
là ẩn toàn bộ đầu ra nếu không có lỗi. Điều này giúp hạn chế thư rác cron. Tuy nhiên, nếu bạn đang gỡ lỗi, hãy thay thế CRON=1
bằng --trace
để ghi nhật ký chi tiết.Bạn có thể kiểm tra tài liệu sao lưu GitLab chính thức để biết thêm tùy chọn và cách đảm bảo bản sao lưu của bạn được tự động sao chép sang dịch vụ tương thích với S3.
Bước 13 - Khôi phục GitLab
Trước khi khôi phục GitLab, hãy đảm bảo bạn đáp ứng các yêu cầu sau.-
Phiên bản và ấn bản GitLab phải khớp với phiên bản mà bản sao lưu được thực hiện.
-
Bạn đã chạy lệnhsudo gitlab-ctl reconfigure
ít nhất một lần.
-
GitLab phải đang chạy.
-
Bí mật GitLab và các thiết lập phải đã khôi phục.
Mã:
$ sudo cp gitlab.rb gitlab-secrets.json /etc/gitlab
/var/opt/gitlab/backups
thư mục.
Mã:
$ sudo cp 1709812117_2024_03_07_16.9.1-ee_gitlab_backup.tar /var/opt/gitlab/backups/
Mã:
$ sudo chown git:git /var/opt/gitlab/backups/1709812117_2024_03_07_16.9.1-ee_gitlab_backup.tar
Mã:
$ sudo gitlab-ctl stop puma
$ sudo gitlab-ctl stop sidekiq
Mã:
$ sudo gitlab-ctl status
run: alertmanager: (pid 68055) 76797s; run: log: (pid 66127) 78476s
run: crond: (pid 68045) 76798s; run: log: (pid 65624) 78566s
run: gitaly: (pid 66424) 78414s; run: log: (pid 65273) 78710s
run: gitlab-exporter: (pid 66466) 78411s; run: log: (pid 66002) 78497s
run: gitlab-kas: (pid 65535) 78691s; run: log: (pid 65547) 78690s
run: gitlab-pages: (pid 68003) 76801s; run: log: (pid 67700) 76996s
run: gitlab-workhorse: (pid 66392) 78415s; run: log: (pid 65727) 78550s
run: logrotate: (pid 106163) 3124s; run: log: (pid 65169) 78724s
run: mattermost: (pid 68027) 76799s; run: log: (pid 67820) 76890s
run: nginx: (pid 72647) 75588s; run: log: (pid 65781) 78544s
run: node-exporter: (pid 66458) 78411s; run: log: (pid 65968) 78505s
run: postgres-exporter: (pid 66505) 78407s; run: log: (pid 66162) 78470s
run: postgresql: (pid 65341) 78702s; run: log: (pid 65362) 78699s
run: prometheus: (pid 66476) 78410s; run: log: (pid 66070) 78483s
down: puma: 14s, normally up; run: log: (pid 65649) 78562s
run: redis: (pid 65207) 78719s; run: log: (pid 65216) 78718s
run: redis-exporter: (pid 66468) 78410s; run: log: (pid 66034) 78490s
run: registry: (pid 66414) 78414s; run: log: (pid 65864) 78528s
down: sidekiq: 5s, normally up; run: log: (pid 65681) 78554s
-ee_gitlab_backup.tar
của tên tệp.
Mã:
$ sudo gitlab-backup restore BACKUP=1709812117_2024_03_07_16.9.1-ee
Bước 14 - Nâng cấp GitLab
Tạo bản sao lưu trước khi nâng cấp GitLab. Nâng cấp GitLab đơn giản như chạy lệnhsudo dnf update
.
Mã:
$ sudo dnf update
Mã:
DigitalOcean Agent 40 kB/s | 3.3 kB 00:00
DigitalOcean Droplet Agent 44 kB/s | 3.3 kB 00:00
gitlab_gitlab-ee 1.4 kB/s | 1.0 kB 00:00
gitlab_gitlab-ee-source 1.2 kB/s | 951 B 00:00
Dependencies resolved.
======================================================================================================================== Package Architecture Version Repository Size
========================================================================================================================
Upgrading: gitlab-ee x86_64 16.9.2-ee.0.el9 gitlab_gitlab-ee 1.1 G
Transaction Summary
========================================================================================================================
Upgrade 1 Package
Total download size: 1.1 G
Is this ok [y/N]: y
y
và nhấn Enter
để bắt đầu nâng cấp. Đối với các phiên bản chính, bạn nên kiểm tra bất kỳ thay đổi đột ngột nào trước khi thực hiện nâng cấp.Trang web sẽ không khả dụng trong khi quá trình nâng cấp đang được thực hiện hoặc bạn sẽ nhận được thông báo
Deploy in progress
trong trình duyệt.Sau khi hoàn tất quá trình nâng cấp, hãy thực hiện kiểm tra sau khi nâng cấp để đảm bảo mọi thứ hoạt động bình thường.
-
Kiểm tra cấu hình chung.
Mã:$ sudo gitlab-rake gitlab:check
-
Xác nhận giá trị cơ sở dữ liệu được mã hóa có thể được giải mã.
Mã:$ sudo gitlab-rake gitlab:doctor:secrets
-
Kiểm tra xem người dùng có thể đăng nhập không, danh sách dự án có hiển thị không, các sự cố dự án và yêu cầu hợp nhất có thể truy cập được không, người dùng có thể sao chép kho lưu trữ và họ có thể đẩy các cam kết lên GitLab trong Giao diện người dùng GitLab không.
-
Đối với GitLab CI/CD, hãy kiểm tra xem trình chạy có thể nhận công việc không và sổ đăng ký Docker có hoạt động không.