原來一直使用FileZilla來代碼部署,去年使用git,代碼版本管理,真TM好用,一起回顧下歷程!
一. 代碼部署方式及思路:
1. 使用FTP/SFTP工具,上傳代碼
2. git人工部署。1. 開發人員本地 - git push -> github/gitee 2. 使用ssh終端登錄服務器 git pull -> 服務器
3. git自動化部署。開發人員本地 -git push -> 服務器ssh - hooks -> git checkout -f --> 更新代碼
二. 自動化部署實現細節
1. 請先安裝git,linux參見git官網: https://git-scm.com/download/linux
2. 為了安全起見,新建一個專門用於代碼部署的無特權用戶
(1) useradd -m deployuser
(2) passwd deployuser (不建議不設置密碼)
3. 初始化一個新項目
3.1. (1) 新建一個目錄作為要部署代碼的根目錄,如:
mkdir /home/deploy
(2) 將新建目錄的所有者和組權限改為上述的 deployuser
chown -R deployuser:deployuser /home/deploy
(3) 初始化git倉庫
cd /home/deploy
git init
(4) 讓倉庫接受代碼提交
git config receive.denyCurrentBranch ignore
(5) 設置服務器更新鈎子.
cd .git/hooks
mv post-receive.sample post-receive(如沒有post-receive.sample文件,不要在windows下創建,否則有可能不成功,而應該mv post-update.sample post-update,把post-update)
vi post-receive(或使用最low的辦法本地編輯ftp上傳)
替換為一下
#!/bin/sh
unset GIT_DIR
cd ..
git checkout -f
(6) 授予post-receive可執行權限
chmod +x post-receive
(7) 添加公鑰,把每個人的公鑰收集起來放到服務器的/home/deployuser/.ssh/authorized_keys文件里(如沒有.ssh目錄和authorized_keys文件,請自行創建)就是ok了
服務器ssh訪問地址是:ssh://deployuser@ipaddress:/home/deploy/.git (ipaddress:服務器ip地址 )
(8) 回到本地倉庫,克隆服務器git倉庫
git clone deployuser@ipaddress:/home/deploy/.git
(9) 修改文件,上傳,就可以為所欲為了。。
git add . -> git commit -m "modify" -> git push -> 查看服務器是否已同步,且修改了工作區
end
