gitlab-ci自动部署

gitlab-ci 使用gitlab-runner进行自动部署

一.前言
  1. gitlab-ci作用: gitlab 提交代码/打tag时 自动更新代码
  2. gitlab-ci运行原理:
  3. gitlab运行逻辑
    gitlab-ci 和 gitlab-ci servergitlab-ci-runner 两部分
    gitlab-ci server负责调度,触发runner
    gitlab-runner 执行自动化CI (测试、编译、打包)
二.安装过程
1.安装runner

安装runner的服务器可以是gitlab的部署服务器 也可以是其他服务器

# 在root下执行
# 下载gitlab-runner
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-10.5.0-1.x86_64.rpm
# 安装
rpm -ivh gitlab-runner-10.5.0-1.x86_64.rpm 

下面提供一些gitlab-runner的操作(可忽略)

# 在root下执行
# 删除服务
gitlab-runner uninstall
# 添加服务
gitlab-runner install --working-directory /home/jack --user jack
# 重启服务
gitlab-runner restart
# 查看状态
gitlab-runner status
输出:gitlab-runner: Service is running!
# 查看是否生效
ps -ef | grep gitlab-runner
输出:root     17454     1  0 Mar23 ?        01:18:03 /usr/bin/gitlab-runner run --working-directory /home/jack --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user jack
2.注册runner

把runner信息注册给gitlab-ci 服务 告诉CI ”我是谁,我能做什么“

先去gitlab项目界面 ->Settings –> CI/CD –> Runners->exp

在这里插入图片描述
找到urk和token 后注册 runner

# 在root下执行
gitlab-runner register
WARNING: Running in user-mode.                     
WARNING: The user-mode requires you to manually start builds processing: 
WARNING: $ gitlab-runner run                       
WARNING: Use sudo for system-mode:                 
WARNING: $ sudo gitlab-runner...                   

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.1.200/   # 填写刚才看到的URL
Please enter the gitlab-ci token for this runner:
eHMqXjw9ELDy2StsRWXT    # 填写刚才看到的Token
Please enter the gitlab-ci description for this runner:
[dev_srv]:web_dev       # 描述一下该runner,和下面的tags相同即可 
Please enter the gitlab-ci tags for this runner (comma separated):
web_dev                 # 该runner起个名字
Whether to run untagged builds [true/false]:
[false]:                # 直接回车
Whether to lock the Runner to current project [true/false]:
[true]:                 # 直接回车
Registering runner... succeeded                     runner=eHMqXjw9
Please enter the executor: shell, ssh, docker+machine, docker, docker-ssh, parallels, virtualbox, docker-ssh+machine, kubernetes:
shell                  # 填写runner执行时需要使用什么执行器,一般都填shell或者docker。
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

注册成功
在这里插入图片描述

3.编写.gitlab-ci.yml文件
stages: 
    - deploy
deploy:
    stage: deploy
    script:
      - cp -r * /home/wwwroot/test.bgcolor.cn
    only:
      - dev
    tags:
      - web_dev

stages:下的deploy说明在代码提交后CI需要执行deploy节点的内容。
deploy:的script就是一个个shell命令,这里需要注意每个命令都以杠+空格开头。
only:只有向dev分支提交代码时才生效。
tags:只有拥有该tags的Runner才需要执行。

4.测试

这里我们在本地推一下dev分支的代码测试ci的自动化部署服务
推送分支后 在项目的CI/CD项可以看见 自动化失败
点击failed查看具体原因
在这里插入图片描述
在这里插入图片描述
发现是权限问题
这里gitlab-ci服务的用户默认是 gitlab-runner 只需将需要自动化部署的项目 赋予 gitlab-runner 权限就可以了
chown -R gitlab-runner:gitlab-runner ./test.bgcolor.cn
让我们推送dev分支再测试一下
在这里插入图片描述推送成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值