Mục lục bài viết
GitLab là gì?
GitLab là hệ thống self-hosted mã nguồn mở dựa trên hệ thống máy chủ Git dùng để quản lý mã nguồn của bạn. GitLab cung cấp giải pháp server một cách hoàn hảo và nhận được sự đánh giá cao từ cộng đồng. Hãy cùng Mắt Bão tìm hiểu thêm các thông tin quan trọng khác về GitLab là gì nhé!
Với GitLab, các tổ chức, cá nhân, doanh nghiệp có thể lưu trữ và quản lý kho code một cách khoa học, an toàn, truy cập nhanh chóng thông qua kết nối internet. GitLab cung cấp một dung lượng lưu trữ miễn phí cho người dùng và bạn có thể trả thêm phí nếu muốn tăng dung lượng.
Để tìm hiểu thêm về Git, Github là gì, độc giả nên tham khảo bài viết:
- GitHub là gì? Cách chia sẻ mã nguồn, tải code dễ dàng
Git là hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) được nhiều người ưa chuộng. Git giúp máy tính lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản từ kho lưu trữ. Tất cả những code đã được update và thông tin về người sửa đổi đều được lưu lại với Git.
Đặc điểm cần biết của GitLab là gì?
Hãy cùng Mắt Bão điểm qua một số những đặc điểm cần biết của GitLab gồm:
- Phiên bản GitLab
- Protected branches
- Tầng vật lý của GitLab
- System layout
- Components
Phiên bản GitLab
Các phiên bản của GitLab là gì? Hiện nay, GitLab hỗ trợ 3 phiên bản là:
- Gitlab community edition (CE) là phiên bản cộng đồng, mã nguồn mở, cung cấp qua Git từ kho lưu trữ chứa GitLab. Bản mới nhất của GitLab được các nhà phát triển release tại các nhánh stable và nhánh master.
- GitLab enterprise edition (EE) là Gitlab phiên bản doanh nghiệp, có sẵn không lâu sau khi phát hành bản CE, được cung cấp từ kho lưu trữ của gitlab.com. Khi một doanh nghiệp đăng ký GitLab sẽ nhận được sự support của GitLab BV khi gặp khó khăn trong quá trình cài đặt và sử dụng.
- Gitlab continuous integration (CI) là một giải pháp tích hợp được thực hiện bởi nhóm phát triển Gitlab.
Protected branches
Cho phép đọc hoặc ghi vào repository và các branches. Protected branches cấp quyền cho những người được phép commit và pushing code. Một protected branch gồm 3 điều cơ bản sau:
- Ngăn chặn việc push từ tất cả mọi người trừ user và master.
- Ngăn chặn việc push code lên branch từ những người không có quyền truy cập.
- Ngăn chặn bất kỳ ai thực hiện xóa branch.
Master branch được mặc định là protected branch. User cần được cấp ít nhất một quyền từ master branch để bảo mật branch.
Tầng vật lý của GitLab
- Kho lưu trữ: là nơi xử lý các dự án trong GitLab, các dự án hoặc sản phẩm có thể được lưu tại warehouse.
- Nginx có cách thức hoạt động giống như front-desk, người dùng đến Nginx và yêu cầu hành động được thực hiện bởi worker trong văn phòng.
- Cơ sở dữ liệu là các file của các metal file cabinets chứa các thông tin:
- Sản phẩm trong warehouse (siêu dữ liệu, issuse, các yêu cầu merge …).
- Người sử dụng đến front-desk (permissions).
- Redis là phần giao tiếp một broad với cubby holes nơi chứa các nhiệm vụ, yêu cầu cho worker.
- Sidekiq là một worker, công việc chủ yếu là xử lý việc gửi email, nhận nhiệm vụ từ Redis.
- A Unicorn worker là một nhân viên xử lý các nhiệm vụ nhanh chóng và dễ dàng, làm việc cùng với Redis, bao gồm:
- Kiểm tra quyền truy cập bằng cách kiểm tra các session của người dùng được lưu trữ trong Redis cubby hole.
- Làm nhiệm vụ cho Sidekiq.
- Lấy công cụ từ warehouse hoặc di chuyển mọi thứ xung quanh.
- GitLab-shell: là loại thứ ba của worker, thực hiện nhiệm vụ tạo các đơn đặt hàng từ một máy fax (SSH) thay vì front-desk (HTTP). GitLab-shell giao tiếp với Sidekiq qua Redis và hỏi những câu hỏi nhanh của Unicorn worker hoặc trực tiếp hoặc qua front-desk.
- GitLab enterprise edition là tập hợp các quy trình và hoạt động kinh doanh được điều hành bởi office.
System layout
Khi nói đến Git trong hình ảnh có thể hiểu thư mục home của người dùng Git là /home/git.
Repositories bare trong đường dẫn /home/git/repositories. Gitlab là một ứng dụng được viết bằng ngôn ngữ ruby on rails. Do đó, để biết rõ các hoạt động bên trong bạn có thể tìm hiểu về hoạt động của ruby on rails.
Ứng dụng GitLab-shell được cài đặt tại thư mục: /home/git/gitlab-shell cho phép sử dụng kho dữ liệu qua SSH.
Components
Dưới đây là sơ đồ kiến trúc Components được đơn giản hóa để có thể hiểu kiến trúc của GitLab.
Tại sao nên dùng GitLab?
Những lý do khiến bạn cần sử dụng GitLab là gì?
- Mang lại sự tiện lợi cho các lập trình viên khi cần lưu trữ, tải lên, tải xuống code.
- Kiểm soát các thay đổi trong code nhanh chóng, chính xác.
- Hỗ trợ việc quản lý, phân phối công việc trong các dự án lập trình hiệu quả hơn.
Cách cài đặt GitLab
Dưới đây, Mắt Bão sẽ hướng dẫn các bạn cách cài đặt GitLab trên 2 nền tảng Windows và Linux. Hãy cùng tìm hiểu chi tiết!
Cách cài đặt GitLab trên Windows
Bước 1: tạo một thư mục mới đặt tên GitLab-Runner trong thư mục hệ thống. Bạn nên tạo nó trong ổ đĩa cài đặt của máy thông thường là ổ C, C:GitLab-Runner.
Bước 2: tải phiên bản GitLab tương ứng với hệ điều hành của máy:
- GitLab 32bit
- GitLab 64bit
Copy file cài vừa tải về vào thư mục đã tạo và đổi tên file gitlab-runner.exe.
Bước 3: Mở command prompt lên và nhập dòng code sau vào.
cd C:GitLab-Runner .gitlab-runner.exe install .gitlab-runner.exe start
Bước 4: Đăng ký tài khoản GitLab
- Dừng chương trình GitLab đang chạy bằng câu lệnh: gitlab-runner.exe stop
- Chạy câu lệnh đăng ký tài khoản: gitlab-runner.exe register
- Tại đây, bạn sẽ nhận thông báo lỗi với chữ đỏ, hãy dừng lệnh cài đặt bằng lệnh stop: gitlab-runner.exe register stop
- Thông báo “Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )”. Bạn nhập địa chỉ URL vào: https://gitlab.com
Thông báo “Please enter the gitlab-ci token for this runner” yêu cầu nhập token. Để lấy token bạn phải đăng ký tài khoản gitlab. Sau đó, đăng nhập tài khoản chọn Setting => CI/CD, kéo thanh trượt xuống mục “Set up a specific Runner manually” để lấy token, nhập vào command prompt.
xxx (token của bạn)
Thông báo “Please enter the gitlab-ci description for this runner”. Yêu cầu nhập mô tả cho runner: My-runner (bạn có thể dùng tên khác hoặc chỉnh sửa sau).
Thông báo “Please enter the gitlab-ci tags for this runner (comma separated):” nhập thẻ tag cho runner: my-tag,another-tag.
Thông báo cài đặt thành công “Registering Runner… succeeded”. Nhập vào Runner executor: docker.
Nếu chọn docker, bạn sẽ được hỏi dùng hình ảnh mặc định cho các projects: alpine:latest.
Cách cài đặt GitLab trên Linux
Chuẩn bị máy chủ để cài đặt GitLab:
- Ubuntu >= 0877074074-bit
- Một CPU có một hoặc 2 nhân
- RAM: 1GB hoặc 2GB
- Cần kết nối internet
Thao tác thực hiện:
Bước 1: Cài đặt và cấu hình
Sudo apt-get install openssh-server Sudo apt-get install postfix
Bước 2: Tải gói omnibus và cài đặt
Wget https://downloads-packages.s3.amazonaws.com/ubuntu-12.04/gitlab_7.9.2-omnibus-1_amd64.deb Sudo dpkg –i gitlab_7.9.2-omnibus-1_amd63.deb
Bước 3: Cấu hình GitLab
[external_link offset=2]Sudo gitlab-ctl reconfigure
Bước 4: Vào Hostname và đăng nhập
Username: root Password: 5iveL!fe
Lưu ý khi sử dụng GitLab
Ngày nay, GitLab trở nên rất phổ biến không chỉ đối với cá nhân người lập trình mà còn ở các nhóm, tổ chức, doanh nghiệp. Nhờ khả năng quản lý người dùng trên hệ thống một cách hiệu quả, dưới đây là những tính năng quản lý của GitLab, quản lý các nhóm, bảo mật hệ thống,…
Thêm người dùng
Tính năng thêm người dùng chắc chắn không thể thiếu. Đặc biệt khi thực hiện các dự án lớn. Cũng giống như phần lớn các công cụ quản trị khác, ngoài thông tin cơ bản, GitLab còn cho phép bổ sung thêm các tài khoản Skype, LinkedIn, Twitter (nếu muốn).
Ảnh đại diện là một yếu tố quan trọng khi thêm người dùng mới, ảnh sẽ xuất hiện bên cạnh tên người dùng để các thành viên trong dự án thấy. Những thông tin khác có thể tìm thấy bên trong trang hồ sơ.
Việc thêm người dùng mới trong GitLab cũng có thể đặt ra giới hạn về số lượng. Khi thêm người dùng mới, bạn cũng có thể bỏ cờ Admin để người này không có các quyền điều khiển của người quản trị.
Tạo nhóm
Không gian nhóm là nơi để bạn đặt các dự án của mình vào và phân quyền cho các thành viên bên trong nhóm. Trong trường hợp, bạn tạo một dự án mới trong nhóm thì tất cả thành viên trong nhóm sẽ tự động được cấp quyền truy cập vào dự án.
Khi tạo một nhóm mới bạn sẽ được cấp quyền Owner(cho phép chỉnh sửa, xóa nhóm và quản lý người dùng trong nhóm). Các người dùng mới được thêm vào có thể được chia làm 5 mức:
- Guest
- Reporter
- Master
- Developer
- Owner.
Bằng cách sử dụng nhóm bạn có thể dễ dàng ứng dụng trong việc quản lý, chia sẻ công việc, dự án. Khéo léo tận dụng các quyền người dùng để đảm bảo tính bảo mật của dự án ngay cả đối với các thành viên trong nhóm.
User Permissions
Sở hữu 5 mức phân quyền khác nhau, GitLab mang đến khả năng đa dạng phân quyền người dùng trong hệ thống. Bên cạnh Owner thì chỉ có Master có thêm quyền truy cập, Master cũng có thể tạo các dự án trong nhóm.
Bảo vệ Branches
Bảo vệ các Branches quan trọng là điều không thể thiếu khi quản lý các dự án code. Bằng cách đánh dấu Protected, những người dùng được cấp quyền developer hoặc thấp hơn sẽ không thể thực hiện việc push thẳng vào. Điều này sẽ đảm bảo việc tránh khỏi các rủi ro không đáng có như mất dữ liệu.
Khả năng hiển thị Project
GitLab mang đến 3 kiểu protect là private, internal và public.
- Public sẽ cho phép mọi người xem dự án, pull code của bạn. Kể cả họ không có tài khoản trên hệ thống. Người dùng có tài khoản trên hệ thống dù không được chấp nhận truy cập vẫn có thể tạo các merge request hoặc mở một issue.
- Private dùng để chỉ những dự án chỉ hiển thị với người được thêm vào dự án. Các quyền của người dùng được mời sẽ phụ thuộc vào phân quyền do người quản trị quyết định khi thực hiện mời.
- Internal dùng để giới hạn những người có tài khoản trong hệ thống GitLab. Những người dùng đã đăng nhập sẽ được phân quyền tự động là Guest.
Bài viết từ “Mắt Bão – nhà cung cấp dịch vụ thuê web hosting hàng đầu” vừa tổng hợp những thông tin về GitLab là gì? Đây là một trong những công cụ mạnh mẽ và ngày một phổ biến trong giới lập trình.
Việc sử dụng thuần thục GitLab mang đến những lợi thế nhất định cho các cá nhân, tổ chức và doanh nghiệp. Nếu bạn là một lập trình viên hoặc mong muốn theo đuổi công việc của một lập trình viên, chắc chắn không thể bỏ qua công cụ này. [external_footer]