云计算_CI/CD_devOps_集成_Gitlab-runner

Gitlab 项目管理

 01.Gitlab
   GitLab中的项目的根目录下创建的.gitlab-ci.yml 脚本的工具

 02. GitLab Runner是一个开源的项目,是用来执行GitLab中的项目的根目录下创建的.gitlab-ci.yml 脚本的工具
      GitLab Runner is open-source and written in Go.
   It can be run as a single binary; no language-specific requirements are needed.
  极狐GitLab持续集成 (CI)持续交付(CD)
      构建、测试和部署。从可扩展的Pipeline到集成安全性
  	合并请求(MR)*享新代码,并触发Pipeline。构建、测试和验证
  	
  自动集成部署
      组件 
       Gitlab	       代码版本管理
       GitLab-CI     就是一套配合GitLab使用的持续集成系统,GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。	 
       GitLab-Runner 就是一个用来执行软件集成脚本的东西  
	Gitlab-runner 概念
	   pipeline  
	   Stage  CI 环节包含三个 Stage:build、test 和deploy。
	   Job
  	   
	权限
        Shared   runners   are for use by all projects
        Group    runners   are for all projects and subgroups in a group
        Specific runners   are for individual projects
     tag  
       runner has the tag value, acorrespond  project’s .gitlab-ci.yml file	
    配置文件  config.toml file.		
 03.软件
     Git:git 
     Gitlab   Gitlab Runner	
     Docker	
     Harbor		 

gitlab-runner安装步骤

 步骤
 linux 准备工作	 
  useradd -d /home/deploy -m deploy -s /bin/bash
  passwd deploy
 
 1. 安装docker
     安装docker
	 下拉 docker pull gitlab/gitlab-runner
 2. 运行gitlab-runner容器
  docker run -d 
    --name gitlab-runner --restart always  \
    -v /var/run/docker.sock:/var/run/docker.sock   \
    -v /srv/gitlab-runner/config:/etc/gitlab-runner  \
     gitlab/gitlab-runner:latest
 
 3. 注册为gitlab-ci的runner
   启动 Runner 然后和 GitLab CI 绑定
      非docker的形式 gitlab-ci-multi-runner register :执行注册命令
	     输入 ci 地址  输入 ci token   runner 名称  设置 tag
		 - 挂载docker.sock是为了docker:latest镜像操控runner服务器的docker服务;
		 说明: An executor determines the environment each job runs in.
		       the  shell executor.
			   the Docker executor.
  docker exec gitlab-runner gitlab-runner register -n \
   --url http://192.168.1.211:8180/ \
   --registration-token RNyQCDFogbs-Sh57ap4u \
   --tag-list runInDocker \
   --executor docker \
   --docker-image docker \
   --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
   --description "runInDocker
   
    --template-config /tmp/test-config.template.toml \
  
  
  # register 默认交互模式下使用,非交互模式添加 --non-interactive
  
  gitlab-runner 注销
     注销全部 docker exec gitlab-runner gitlab-runner unregister --all-runners

自动构建组件

基本组件
  代码库-版本库GitLab  GitLab CI 
  执行构建任务 GitLab-runner 
  镜像库 harbor
  资源库: 文件系统或者分布式文件系统 或者对象存储
具体文件
    项目工程下编写 .gitlab-ci.yml 配置文件
  
  fatal: unable to access 'https://mygitlab.com/mydata.git/': Could not resolve host: mygitlab.com.com
解决方式  
 在配置文件.toml中增加host和IP的映射关系
 [runners.docker]
  tls_verify = false
 extra_hosts = ["gitlab.com:1.1.1.1", "harbor.com:2.2.2.2"]
 shm_size = 0	 

配置文件

01.Gitlab 配置文件

.gitlab-ci.yml 共28个关键词 pipeline
  管道配置从作业(job)开始, 作业是 .gitlab-ci.yml 文件的最基本元素
   job 了可用的参数
      image  services  environment  cache  dependencies
	  stages  stage only  
	  tags  retry  trigger  include
	  script  before_script  after_script  allow_failure  when  artifacts
	  coverage  except extends interruptible pages  parallel
	  release  resource_group rules  timeout  variables  
   新建作业(job)、定义阶段(stage)、允许失败(allow_failure)、
       什么时候开始工作。
      也可用:when:manual和when:delayed
      人工触发(when: manual)、
      作业运行前执行的脚本(before_script)
       作业运行后执行的脚本(after_script )

02.Gitlab-runner配置文件

config.toml
  [[runners]]
    name   url  token
	environment  executor  shell tags
    executor  
      [runners.kubernetes]
      [runners.docker]  
      [runners.ssh]
      [runners.virtualbox]
    shell bash sh powershell  pwsh
    [runners.docker]  
     image
     dns  dns_search
     extra_hosts
	[[runners.docker.services]]

03.Dockerfile配置文件

  FROM habor.test.com/testil:latest as ReleaseData
  ENV OBSUTIL /root/bin/obsuti
  ARG H_VERSION
  COPY ./entrypoint.sh /
  RUN mkdir -p /opt/test \
  && echo '1.1.1.1 cn1.test.com' | sudo tee -a /etc/hosts \
  && $OBSUTIL cp -r -f os://test/ap /opt/test/${H_VERSION}  
  ENTRYPOINT '/entrypoint.sh'

配置文件格式

语言的表达能力,书写便捷性 
  INI(.ini)文件
  XML
  JSON(.json)
  YAML(.yaml 或 .yml)
  TOML(.toml)  显式键名链的方式  使用#来表示注释开始,至当前行尾结束。 数组使用方括号包裹  表格数组

参考

  https://docs.gitlab.com/runner/
  https://docs.gitlab.com/runner/configuration/advanced-configuration.html
  .gitlab-ci.yml语法完整解析(三)  https://blog.csdn.net/github_35631540/article/details/111029174
  使用主机安装查看runner配置  https://www.cnblogs.com/wu-wu/p/13269950.html
上一篇:2021-04-24


下一篇:# lvm添加新硬盘