webhook开发环境部署
2017-08-19 20:22
113 查看
webhook 高大上的开发环境部署
IP | 作用 |
---|---|
10.0.113.131 | 程序猿的电脑 始终在这里写代码 然后 push到git上 |
. * . * . * | 线上测试环境 保证webhooks能访问到 它始终从git上pull下来 |
部署公钥 –程序员电脑及测试环境都需要部署公钥
yum -y install git #如果没有安装git,执行此步骤
ssh-keygen -t rsa -b 4096 -C "915790916@qq.com" #此处邮箱不固定,以下可能需要再改,直到能用就行 cat id_coding_rsa.pub #复制此文件内容到coding.net 项目 ->设置 ->部署公钥 ------------------------------------------------------------------- vi /root/.ssh/config #编辑新文件写入以下内容 Host git.coding.net User 915790916@qq.com #此处邮箱与上面填写的邮箱对应 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa #公钥文件存放路径 ------------------------------------------------------------------- ssh -T git@git.coding.net #检测设置,出现 successfully 即可
git相关操作
cd /data/www git clone 地址 #将远程仓库克隆到本地 git status #查看在哪个分支下面 git branch my #新建my分支 git branch develop #新建develop分支 git branch online #新建online分支 git branch #查看所有的分支 git add . #加入到本地仓库 git commit -a -m 'init' #提交到版本库,在没有commit之前,在任何分支下 写的东西 属于所有的分支 也就是所有的分支都能看到 git checkout develop git merge my #切换到develop分支,并与my分支合并 git push origin develop
在程序猿电脑上 写一个脚本 自动切换分支并提交代码
vim auto_git.sh
#!/bin/bash cd /data/www/91edu.com/91edu.com #找到 有.git的目录 git checkout my git add . git commit -a -m 'init1' git checkout develop git merge my git push origin develop git checkout my
chmod +x auto_git.sh #赋予脚本执行权限 sh auto_git.sh #执行脚本
在c
9efa
oding.net 上配置webhooks
输入地址 http://hook.geniusbarst.cn/sync.php保证权限正确 浏览器打开正常 才行
vi /sync.php #每次有push的时候,就会调用这个文件
为了查看操作用户是谁,写入下面代码,看到用户之后把第二行放开,第三、四行注释
file_put_contents('date.log',date('Y-m-d h:i:s'),FILE_APPEND); #追加方式写日志 // exec('./sync.sh'); #实际工作时取消此行注释 exec('whoami',$out); #查看执行此操作的用户 var_dump($out);
在浏览器中访问
http://www.geniusbarst.cn/sync.php显示 执行的用户 可能是 www apache nobody 以www为例子
vi /etc/passwd 将www用户 /sbin/nologin 改为 /bin/bash su www #切换为www用户 重新执行上面部署公钥操作,注意存放目录不再是/root/.ssh,应该是www用户的目录,即/home/www/.ssh 一定要认真比对,确保每个细节都不出错 ssh -T git@git.coding.net #出现 successfully 即可 ,如果不行 ,换个邮箱再来一次 chmod 600 config #修改config权限为600 cd /data/www/91edu git clone 地址 #fatal: could not create work tree dir 'test'.: Permission denied 这一步有可能会报上述错误,是因为当前用户在当前文件夹没有写权限,切换回root用户改变一下文件夹权限就好了
编写脚本,自动执行pull操作
vi sync.sh
#!/bin/bash /usr/bin/git pull origin develop 2>>error.log #自动pull操作并写日志
过程中最复杂的应该是www用户那一步,找到用户以后还要给予其权限,这一步过了就很简单了。
成功以后每次提交要手动执行一次auto_git.sh文件,下一篇会介绍一种更快捷的方式,通过sublime的快捷键实现push操作
相关文章推荐
- web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
- 【Yeoman】热部署web前端开发环境
- web应用从开发环境自动部署至tomcat的方法
- 使用OSS JavaScript的sdk进行web端直传,开发环境下测试没有问题,但部署到服务器上或者打包到IOS原生包中出现了问题。
- 在OS X上部署Java web开发环境
- 通过MyEclipse部署web应用程序开发环境
- java web 开发环境部署,zving框架
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
- web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
- 打造jenkins+docker+nodejs项目的自动部署环境(webhook)
- web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
- windows下vue+webpack前端开发环境搭建及nginx部署
- Linux学习掌握(二):CentOS系统中搭建java开发环境与部署web项目
- eclipse进行Web开发环境配置-设置自动部署WEB项目到我们配置的tomcat服务器
- 使用Axis2开发Web服务 --- 环境部署
- java web入门级开发全过程-环境搭建,开发,发布,部署,总结
- web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
- docker web应用多容器开发环境部署
- Mac下JavaWeb开发环境部署