gitlab+gitlab-runner同步代码并使用docker执行

9,264次阅读
没有评论

共计 2410 个字符,预计需要花费 7 分钟才能阅读完成。

说明

用于代码托管在 gitlab,提交后通过 gitlab-runner 实现自动部署,基于 docker 运行代码

在宿主机安装

  • 安装 Git
    查看是否已经安装,建议版本安装 2.x,因为低版本会在 gitlab-runner 中报错

      # 查看安装的版本
      git --version
    
      # 如果版本低于 2.x,则移除重新安装
      yum remove git
    
      # 安装镜像源
      yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
      yum install git -y
      # 更新确保是新版本
      yum update git
    
      # 查看安装的版本
      git --version
  • 安装 gitlab

    gitlab-runner 不建议在 docker 运行,因为权限和一些不必要的内存限制使用问题,安装教程查看 Centos 7 安装 gitlab

  • 安装 gitlab-runner

    查看 Install GitLab Runner manually on GNU/Linux

  • 安装 docker

    查看 Linux Centos7.9 安装 docker

  • 安装 docker-compose

    查看 Linux Centos7.9 安装 docker-compose

配置 gitlab-runner 用户免密登录

  1. 切换至 gitlab-runner 用户

    su gitlab-runner
    cd ~
  2. 生成密钥

    ssh-keygen -t rsa # 后面一直按回车即可 

    完成后会在 /home/gitlab-runner/.ssh 目录生成 id_rsa 和 id_rsa.pub 两个文件

  3. 导入密钥 (这里的场景是 runner 和需要部署的服务器是同一台服务器, 如果不是同一台服务器, 将密钥导入到对应服务器)

    # 回到 root 用户
    exit 
    # 导入 gitlab-runner 用户密钥
    cat /home/gitlab-runner/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
    # 重启
    systemctl restart sshd
  4. 测试

    su gitlab-runner
    ssh root@服务器 ip # 输入完成后回车, 会直接以 root 身份登录服务器 

注册 runner

在如下位置获取项目的注册信息
gitlab+gitlab-runner 同步代码并使用 docker 执行

然后执行下面的命令注册 runner

[root@localhost ~]# gitlab-ci-multi-runner register
Runtime platform                                    arch=amd64 os=linux pid=4387 revision=98daeee0 version=14.7.0
Running in system-mode.                            

Enter the GitLab instance URL (for example, https://gitlab.com/):
输入注册地址
Enter the registration token:
输入注册令牌
Enter a description for the runner:
[localhost.localdomain]: 描述, 可以随便写
Enter tags for the runner (comma-separated):
标签 与 .gitlab-ci.yml 文件中的 tags 对应
Registering runner... succeeded                     runner=2aZHpdoN
Enter an executor: kubernetes, custom, ssh, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, parallels, shell:
shell # 这里选择 shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

验证注册信息

[root@localhost ~]# gitlab-ci-multi-runner list
Runtime platform                                    arch=amd64 os=linux pid=5062 revision=98daeee0 version=14.7.0
Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
node-build                                          Executor=shell Token= 注册令牌 URL= 注册地址

在服务器上拉取项目

因是基于 http 拉起的项目, 需要先在服务器拉取项目, 以便保存 git 的账号和密码, 如果是使用的 ssh 方式拉取项目, 则可以不做此步骤, 在 gitlab 中配置服务器的部署密钥即可

# 配置 git 永久保存账号密码
git config --global credential.helper store
# 拉取代码
cd /home/project
git clone -b master 仓库地址
输入账号密码拉取代码 

.gitlab-ci.yml” class=”reference-link” href=”#”> 编写 .gitlab-ci.yml

可以参考下面的配置

# usermod -aG docker gitlab-runner

stages:
  - deploy

variables:
  PROJECT_DIR: /home/project # 项目目录
  PROJECT_SAAS_NAME: 项目名称 # 如 test

deploy_saas_test:
  stage: deploy
  before_script:
    - git --version # 检测是否安装 git
    - docker -v # 检测是否安装 docker
    - docker-compose -v # 检测是否安装 docker-compose
  script:
    - ssh -tt root@172.18.26.69 

标签:git
docker
gitlab

文章来源: gitlab+gitlab-runner 同步代码并使用 docker 执行

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2022-01-22发表,共计2410字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)