docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > gitlab-ci配置服务器自动拉取

gitlab-ci配置服务器自动拉取方式

作者:onejson

文章主要介绍了如何在GitLab中设置和使用Runner来实现自动化部署,包括手动设置Runner,配置.gitlab-ci.yml文件,编写和放置shell脚本,以及设置免密登录

1、项目中找到

settings->ci/cd->runner->Set up a specific Runner manually

2、这里我的 gitlab-runner 已经装好过了

我们需要到 安装 gitlab 的服务器中执行下

gitlab-runner register

这个命令,这时弹出的容器中需要输入 url和token,我们使用1 中找到的

输入完以后再输入描述,自己看着写,这时还会要求输入 Enter tags for the runner

这里我理解的tags是后面 .gitlab-ci.yml 文件中一tags,他们一致时就会触发,然后进行自动化部署

这里我们输入 auto-upload-test 确定后又让你输入

Enter an executor: docker, docker-ssh, parallels, ssh, custom, shell, virtualbox, docker+machine, docker-ssh+machine, kubernetes:

这里我们会用到 shell,到时候让 gitlab-ci.yml 调用 sh 文件,我们就输入个

shell

Enter tags for the runner (comma-separated):
auto-upload-test
Registering runner... succeeded                     runner=eG2jn6vJ
Enter an executor: docker, docker-ssh, parallels, ssh, custom, shell, virtualbox, docker+machine, docker-ssh+machine, kubernetes:
shell

确定后就注册成功了,这时我们可以看见刚才设置的 runner

3、这时我们打开项目中的 .gitlab-ci.yml

这里注意,前面有个点,这里我们需要把 tags修改成我们刚才设置的

stages:
  - deploy
deploy:
    stage: deploy
    script:
      - /root/autoupload.sh
    only:
      - master
    tags:
      - auto-upload-test  

不然会提示错误,并且执行不了

This job is stuck because you don't have any active runners online or available with any of these tags assigned to them: autopull

Go to project CI settings

这里的 autopull就是我们修改前的 tags

4、编写 sh 文件

并把 sh文件放到对应的位置中

#!/bin/bash
ssh root@192.168.*.* << ssh233
cd /usr/local/apache-tomcat-8.5.28/***
git pull origin master
pwd
ssh233

这里是利用免登录配置,把gitlab服务器上的 /root/.ssh/id_rsa.pub 里的内容复制到目标服务器中的 /root/.ssh/authorized_keys,就可以免密码登录了。

这里是在代码服务器上免密登录到目标服务器中,在目标服务器上面拉取代码

登录到对应要发布的服务器上,拉取 gitlab的代码,这样就能达到 git上传后能自动发布到对应的服务器上。这里的 * 号改成对应的ip地址与文件存放路径即可

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文