Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

cài đặt gitolite trên centos 7

Gitolite là chương trình mã nguồn mở miễn phí, được sử dụng để setup git hosting trên một server trung tâm, với nhiều tính năng mạnh mẽ và khả năng kiểm soát truy cập khá tốt. Gitolite là sự lựa chọn hoàn hảo nếu bạn đang muốn lưu trữ nhiều repository git trên một máy chủ. Gitolite là lớp kiểm soát truy cập trên Git, do đó, bạn có thể cấu hình truy cập Git dựa trên người dùng.

Gilote cung cấp quyền truy cập cho nhiều user Gitolite, và kiểm soát quyền truy cập vào các repository Git. Bảng dưới đây thể hiện tổng quan về Gitolite :

gitolite config Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Điểm qua các tính năng :

Liên quan đến các tính năng của Gilote, chúng ta có thể liệt kê một số điểm nổi bật :

Ngôn ngữ rule rất mạnh mẽ (quyết định dựa trên tên nhánh / thẻ, tệp / thư mục được chạm, kích thước của tệp đã thay đổi, số lượng tệp đã thay đổi, v.v.).

Các tính năng tiện lợi để viết rule (repo groups, user groups, nhận thông tin người dùng từ LDAP, bao gồm các file, macro…).

Khả năng tùy biến cao, đặc biệt là các lệnh tùy chỉnh cho người dùng. Nhiều lệnh và option tích hợp.

User có thể tự tạo repo của chính họ và set quyền truy cập ( Nếu bạn cho phép họ làm điều này ).

Trong bài viết này, chúng ta hãy xem cách để cài đặt Gitolite Git server trên hệ điều hành CentOS 7 minimal server.

Chuẩn bị máy :

  • Hệ điều hành : CentOS 7 64 bit minimal server.
  • Địa chỉ IP : 192.168.1.150/24
  • Hostname : server1.anninhmang.local

Cài đặt phần mềm chuẩn bị :

Update toàn bộ server bằng lệnh :

[root@server1 ~]# yum update

Cài đặt những phần mềm đi kèm :

[root@server1 ~]# yum install autoconf git

Tạo một user cho Gilote :

Chúng ta cần tạo một user cho Gilote, cùng với set password cho user này. Sử dụng dòng lệnh :

[root@server1 ~]# adduser git
[root@server1 ~]# passwd git

Tạo SSH public key và copy nó vào git user :

Chúng ta cần tạo một SSH public key và copy nó vào Gilote server.

[root@server1 ~]# ssh-keygen

Kết quả trả về :

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

de:5f:11:3e:ab:91:c2:6e:3d:99:82:36:54:8a:fd:9d root@server1.unixmen.local

The key's randomart image is:

+--[ RSA 2048]----+

| |

| |

| . |

| . . . |

| oSo + |

| ..+o . + |

| ..o+oo+o |

| +.+oE+ |

| . o..o. |

+-----------------+

gitolite web interface Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Như đã thấy ở kết quả trả về, có 2 key đã được tạo ra. Một là private key, và một còn lại sẽ là public key. Bạn cần share public key này với bất kì ai muốn kết nối với chúng ta. Trong trường hợp này, chúng ta share public key với user “ git “. Lưu ý chúng ta đã tạo user “git” ở trên.

Đầu tiên chúng ta copy public key :

[root@server1 ~]# cp .ssh/id_rsa.pub sk.pub

Sau đó copy public key vào home directory của user “ git “ bằng dòng lệnh sau :

[root@server1 ~]# cp sk.pub /home/git

Trong trường hợp nếu copy key này từ remote system, bạn cần chạy dòng lệnh này :

[root@server1 ~]# scp sk.pub git@<ip-address>:/home/git

Bạn cần verify lại để đảm bảo key đã được chuyển thành công vào thư mục  home directory của user “git” :

[root@server1 ~]# ls /home/git/

gitolite admin Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Chạy command để update lại Bash :

[git@server1 ~]$ source .bash_profile

Như vậy là chúng ta đã hoàn tất xong các bước chuẩn bị. Tiếp tục sẽ đến bước chính, cài đặt Gitolite.

Cài đặt Gitolite :

Chuyển sang “git” user bằng command :

[root@server1 ~]# su – git

Tạo một thư mục tên bin trong thư mục home của user ‘ git ‘ :

[git@server1 ~]$ mkdir ~/bin

Clone git đến repository Gitolite :

[git@server1 ]$ git clone git://github.com/sitaramc/gitolite

Kết quả trả về :

Cloning into 'gitolite'...

remote: Counting objects: 9225, done.

remote: Total 9225 (delta 0), reused 0 (delta 0), pack-reused 9224

Receiving objects: 100% (9225/9225), 3.79 MiB | 260.00 KiB/s, done.

Resolving deltas: 100% (5269/5269), done.

gitolite rename repository Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Tiếp theo, tạo Gitolite symlink đến thư mục ~/bin :

[git@server1 ~]$ gitolite/install -ln ~/bin

Kết quả trả về sẽ không hiển thị bất kì thông điệp nào. Bạn sẽ chỉ thấy Gitolite symbolic link trong thư mục ~/bin :

[git@server1 ~]$ ls ~/bin

gitolite setup Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Cuối cùng, chạy Command để cài đặt Gitolite với SSH public key :

[git@server1 ~]$ gitolite setup -pk sk.pub

Kết quả trả về :

Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/

Initialized empty Git repository in /home/git/repositories/testing.git/

WARNING: /home/git/.ssh missing; creating a new one

 (this is normal on a brand new install)

WARNING: /home/git/.ssh/authorized_keys missing; creating a new one

 (this is normal on a brand new install)

gitolite tutorial Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Nếu kết quả trả về như hình trên, thì chúc mừng, bạn đã cài đặt thành công Gitolite.

Test Gitolite :

Để chắc chắn Gitolite đã hoạt động được bình thường, hãy chuyển sang tài khoản mà bạn đã tạo SSH key. Trong trường hợp này, người viết đã tạo SSH key từ tài khoản root.

[git@server1 ~]$ su – root

Thử clone gitolite-admin repository từ Gitolite server mới vừa được cài đặt :

[root@server1 ~]# git clone git@192.168.1.150:gitolite-admin

Bạn sẽ được yêu cầu nhập password của user root.

Kết quả trả về :

Cloning into 'gitolite-admin'...

The authenticity of host '192.168.1.150 (192.168.1.150)' can't be established.

ECDSA key fingerprint is ed:6b:ab:6d:b8:58:d0:f2:77:67:62:ef:90:51:26:ad.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.1.150' (ECDSA) to the list of known hosts.

remote: Counting objects: 6, done.

remote: Compressing objects: 100% (4/4), done.

remote: Total 6 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (6/6), done.

gitolite centos 7 Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Kiểm tra lại nội dung của gitolite-admin repository :

[root@server1 ~]# ls

gitolite server centos 7 install Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

[root@server1 ~]# ls gitolite-admin/

gitolite centos 7 config Cài Đặt Gitolite Trên Hệ Điều Hành CentOS 7

Như vậy là Gitolite đã hoạt động.

Xem thêm : Cấu Hình High Available Load-balancer Với HAProxy Và Keepalived

  • gitolite config
  • gitolite web interface
  • gitolite admin
  • gitolite rename repository
  • gitolite setup
  • gitolite tutorial

BÌNH LUẬN

Please enter your comment!
Please enter your name here