gitolite離線安裝

1,概念說明

需要區分gitolite服務器、gitolite管理員、gitolite普通用戶三者的區別;

gitolite服務器是git服務器,gitolite管理員與git服務器可以是兩個服務器,gitolite管理員是第一個git用戶;

所有的git用戶的添加等操作必須是gitolite管理員使用git操作進行添加;就是git add/commit/push;

2,文件下載

找一個可以上網的機器,執行命令:

git clone git://github.com/sitaramc/gitolite

下載後把這個文件夾上傳到需要安裝gitolite的服務器上面;

必須使用這種方式,因爲安裝的時候需要查找gitolite/.git文件夾;

如果沒有.git文件夾,進行安裝的時候會出現如下錯誤:

git describe failed; cannot deduce version number

3,gitolite安裝

添加操作系統用戶git

adduser git

把gitolite管理員的公鑰上傳到/home/git下面,假設名字爲git_admin.pub;

使用git用戶進行gitolite安裝

mkdir bin  # 創建bin目錄用於安裝gitolite

./gitolite/install -to ~/bin  # 進行gitolite安裝

~/bin/gitolite  setup -pk ~/git_admin.pub # 這是進行git環境初始化的過程;

通過setup,會創建~/.gitolite文件夾,這裏面有config和key;

還會創建repositories文件夾,裏面會放倉庫;還有projects.list,存放倉庫名稱;

4,gitolite管理員初始化

git clone git@IP地址:gitolite-admin.git

此命令是在gitolite管理員的環境下執行的,由於使用了git_admin.pub進行了初始化,所以

這種情況下是可以clone下來的,會在當前目錄生成gitolite-admin文件夾,這裏面有

conf/gitolite.conf文件(記錄各個用戶權限) 和 keydir文件夾(存儲各個用戶公鑰);

gitolite管理員進行添加之後,必須使用git add/commit/push操作進行權限設置生效;

如果在conf/gitolite.conf文件中將管理員的權限刪掉,而且還上傳了到了服務器,

下一次就無法進行管理了,可以在git服務端進行如下操作:

把.gitolite/conf/gitolite.conf中的內容修改回來

使用命令gitolite compile進行恢復;

5,添加普通gitolite用戶

對於普通用戶生成公鑰私鑰

ssh-keygen -t rsa

生成之後需要把user.pub公鑰交給gitolite管理員,由管理員進行配置;

在conf/gitolite.conf文件中填寫用戶名user01,把用戶的公鑰文件user01.put方總keydir文件夾下面;

然後git add/commit/push

6,普通用戶git操作

配置.ssh/config文件,

host git-server
user user01
hostname 192.168.0.111
port 22
identityfile ~/.ssh/user01

這樣進行git clone git-server:/folder/xxx 的時候就可以使用.ssh/user01私鑰進行認證;

7,程序的方式進行git讀取

如果一個操作系統有git命令,是可以使用操作系統用戶進行git操作;

git clone [email protected]:/home/user01/abc.git 

在系統提示輸入密碼的時候輸入密碼;

注意這裏使用的是user01的用戶名密碼,必須保證user01對/home/user01/abc.git的訪問權限;

另外,/home/user01/abc.git可以是gitolite創建的repository中的文件夾,

也可以是把repository中的文件夾拷貝出來,放到別的地方,只要訪問權限足夠就使用git clone進行下載;

8,公鑰私鑰生成方式

ssh-keygen -t rsa -f filename 

可以生成以filename命名的公鑰私鑰,存儲於~/.ssh文件夾;

9,參考資料

https://www.worldhello.net/gotgit/05-git-server/040-gitolite.html 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章