標籤:git
CentOS git 伺服器搭建
1. 環境部署
系統內容:
伺服器端:CentOS 6.5 ip: 192.168.0.74
2. 安裝
2.1 伺服器端:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
vi /etc/yum.repos.d/epel.repo
-----------------------------------------------------------------------------------------------------
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1
-----------------------------------------------------------------------------------------------------
yum -y install git git-daemon
查看版本號碼:git --version
3. 安裝gitosis
gitosis 是Git使用者權限管理系統, 通過管理服務端的/opt/git/.ssh/authorized_key 檔案來執行對使用者權限的管理
yum install python python-setuptools
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis/
python setup.py install
(Finished processing dependencies for gitosis==0.2 表示安裝完成)
3.1 建立個人公開金鑰和私密金鑰(用於後面的git服務的管理員管理)
ssh-keygen -t rsa
3.2 建立git伺服器系統管理使用者
useradd -m git
passwd git
3.3 建立git倉庫儲存目錄
mkdir /opt/git
3.4 設定git倉庫許可權
chown git:git /opt/git
chmod 755 /opt/git/
3.5 初始化全域設定
git config --global user.name "zhu.zhihuan"
git config --global user.email "[email protected]"
3.6 配置gitosis
cp ~/.ssh/id_rsa.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa.pub //將該公匙匯入gitosis裡,本機才有git的系統管理權限
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
cat /tmp/id_rsa.pub >> /home/git/.ssh/authorized_keys //將root的公匙匯入到git目錄
chmod 600 /home/git/.ssh/authorized_keys
3.7 管理gitosis配置
git clone [email protected]:/gitosis-admin.git (hostname 為原生)
Receiving objects: 100% (5/5), done ( 登入成功)
cd gitosis-admin/ (gitosis.conf是git倉庫與許可權配檔案,keydir目錄是存放其它客戶機的公匙目錄)
4. 添加 - 其他使用者 ( Linux )
將其他使用者的 自已的公匙 上傳到 git 伺服器中
將 使用者公開金鑰存放在 /root/gitosis-admin/keydir 目錄中
4.1 將使用者公開金鑰匯入 git 目錄 ( home/git )
cat /root/gitosis-admin/keydir/jicki.pub >> /home/git/.ssh/authorized_keys
4.2 編輯 gitosis.conf 檔案
----------------------------------------------------------------------
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = [email protected]
#加一個名為 yumwei 的組
[group yumwei]
members = jicki #這裡的jicki對上面公匙檔案名稱
writable = yumwei #項目倉庫名
------------------------------------------------------------------------
4.3 提交到版本庫
git add /root/gitosis-admin/keydir/jicki.pub
git commit -a -m "Allow jicki write access to yunwei"
git push origin master
這時jicki便有許可權操作yunwei倉庫了,回到使用者機上
cd ~
mkdir /opt/yunwei
cd /opt/yunwei
echo "test " > test.txt
git init //初始化本地版本
git remote add origin [email protected]:yunwei.git //加到遠程版本庫中
git add .
git commit -a -m "哈哈哈,測試一下"
git push origin master
[測試是否已經提交到伺服器庫中] 在其他目錄 clone回來
cd /tmp
git clone [email protected]:yunwei.git
CentOS 6.5 GIT 伺服器搭建