工作中常使用 webhooks 来实现自动部署,总写都放在 oneNote 上面了,体会不到分享的乐趣,现在拿出来进行分享,希望大家在工作中能够游刃有余
ubuntu 安装 git 客户端
sudo apt install git查看版本git --version
从线上克隆代码
git clone ?git 地址
准备钩子文件
* 创建并修改目录 ???mkdir -p /Data/wwwroot/hooks ???chown -R root:root ?/Data/wwwroot/hooks* 写入文件:每个项目两个文件 -- 入口文件+.sh文件 ???sudo -Hu apache touch /Data/wwwroot/hooks/funds-v1-update.php ???sudo -Hu apache touch /Data/wwwroot/hooks/funds-v1.sh ???chmod 700 funds-v1-update.php ???chmod 700 funds-v1.sh
???funds-v1-update.php 文件代码: ???????<?php ???????????????passthru(‘bin/sh /Data/wwwroot/hooks/funds-v1.sh‘);
funds-v1.sh 文件代码: ????????#!/bin/bash ???????WEB_PATH=‘/Data/wwwroot/crm.funds.com/‘ ???????WEB_USER=‘root‘ ???????WEB_USERGROUP=‘root‘ ???????echo "start master" ????????cd $WEB_PATH ???????#whoami ????echo "pulling source code ..." ????/usr/bin/git reset --head origin/master ????/usr/bin/git clean -f ????/usr/bin/git pull ????/usr/bin/git checkout master ????echo "changing permissions..." ????chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH ????echo "finished"
部署公钥配置
sudo -Hu apache ssh-keygen -t rsa ??????# 请选择 “no passphrase”,一直回车下去复制/root/.ssh/id_rsa.pub的内容并添加到部署公钥: ???????选择项目 > 设置 > 部署公钥 > 新建 > 粘贴到下面框并确认
添加 webhooks
选择 项目 > 设置 > Webhook >新建hook > 复制hooks/funds-v1-update.php 所在的网址 :http://hooks.koo49.com/funds-v1-update.php ????????令牌可选,建议写上 ???????稍过几秒,刷新页面查看hook状态,显示为绿色勾就 OK 了
配置钩子和项目服务器nginx
???? 配置 nginx ???????○ nginx 钩子配置 ???????○ nginx 项目配置 ???????详见:Nginx 配置虚拟主机三种方法 ???? 配置远程连接 ???????○ sudo -u root git clone git@git.coding.net:yourUrl/crm.funds.com.git ???????○ 首次必须要克隆一次,而且要给apache分配/Data/wwwroot的读写权限
使用 webhooks 实现自动部署
原文地址:http://blog.51cto.com/12750968/2110210