centos 搭建git自动部署web应用

来源:大谷哥 分类: 技术杂文 发布时间:2018-03-13 10:24:17 最后更新:2020-03-30 浏览:515
版权声明:
本文为原创文章,转载请声明原文链接
温馨提示:
技术类文章有它的时效性,请留意文章更新时间以及软件的版本
更新时间:
2020-03-30 23:54:40

由于经常要搭建一些web服务器应用,而且我用的最熟的就是centos 7 了,但工作又是做开发,所以记录一下操作方法以便后期查阅(不适合linux小白)。

一、安装最新版本的git

官方地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

编译安装:

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.16.2.tar.gz
tar -zxvf git-2.16.2.tar.gz
cd git-2.16.2
./configure
make & make install

有安装错误具体解决,安装完成后,添加git命令:

建立软连接:ln -s /usr/local/bin/git /etc/bin/git

检查是否正常安装: git --version

二、添加git用户组及用户

用户组 : groupadd git

用户: useradd git -g git

设置用户密码: passwd git

禁止git用户ssh登录(这一步骤可以等后面配置完成后再操作),参考http://blog.csdn.net/lgyaxx/article/details/72954121

查看git-shell所在目录:which git-shell    #一般会是/usr/local/git-shell。

添加git-shell为git用户登录的运行脚本: 

①vim /etc/shells ,在文件最后添加上 /usr/local/git-shell

②usermod -s /usr/local/git-shell  

三、初始化仓库

cd /home/git

mkdir repos

mkdir repos/test

cd /repos/test

git --bare init

修改目录所有者为git

cd /home/git

chown -R git:git  repos

四、自动部署设置

定位到仓库目录下面的hooks目录:/home/git/test/git/hooks

修改编辑(post-receive文件最好不要在window创建):vim post-receive

填入以下内容

#!/bin/sh
DEPLOY_PATH=/home/www/xxx/ #网站应用的部署目录,应该先在该目录下面克隆一下仓库,以便能够执行下面的仓库更新
unset  GIT_DIR
cd $DEPLOY_PATH
git reset --hard
git pull
chown xxx:xxxx -R $DEPLOY_PATH    #重新修改网站目录的有属用户
(切换登录用户为git( su git),生成对应的密钥)

定位到/home/git/.ssh

生成登录密钥:ssh-keygen -t rsa -C "xxxx@xxx.com" 

生成文件位置选择在当前位置 /home/git/.ssh

新建文件authorized_keys并写入公钥:cat /home/git/.ssh/id_rsa.pub > authorized_keys

使用git账号登录服务器,在/home/www/xxx/目录下面进行代码的初始化:

git clone git@xxx.xxx.xx.x:/home/git/repos/test

注意:  /home/git/.ssh目录的权限必须是700, /home/git/.ssh/authorized_keys权限是644

四、远程克隆提交

git clone git@xxx.xxx.xx.x:/home/git/repos/test





php技术微信