美文网首页
Gitlab CI/CD的使用【简】

Gitlab CI/CD的使用【简】

作者: 阿当运维 | 来源:发表于2021-04-16 14:40 被阅读0次

    使用gitlab 的CI/CD流程

    1.安装runner
    2.注册runner
    3.编写流水线脚本

    一. 安装Runner (本文的安装方式)

    Docker 上安装runner 文档地址:https://docs.gitlab.com/runner/install/docker.html

    docker run -d --name gitlab-runner --restart always \
         -v /srv/gitlab-runner/config:/etc/gitlab-runner \
         -v /var/run/docker.sock:/var/run/docker.sock \
         --add-host=mygitlab.com:192.168.1.112 \
         gitlab/gitlab-runner:latest
    

    如果在测试环境下需要指定域名host的可以加参数 --add-host=www.test.com:192.168.1.10,省去以后进了容器在手动修改的麻烦。
    附:
    Linux上直接安装runner

    curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
    yum install gitlab-runner
    

    二.注册Runner

    容器启动后,进入到容器,输入命令:

    gitlab-runner register
    

    输入gitlab地址, token, 描述, tag, 用什么执行。


    image.png

    token的获取方法(gitlab-->管理中心-->概述-->runner)

    image.png

    添加成功。刷新页面


    image.png

    可进入到容器后免交互来注册:

    root@c01b8d257966:/# gitlab-runner register \
     --non-interactive \
     --executor "shell" \
     --url "http://192.168.1.112:85" \
     --registration-token "WWmieRLSrNcs268VxQWe" \
     --description "252-runner" \
     --tag-list "ceshi" \
     --run-untagged="true" \
     --locked="false"
    
    image.png

    三.流水线脚本

    dev分支创建一个.gitlab-ci.yml的文件,我这里已经创建好了


    image.png

    内容:
    stages:内容的3个阶段
    为了方便看,任务名我这里写的中文,不过不影响。
    stage和 开始的stages里定义的是对应的。
    tag: 这里写的是你注册git-runner的tag!!!!
    only:只在dev触发的时候才运行。

    stages:
    - build
    - test
    - devploy
    goujian:
      stage: build
      tags:
      - abc
      script:
      - echo "代码编译......"
      only:
        - dev
    测试:
      stage: test
      tags: 
      - abc
      script:
      - echo "测试代码......"
      only:
        - dev
    项目上线:
      stage: devploy
      tags:
      - abc
      script: 
      - echo "$USER 部署代码......"
      - scp index.html root@192.168.1.112:/var/www/html/
      only:
        - dev
    

    。。。连着遇到3个问题:
    1.出现找不到分支


    7c4395846ebe591e154bdffc7e7922f.png

    通过查看日志(gitlab-runner exec docker job_name),发现gitlab在被触发后拉取项目的时候采用的默认http协议的克隆地址,而我的http方式地址没有改过,还是默认容器的名字。 自己测了一下 手动克隆当然也是会失败。
    解决方法:修改http:方式克隆地址为可用地址,成功!!

    vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
    gitlab-ctl restart
    
    image.png

    2.可以获取分支了,但是还是失败,如下


    image.png

    解决办法:
    修改gitlab配置(设置--CI/CD,将Git strategy修改成git clone)


    image.png

    3.到最后一步部署文件到远程机器,出现没有权限


    image.png

    可以看到我在脚本这个步骤输出一个变量,结果为当前执行用户为gitlab-runner ,我们要做ssh免密通信要在
    gitlab-runner这个用户去做。

    su - gitlab-runner
    ssh-keygen
    一路回车
    ssh-copy-id root@192.168.1.112
    输一次密码,完成与远端机器免密通信
    

    再次运行,成功。


    image.png
    image.png

    相关文章

      网友评论

          本文标题:Gitlab CI/CD的使用【简】

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