git hook自动化部署

一、建立本地仓库

cd 项目路径
git init
git add .
git commit -m "日志"

二、建立服务器git用户

  yum install -y git
    groupadd git
    useradd -g git git
    #这里没有加git禁止登陆,因为nologin 总是报错
    cd /home/git
    git init --bare xxx.git
    cd xxx.git

三、添加远程连接

 git remote add origin 远程仓库地址

四、添加git登陆密钥

  ssh-keygen -t rsa -P
    #-P表示密码,-P ‘‘ 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。

  复制 .ssh 中的id_rsa.pub 到 远程/home/git/.ssh/authorized_keys/
  #等待添加  authorized_keys 权限 以及服务器生成
  

五、添加钩子函数

/home/git/xxx.git/hooks/post-receive

post-receive内容:

#!/bin/sh

#判断是不是远端仓库

IS_BARE=$(git rev-parse --is-bare-repository)
if [ -z "$IS_BARE" ]; then
echo >&2 "fatal: post-receive: IS_NOT_BARE"
exit 1
fi

unset GIT_DIR
DeployPath="/alidata/www/jkdzz"

echo "==============================================="
cd $DeployPath
echo "deploying the test web"

六、git文件夹修改权限

chmod -R git:git /home/git/xxx.git

七、新建部署仓库

 cd www
    git init XXX
    chown -R git:www ../XXX
    git remote add origin www/XXX

八、推送一下自己的项目到远程服务器

git push origin master 

九、www可能会无法创建文件,所以要设置资源区7,临时文件,777权限好一点

原文地址:https://www.cnblogs.com/dtc233/p/8996697.html

时间: 2024-11-06 13:26:23

git hook自动化部署的相关文章

Git实现自动化部署案例实战

通过以上的学习,我们已经对git非常熟悉了,可以设计一个自动化部署脚本: q??约定: 1.已经有一个可以上线的代码在git仓库. 2.我们现在要做10个集群节点的一键部署,秒级回滚. 3.所有的web服务,都应该使用普通用户.(强烈建议) 4.所有的web服务都不应该监听80端口,除了负载均衡. q??自动化部署思路大纲: 1.获取最新代码 2.编译(可选) 3.配置文件(软连接或者拷贝). 4.打包(tar,加速传输) 5.文件分发(Scp Rsync Salt)(不需要密码验证) 6.将目

git hook 自动部署

1. 当前虚拟站点根目录的 .git/ 权限 2. 当前项目裸仓库创建 hooks/post-receive 文件,并给予x 的权限 3. 复制如下内容 #!/bin/sh unset $(git rev-parse --local-env-vars) REPO="[email protected]:edc2.git" #BRANCH=`echo $refname | sed -n 's/^refs\/heads\///p'` #BRANCH_DIR="/root"

使用 Git Hook 实现网站的自动部署

自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生.不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件.服务器定时任务去 build 最新的源码,还是有更高级的做法? 目前我在使用 Git Hook 来部署自己的项目.Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用.其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本. 下面是

使用 GitHub / GitLab 的 Webhooks 进行网站自动化部署

老早就想写这个话题了,今天正好有机会研究了一下 git 的自动化部署.最终做到的效果就是,每当有新的 commit push 到 master 分支的时候,就自动在测试/生产服务器上进行 git pull 拉取最新的代码,免去了程序猿兼职运维 ssh 上去拉代码部署的重复性工作.我们也要 Agile development 不是?什么敏捷开发啊,极限编程啊,快速迭代啊,持续集成啊,精益创业啊,口号怎么高端怎么来,最后就是写了个自动化脚本…… 一.自动化部署脚本 首先要保证要部署的 Web 目录就

jenkins+git+maven搭建自动化部署项目环境

简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/jacky-        lulu/cxf_demo-Maven-Webapp)     系统:centos6.5 maven: Apache Maven 3.3.9 git:git version 2.0.0 1.首先安装git,看以前另外一篇博客 http://www.cnblogs.co

Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记(1)

前言    持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境    我这边建立的标准开发环境如下:    1. Maven做项目管理:    2. Git做代码管理:    3. SpringMVC+Spring+Mybatis搭建的程序框架:    4. Mysql作为数据存储,Druid做

运维与自动化系列④自动化部署基础与git

自动化部署基础与git 一:上一篇的代码是保存在本地,但是在生产环境当中是由版本控制进行代码管理,以便于发布代码和回滚,一般是使用gitlib比较多,另外还有用svn的公司,趋势是git为主,因此本文以git为使用对象 1.1:在git服务器新建一个web组和项目web-demo: 准备web页面并提交至git服务器(此处我用一个简单的html项目,大家如果没有现成的项目可以自己建一个简单的index.html页面即可):#准备提交代码目录 # mkdir /source/web/web-dem

Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记

前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境 我这边建立的标准开发环境如下: 1. Maven做项目管理: 2. Git做代码管理: 3. SpringMVC+Spring+Mybatis搭建的程序框架: 4. Mysql作为数据存储,Druid做连接池: 5. unitils作为测

Jenkins+Maven+Git搭建持续集成和自动化部署的配置

前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境 我这边建立的标准开发环境如下: 1. Maven做项目管理: 2. Git做代码管理: 3. SpringMVC+Spring+Mybatis搭建的程序框架: 4. Mysql作为数据存储,Druid做连接池: 5. unitils作为测