如何自动部署GitLab项目

如何自动部署

原理

  • GitLab有预制的钩子, 在代码提交/合并等事件中,会自动调用WebHoos, 即向该URL发送POST请求
  • 在布署服务器上监听该POST, 验证通过后执行相关的布置Shell脚本, 即可完成自动布署

配置环境

    1. 安装Python和Pip
  • 2.如果需要, 安装python的requests模块和argparse模块

    pip install requests
    easy_install argparse

    1. 下载监听脚本

    curl https://raw.githubusercontent.com/zacksleo/docker-hook/master/docker-hook > /usr/local/bin/docker-hook; chmod +x /usr/local/bin/docker-hook

  • 4.脚本安装完成后即可使用docker-hook 命令, 默认监听8555端口

    nohup docker-hook -t <auth-token> -c <command> &

其中, auth-token 替换为授权token, command替换为要执行的命令, 例如

auth-token为auto-deploy-pushserver,command为sh /mnt/pushserver/deploy.sh

则执行命令: docker-hook -t auto-deploy-pushserver -c sh /mnt/pushserver/deploy.sh

deploy.sh的内容为:

复制代码
git push origin dev

nohup+&命令为该进程设置为守护进程, 防止进程退出

  • 5.在GitLab的项目设置里面,设置Webhooks, 本例子中则为139.198.9.141:8555/audo-deploy-pushserver

    1. 注意, 如果需要部署多个hooks, 则需要通过--port配置不同的端口, 例如

    nohup docker-hook -t <auth-token2> -c <command2> --port 8556 &

参考

相关推荐
xiaok1 天前
把代码上传到gitee的时候,怎么忽略node_modules文件夹
git·gitlab·github
deeper_wind1 天前
OpenEuler部署gitlab(小白的“升级打怪”成长之路)
gitlab
-KamMinG2 天前
“从零到一:使用GitLab和Jenkins实现自动化CI/CD流水线”
自动化·gitlab·jenkins
柯南二号2 天前
【Gitlab】Ubuntu 20.04服务器部署Gitlab
git·gitlab
QX_hao2 天前
【gitlab】--安装部署
gitlab
Echoo华地2 天前
GitLab升级后仓库镜像信任证书导入问题
证书·gitlab·trust store·certificate·信任库·仓库镜像
一念一花一世界3 天前
DevOps实战(4) - 使用Arbess+GitLab+SourceFare实现Java项目自动化部署
gitlab·tiklab·arbess·开源cicd工具·sourcefare
赵孝正3 天前
GitLab 分支管理与 Push 问题全解析
大数据·elasticsearch·gitlab
wjs0403 天前
Git常用的命令
java·git·gitlab
至善迎风3 天前
版本管理系统与平台(权威资料核对、深入解析、行业选型与国产平台补充)
git·gitee·gitlab·github·svm