GitLab là trình quản lý kho lưu trữ nguồn mở dựa trên Rails do GitLab Inc. phát triển. Đây là trình quản lý kho lưu trữ git dựa trên web cho phép nhóm của bạn cộng tác mã hóa, thử nghiệm và triển khai ứng dụng. GitLab cung cấp một số tính năng, bao gồm wiki, theo dõi sự cố, đánh giá mã và nguồn cấp dữ liệu hoạt động.
GitLab Inc cung cấp 4 sản phẩm:
Cài đặt tất cả các gói đó bằng lệnh yum sau.
Sau đó, khởi động các dịch vụ ssh và postfix.
Bây giờ hãy bật chúng để tự động chạy khi khởi động.
Tất cả các gói cần thiết cho cài đặt GitLab hiện đã được cài đặt trên máy chủ.
Kho lưu trữ GitLab CE đã được thêm vào hệ thống.
Bây giờ hãy cài đặt GitLab bằng lệnh yum sau.
Khi quá trình cài đặt hoàn tất, bạn sẽ nhận được kết quả như hiển thị bên dưới.
Với lệnh này, GitLab CE hiện đã được cài đặt trên máy chủ CentOS 7.
Vào thư mục cấu hình GitLab '/etc/gitlab' rồi chỉnh sửa tệp cấu hình 'gitlab.rb' bằng trình soạn thảo vim.
Thay đổi dòng external_url bằng tên miền 'gitlab.hakase-labs.co'.
Lưu các thay đổi và thoát khỏi vim.
Để tạo chứng chỉ Letsencrypt, chúng ta cần cài đặt công cụ dòng lệnh letsencrypt, có sẵn trong kho lưu trữ.
Cài đặt công cụ Letsencrypt trên CentOS 7 bằng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, hãy tạo chứng chỉ SSL mới letsencrypt bằng lệnh bên dưới.
Lưu ý: Trong khi tạo SSL Letsencrypt, hãy đảm bảo rằng cổng HTTP và HTTPS của bạn không bị tường lửa chặn.
Nhập địa chỉ email của bạn để nhận thông báo gia hạn, sau đó nhập 'A' cho thỏa thuận Điều khoản dịch vụ của Letsencrypt và cuối cùng nhập 'N' rồi nhấn Enter một lần nữa.
Và nếu bạn thấy kết quả như hiển thị bên dưới, điều đó có nghĩa là chứng chỉ cho tên miền của bạn đã được tạo và lưu trữ trong thư mục '/etc/letsencrypt/live'.
Tiếp theo, tạo thư mục 'ssl' mới trong thư mục cấu hình GitLab '/etc/gitlab/'.
Bây giờ hãy tạo tệp pem chứng chỉ DHPARAM bằng OpenSSL. Bit lớn hơn an toàn hơn.
Sau khi chứng chỉ DHPARAM được tạo, hãy thay đổi quyền của tệp chứng chỉ thành 600.
Vậy là chứng chỉ SSL Letsencrypt và DHPARAM cho cài đặt GitLab đã được tạo.
Đầu tiên, hãy vào thư mục cấu hình GitLab và chỉnh sửa tệp cấu hình 'gitlab.rb'.
Và thay đổi HTTP thành HTTPS trên dòng external_url.
Sau đó dán cấu hình sau vào dòng configuration 'external_url'.
Lưu các thay đổi và thoát khỏi vim.
Cuối cùng, áp dụng cấu hình GitLab bằng lệnh sau.
Và khi mọi thứ hoàn tất, bạn sẽ nhận được kết quả như hiển thị bên dưới.
Khởi động firewalld và cho phép nó chạy tự động khi khởi động bằng các lệnh systemctl như được hiển thị bên dưới.
Tiếp theo, mở các cổng mới cho các dịch vụ của chúng ta. Chúng ta sẽ mở các cổng SSH, HTTP và HTTPS cho cấu hình GitLab của mình. Chạy các lệnh firewall-cmd bên dưới để mở các cổng.
Bây giờ hãy tải lại tường lửa và kiểm tra cấu hình firewalld. Đảm bảo SSH, HTTP và HTTPS có trong danh sách.
Như vậy là cấu hình Firewalld cho GitLab đã hoàn tất.
Bây giờ bạn có thể đăng nhập vào bảng điều khiển GitLab bằng người dùng mặc định 'root' và mật khẩu của riêng bạn.
Trong tab 'Hồ sơ', hãy thay đổi tên và địa chỉ email của bạn, sau đó nhấp vào nút 'Cập nhật cài đặt hồ sơ' ở phía dưới để xác nhận.
Tiếp theo, hãy chuyển đến tab 'Tài khoản' và thay đổi tên người dùng root mặc định bằng tên người dùng của riêng bạn, sau đó nhấp vào nút 'Cập nhật tên người dùng'.
Và bạn sẽ nhận được hai khóa trong thư mục ~/.ssh/. 'id_rsa' sẽ là khóa riêng tư của bạn và 'id_rsa.pub' sẽ là khóa công khai của bạn.
Tiếp theo, quay lại trình duyệt Web và nhấp vào tab 'Khóa SSH'. Sao chép nội dung của tệp 'id_rsa.pub' và dán vào hộp khóa, sau đó nhấp vào 'Thêm khóa'.
Với thao tác này, khóa SSH đã được cập nhật.
Trong phần 'Cài đặt tài khoản và giới hạn', bạn có thể định cấu hình dự án tối đa cho mỗi người dùng. Và trong phần 'Hạn chế đăng ký', bạn có thể thêm tên miền của email vào hộp danh sách trắng.
Sau khi hoàn tất, hãy cuộn xuống cuối và nhấp vào 'Lưu'.
Vậy là xong. Cấu hình GitLab cơ bản đã hoàn tất.
Nhập tên dự án, mô tả và thiết lập cài đặt hiển thị cho dự án của bạn. Sau đó, nhấp vào nút 'Tạo dự án'.
Với thao tác này, dự án đã được tạo.
Đảm bảo Git đã được cài đặt trên máy tính của bạn.
Đối với bài kiểm tra này, chúng ta cần thiết lập tài khoản Git trên máy tính, bạn có thể thực hiện việc này bằng các lệnh sau:
Sao chép kho lưu trữ và thêm tệp README.md mới.
Bạn sẽ được yêu cầu nhập mật khẩu hakase. Vui lòng nhập cùng mật khẩu mà chúng ta đã sử dụng khi truy cập GitLab lần đầu tiên, sau đó thêm nội dung mới vào tệp README.md.
Cam kết các thay đổi mới vào kho lưu trữ bằng các lệnh sau.
Tiếp theo, đẩy kho lưu trữ lên máy chủ GitLab.
Nhập mật khẩu của bạn và nhấn Enter để tiếp tục. Bạn sẽ thấy kết quả như hiển thị bên dưới.
Bây giờ hãy mở dự án (howtoforge trong trường hợp của chúng tôi) từ trình duyệt web của bạn và bạn sẽ thấy một tệp README.md mới đã được thêm vào kho lưu trữ.
Điều này xác nhận rằng Gitlab đã được cài đặt thành công trên Ubuntu CentOS 7 với bộ nhớ 4GB.
GitLab Inc cung cấp 4 sản phẩm:
- Gitlab CE (Phiên bản cộng đồng) - tự lưu trữ và miễn phí; hỗ trợ từ diễn đàn Cộng đồng.
- Gitlab EE (Phiên bản doanh nghiệp) - tự lưu trữ và trả phí; đi kèm với các tính năng bổ sung.
- GitLab.com - SaaS và miễn phí.
- GitLab.io - Phiên bản GitLab riêng do GitLab Inc. quản lý.
Những gì chúng ta sẽ làm
- Cài đặt các gói
- Cài đặt GitLab
- Cấu hình URL GitLab
- Tạo chứng chỉ SSL Let's encrypt và DHPARAM
- Bật Nginx HTTPS cho GitLab
- Cấu hình fIrewalld
- Thực hiện cài đặt GitLab
- Kiểm tra
Điều kiện tiên quyết
- Máy chủ CentOS 7 - 64bit
- RAM tối thiểu 2GB
- Quyền root
Bước 1 - Cài đặt các gói
Trong bước này, chúng ta sẽ tải xuống/cài đặt một số gói cần thiết cho quá trình cài đặt GitLab. Chúng tôi sẽ sử dụng curl để tải xuống trình cài đặt kho lưu trữ, policycoreutils cho trình quản lý SELinux, OpenSSH và postfix làm máy chủ SMTP cục bộ.Cài đặt tất cả các gói đó bằng lệnh yum sau.
Mã:
yum -y install curl policycoreutils openssh-server openssh-clients postfix
Mã:
systemctl start sshd
systemctl start postfix
Mã:
systemctl enable sshd
systemctl enable postfix
Tất cả các gói cần thiết cho cài đặt GitLab hiện đã được cài đặt trên máy chủ.
Bước 2 - Cài đặt GitLab
GitLab cung cấp trình cài đặt để thêm kho lưu trữ GitLab CE. Tải xuống trình cài đặt với curl và chạy tập lệnh (như hiển thị bên dưới) để thêm kho lưu trữ GitLab CE mới.
Mã:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Bây giờ hãy cài đặt GitLab bằng lệnh yum sau.
Mã:
yum -y install gitlab-ce
Với lệnh này, GitLab CE hiện đã được cài đặt trên máy chủ CentOS 7.
Bước 3 - Cấu hình URL GitLab
Đối với hướng dẫn này, chúng tôi sẽ sử dụng tên miền cho GitLab. Cụ thể, chúng ta sẽ sử dụng tên miền 'gitlab.hakase-labs.co.'Vào thư mục cấu hình GitLab '/etc/gitlab' rồi chỉnh sửa tệp cấu hình 'gitlab.rb' bằng trình soạn thảo vim.
Mã:
cd /etc/gitlab/
vim gitlab.rb
Mã:
external_url 'http://gitlab.hakase-labs.co'
Bước 4 - Tạo SSL Let's encrypt và chứng chỉ DHPARAM
Đối với lớp bảo mật cơ bản, chúng ta sẽ sử dụng SSL cho trang GitLab của mình. Chúng tôi sẽ sử dụng chứng chỉ SSL miễn phí từ Letsencrypt và tạo chứng chỉ DHPARAM để thêm lớp bảo mật bổ sung.Để tạo chứng chỉ Letsencrypt, chúng ta cần cài đặt công cụ dòng lệnh letsencrypt, có sẵn trong kho lưu trữ.
Cài đặt công cụ Letsencrypt trên CentOS 7 bằng lệnh yum bên dưới.
Mã:
yum -y install letsencrypt
Mã:
letsencrypt certonly --standalone -d gitlab.hakase-labs.co
Nhập địa chỉ email của bạn để nhận thông báo gia hạn, sau đó nhập 'A' cho thỏa thuận Điều khoản dịch vụ của Letsencrypt và cuối cùng nhập 'N' rồi nhấn Enter một lần nữa.
Và nếu bạn thấy kết quả như hiển thị bên dưới, điều đó có nghĩa là chứng chỉ cho tên miền của bạn đã được tạo và lưu trữ trong thư mục '/etc/letsencrypt/live'.
Tiếp theo, tạo thư mục 'ssl' mới trong thư mục cấu hình GitLab '/etc/gitlab/'.
Mã:
mkdir -p /etc/gitlab/ssl/
Mã:
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
Sau khi chứng chỉ DHPARAM được tạo, hãy thay đổi quyền của tệp chứng chỉ thành 600.
Mã:
chmod 600 /etc/gitlab/ssl/*
Bước 5 - Bật Nginx HTTPS cho GitLab
Ở giai đoạn này, chúng ta đã có các tệp chứng chỉ SSL miễn phí từ Letsencrypt và chứng chỉ DHPARAM được tạo bằng lệnh OpenSSL. Và trong bước này, chúng ta sẽ bật HTTPS cho trang GitLab. Chúng tôi sẽ bật HTTPS và buộc HTTP vào kết nối HTTPS.Đầu tiên, hãy vào thư mục cấu hình GitLab và chỉnh sửa tệp cấu hình 'gitlab.rb'.
Mã:
cd /etc/gitlab/
vim gitlab.rb
Mã:
external_url 'https://gitlab.hakase-labs.co'
Mã:
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Cuối cùng, áp dụng cấu hình GitLab bằng lệnh sau.
Mã:
gitlab-ctl reconfigure
Bước 6 - Cấu hình Firewalld
Trong hướng dẫn này, chúng ta sẽ chạy GitLab dưới tường lửa Firewalld. Vì vậy, hãy đảm bảo rằng nó đã được cài đặt trên hệ thống. Nếu bạn không có gói, bạn có thể cài đặt nó bằng lệnh sau.
Mã:
yum -y install firewalld
Mã:
systemctl start firewalld
systemctl enable firewalld
Mã:
firewall-cmd --permanent --add-service ssh
firewall-cmd --permanent --add-service http
firewall-cmd --permanent --add-service https
Bây giờ hãy tải lại tường lửa và kiểm tra cấu hình firewalld. Đảm bảo SSH, HTTP và HTTPS có trong danh sách.
Mã:
firewall-cmd --reload
firewall-cmd --list-all
Như vậy là cấu hình Firewalld cho GitLab đã hoàn tất.
Bước 7 - Thực hiện cài đặt
Như vậy là GitLab đã được cài đặt trong hệ thống và đang chạy dưới tường lửa Firewalld. Trong bước này, chúng ta sẽ thực hiện một số thiết lập nhanh sau khi cài đặt GitLab trên máy chủ.Đặt lại mật khẩu gốc GitLab
Mở trình duyệt web của bạn và nhập URL gitlab 'gitlab.hakase-labs.co'. Bạn sẽ được chuyển hướng đến kết nối HTTPS. Thay đổi mật khẩu root bằng mật khẩu của riêng bạn và nhấp vào nút 'Thay đổi mật khẩu' để xác nhận.Bây giờ bạn có thể đăng nhập vào bảng điều khiển GitLab bằng người dùng mặc định 'root' và mật khẩu của riêng bạn.
Thay đổi hồ sơ và Tên người dùng
Sau khi bạn đăng nhập vào bảng điều khiển GitLab, hãy nhấp vào góc trên bên phải của hồ sơ biểu tượng của bạn và nhấp vào biểu tượng 'Cài đặt' để thiết lập hồ sơ của bạn.Trong tab 'Hồ sơ', hãy thay đổi tên và địa chỉ email của bạn, sau đó nhấp vào nút 'Cập nhật cài đặt hồ sơ' ở phía dưới để xác nhận.
Tiếp theo, hãy chuyển đến tab 'Tài khoản' và thay đổi tên người dùng root mặc định bằng tên người dùng của riêng bạn, sau đó nhấp vào nút 'Cập nhật tên người dùng'.
Thêm Khóa SSH
Hãy đảm bảo rằng bạn đã có khóa, nếu bạn không có khóa SSH, bạn có thể tạo một khóa bằng lệnh bên dưới.
Mã:
ssh-keygen
Và bạn sẽ nhận được hai khóa trong thư mục ~/.ssh/. 'id_rsa' sẽ là khóa riêng tư của bạn và 'id_rsa.pub' sẽ là khóa công khai của bạn.
Tiếp theo, quay lại trình duyệt Web và nhấp vào tab 'Khóa SSH'. Sao chép nội dung của tệp 'id_rsa.pub' và dán vào hộp khóa, sau đó nhấp vào 'Thêm khóa'.
Với thao tác này, khóa SSH đã được cập nhật.
Cài đặt giới hạn và hạn chế đăng ký
Nhấp vào biểu tượng 'Khu vực quản trị', sau đó nhấp vào biểu tượng bánh răng và chọn 'Cài đặt'.Trong phần 'Cài đặt tài khoản và giới hạn', bạn có thể định cấu hình dự án tối đa cho mỗi người dùng. Và trong phần 'Hạn chế đăng ký', bạn có thể thêm tên miền của email vào hộp danh sách trắng.
Sau khi hoàn tất, hãy cuộn xuống cuối và nhấp vào 'Lưu'.
Vậy là xong. Cấu hình GitLab cơ bản đã hoàn tất.
Bước 8 - Kiểm tra
Bây giờ, chúng ta sẽ thực hiện một số thử nghiệm với GitLab tự lưu trữ của mình.Tạo dự án mới
Nhấp vào biểu tượng dấu cộng ở góc trên bên phải để tạo kho lưu trữ dự án mới.Nhập tên dự án, mô tả và thiết lập cài đặt hiển thị cho dự án của bạn. Sau đó, nhấp vào nút 'Tạo dự án'.
Với thao tác này, dự án đã được tạo.
Kiểm tra lần commit đầu tiên
Sau khi dự án của bạn được tạo (trong trường hợp của chúng tôi là howtoforge), bạn sẽ được chuyển hướng đến trang dự án. Bây giờ hãy bắt đầu thêm nội dung mới vào kho lưu trữ.Đảm bảo Git đã được cài đặt trên máy tính của bạn.
Đối với bài kiểm tra này, chúng ta cần thiết lập tài khoản Git trên máy tính, bạn có thể thực hiện việc này bằng các lệnh sau:
Mã:
git config --global user.name "hakase"
git config --global user.email "[emailprotected]"
Mã:
git clone https://[emailprotected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
Cam kết các thay đổi mới vào kho lưu trữ bằng các lệnh sau.
Mã:
git add .
git commit -m 'Add README.md file by hakase-labs'
Mã:
git push origin master
Bây giờ hãy mở dự án (howtoforge trong trường hợp của chúng tôi) từ trình duyệt web của bạn và bạn sẽ thấy một tệp README.md mới đã được thêm vào kho lưu trữ.
Điều này xác nhận rằng Gitlab đã được cài đặt thành công trên Ubuntu CentOS 7 với bộ nhớ 4GB.