美文网首页
Centos7系统下配置Git服务器(9)-- CI/CD 原生

Centos7系统下配置Git服务器(9)-- CI/CD 原生

作者: 我是李小胖 | 来源:发表于2020-01-21 10:42 被阅读0次

实现自动化部署的方式有很多,大家百度到的都是Jenkins。实际上CI/CD的方式还有很多。在博文中我至少列举了三种形式。第一种Jenkins 第二种TecmCity 第三种就是原生Git hooks实现。

Centos7.x Git服务器部署教程参考

0x1在服务器初始化一个远程git仓库

1) git initgit init --bare 的区别

初始化出来的仓库是不一样的,前者初始化的是一个普通的仓库,其中 .git 文件夹是隐藏的,并且能看见该仓库下所有的源码。而后者初始化出来的仓库中的文件,就是 .git 中的文件夹,但不能像前者那样直接浏览或修改仓库中的代码。

2) 使用 git init --bare 初始化一个远程仓库。

该仓库是用于项目部署的。在我们本地开发完成后,将项目push至该仓库后,将自动部署网站。

[root@git git]# git init --bar project.git
Initialized empty Git repository in /home/git/project.git/
[root@git git]# ls
project.git
[root@git git]# cd project.git/
[root@git project.git]# ls
branches  config  description  HEAD  hooks  info  objects  refs
[root@git project.git]# 

3) 网站的根目录

[root@git www]# chown -R git:git html
[root@git www]# cd html/
[root@git html]# ls
[root@git html]# ls
index.html  readme.md
[root@git html]#

4) 为远程仓库设置一个 hook

[root@git git]# cd project.git/
[root@git project.git]# ls
branches  config  description  HEAD  hooks  info  objects  refs
[root@git project.git]# cd hooks
[root@git hooks]# 
[root@git hooks]# cp post-update.sample post-update

vim编辑post-update

#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

#exec git update-server-info
unset GIT_DIR 
DIR_ONE=/var/www/html  #此目录为服务器页面展示目录 
cd $DIR_ONE
git init
git remote add origin /home/git/project.git
#git clean -df
git pull origin master
echo "同步完成"

根据自己的业务需求,修改脚本实现不同的功能。

该脚本添加可执行权限

[root@git hooks] chmod +x post-update

5) 在客户端提交代码检查/var/www/html是否有推送

[root@web01 project]# touch 404.html
[root@web01 project]# git add .
[root@web01 project]# git commit -m "add index1.html"
[master 8beace1] add index1.html
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 404.html
[root@web01 project]# git remote add origin git@192.168.0.109:/home/git/project.git
fatal: remote origin already exists.
[root@web01 project]# git push origin master
git@192.168.0.109's password: 
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 249 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote: Reinitialized existing Git repository in /var/www/html/.git/
remote: fatal: remote origin already exists.
remote: From /home/git/project
remote:  * branch            master     -> FETCH_HEAD
remote:    0ce3c62..8beace1  master     -> origin/master
remote: Updating 0ce3c62..8beace1
remote: Fast-forward
remote:  404.html | 0
remote:  1 file changed, 0 insertions(+), 0 deletions(-)
remote:  create mode 100644 404.html
remote: 同步完成!
To git@192.168.0.109:/home/git/project.git
   0ce3c62..8beace1  master -> master
[root@web01 project]# 

显示同步完成!证明hooks已经调用

[root@git hooks]# cd /var/www/html
[root@git html]# ls
404.html  index.html  readme.md
[root@git html]# 

到/var/www/html 目录中验证代码已经同步过来。

相关文章

网友评论

      本文标题:Centos7系统下配置Git服务器(9)-- CI/CD 原生

      本文链接:https://www.haomeiwen.com/subject/xhzszctx.html