您的位置:首页 > 其它

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操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: