搭載git服務(wù)器并使用git hook 自動布署代碼

第一步:創(chuàng)建一個git用戶,用來運行g(shù)it服務(wù):

adduser git

切換到/home下查看

ls -al //注意一定要查看git目錄的擁有者(必須是git)和所屬用戶組(可以是git或者root)
image.png
如果需要讓此用戶有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文件里,一行一個。
mkdir  authorized_keys  
vim authorized_keys
[備注:查看本機 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.接著會確認(rèn)存放公鑰的地址,默認(rèn)就是上面說的路徑,直接enter鍵確認(rèn)
3.接著會要求輸入密碼和確認(rèn)密碼,如果不想設(shè)置密碼直接不輸入內(nèi)容 按enter鍵

生成公鑰命令: ssh-keygen


image.png

第三步:初始化Git倉庫

先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:

git init --bare four.git

Git就會創(chuàng)建一個裸倉庫,裸倉庫沒有工作區(qū),因為服務(wù)器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉庫通常都以.git結(jié)尾。然后,把owner改為git:

chown -R git:git four.git

第四步:禁用shell登錄-測試是否密鑰登錄成功

出于安全考慮,第二步創(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 測試秘鑰登錄是否成功

ssh git@yourserverip

第四步:克隆遠(yuǎn)程倉庫

現(xiàn)在,可以通過git clone命令克隆遠(yuǎn)程倉庫了,在各自的電腦上運行:

$ git clone git@server:/srv/four.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

第五步:git hook 自動布署代碼

原理和流程
    1,git用戶執(zhí)行g(shù)it push操作
    2,遠(yuǎn)程倉庫發(fā)現(xiàn)有用戶執(zhí)行了push操作,就會執(zhí)行一個腳本post-receive(鉤子)
    3,在post-receive腳本中,將git倉庫的代碼拷貝到web站點目錄下

因為公司的項目也是跑在此臺服務(wù)器上,所以自動部署代碼比較簡單。
進(jìn)入到第三步初始化的git倉庫目錄,/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
image.png

然后保存即可;
最后修改post-receive文件權(quán)限:

chown -R git:git post-receive

轉(zhuǎn)載自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

與:http://chenxu.cn.com/archives/1334

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,848評論 9 163
  • 一、常用終端指令 $ pwd用于查看當(dāng)前目錄 $ mkdir learngit 創(chuàng)建一個名為learngit的空目...
    天山雪蓮_38324閱讀 513評論 0 1
  • Git教程 一、Git簡介 1.1. Git的誕生1.2.集中式的vs分布式 二、安裝Git 三、創(chuàng)建版本庫 四、...
    曹淵說創(chuàng)業(yè)閱讀 1,023評論 0 2
  • 轉(zhuǎn)載 :作者 [zhangwang] @(前端開發(fā))[Git|工具]以前也看過一些關(guān)于git的視頻,可是覺得自己一...
    堅持編程_lyz閱讀 729評論 0 2
  • 每個成功的品牌,都有自己清晰的定位。而提起瑜珈品牌,人們也會想起梵音,那梵音就是成功的
    玉蘭9981閱讀 113評論 0 0

友情鏈接更多精彩內(nèi)容