第一步:創(chuàng)建一個(gè)git用戶僵蛛,用來運(yùn)行g(shù)it服務(wù):
adduser git
切換到/home下查看
ls -al //注意一定要查看git目錄的擁有者(必須是git)和所屬用戶組(可以是git或者root)
如果需要讓此用戶有root權(quán)限尚蝌,執(zhí)行命令:
root@ubuntu:~# vim /etc/sudoers
修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
git ALL=(ALL) ALL
保存退出,git用戶就擁有了root權(quán)限墩瞳。
第二步:創(chuàng)建證書登錄
進(jìn)入git目錄下:
cd /home/git
mkdir .ssh
cd .ssh
// 創(chuàng)建文件authorized_keys: 收集所有需要登錄的用戶的公鑰驼壶,就是他們自己的id_rsa.pub文件,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里喉酌,一行一個(gè)。
mkdir authorized_keys
vim authorized_keys
[備注:查看本機(jī) ssh 公鑰,生成公鑰]
a. 打開你的 git bash 窗口
b. 進(jìn)入 .ssh 目錄:cd ~/.ssh
c. 找到 id_rsa.pub 文件:ls
d. 查看公鑰:cat id_rsa.pub 或者 vim id_rsa.pub
如果找不到id_rsa.pub 就去 生成公鑰
1.如果通過上面的方式找不到公鑰泪电,你就需要先生成公鑰了:ssh-keygen
2.接著會(huì)確認(rèn)存放公鑰的地址般妙,默認(rèn)就是上面說的路徑,直接enter鍵確認(rèn)
3.接著會(huì)要求輸入密碼和確認(rèn)密碼相速,如果不想設(shè)置密碼直接不輸入內(nèi)容 按enter鍵
生成公鑰命令: ssh-keygen
第三步:初始化Git倉(cāng)庫(kù)
先選定一個(gè)目錄作為Git倉(cāng)庫(kù)碟渺,假定是/srv/sample.git
,在/srv目錄下輸入命令:
git init --bare four.git
Git就會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù)突诬,裸倉(cāng)庫(kù)沒有工作區(qū)苫拍,因?yàn)榉?wù)器上的Git倉(cāng)庫(kù)純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū)旺隙,并且服務(wù)器上的Git倉(cāng)庫(kù)通常都以.git結(jié)尾绒极。然后,把owner改為git:
chown -R git:git four.git
第四步:禁用shell登錄-測(cè)試是否密鑰登錄成功
出于安全考慮蔬捷,第二步創(chuàng)建的git用戶不允許登錄shell垄提,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
本地電腦git 測(cè)試秘鑰登錄是否成功
ssh git@yourserverip
第四步:克隆遠(yuǎn)程倉(cāng)庫(kù)
現(xiàn)在周拐,可以通過git clone命令克隆遠(yuǎn)程倉(cāng)庫(kù)了铡俐,在各自的電腦上運(yùn)行:
$ git clone git@server:/srv/four.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
第五步:git hook 自動(dòng)布署代碼
原理和流程
1,git用戶執(zhí)行g(shù)it push操作
2,遠(yuǎn)程倉(cāng)庫(kù)發(fā)現(xiàn)有用戶執(zhí)行了push操作,就會(huì)執(zhí)行一個(gè)腳本post-receive(鉤子)
3,在post-receive腳本中妥粟,將git倉(cāng)庫(kù)的代碼拷貝到web站點(diǎn)目錄下
因?yàn)楣镜捻?xiàng)目也是跑在此臺(tái)服務(wù)器上审丘,所以自動(dòng)部署代碼比較簡(jiǎn)單。
進(jìn)入到第三步初始化的git倉(cāng)庫(kù)目錄勾给,/srv/four.git/hooks
目錄下滩报,命令行執(zhí)行:
cp post-update.sample post-receive
vim post-receive
添加以下代碼到post-receive
文件
unset GIT_DIR
cd /data/wwwroot/four/four
git pull
然后保存即可;
最后修改post-receive
文件權(quán)限:
chown -R git:git post-receive