运维-gitlab-CICD-入门

229 阅读2分钟

1 克隆一台装有docker的VMware虚拟机,修改主机IP

vim /etc/sysconfig/network-scripts/ifcfg-ens33

sudo systemctl restart network

修改如下

image.png

注意: VMware的网关查看

image.png

2 安装gitlab

2.1 获取rpm安装包,并且解压

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm 

2.2 修改配置

vim etc/gitlab/gitlab.rb
修改地址为域名或者当前的IP地址即可,如下图

配置生效
gitlab-ctl reconfigure

image.png

注意:

1.如果修改gitlab占用的端口,这里需要在IP后面加上例如 ":8090"

2.同时修改nginx的 /var/opt/gitlab/nginx/conf/gitlab-http.conf的listen指定端口。 然后重新执行上面的配置生效命令

2.3 gitlab服务启动、停止

提前关闭类似于httpd这样占用80端口的服务

gitlab-ctl start
gitlab-ctl stop
gitlab-ctl status

既可访问 (第一次访问,输入两次密码进行初始化。然后账号root和密码password登录)

image.png

3 Gitlab Runner

3.1 runner的介绍

简单介绍:Go语言编写的一个开源项目,作用是负责执行 GitLab CI/CD 管道中的作业(job),包括构建、测试和部署等任务。

image.png

类型

  • shared共享类型,运行整个平台项目的作业(gitlab)
  • group项目组类型,运行特定group下的所有项目的作业(group)
  • specific项目类型,运行指定的项目作业(project)

状态

  • locked: 锁定状态,无法运行项目作业
  • paused: 暂停状态,暂时不会接受新的作业

3.2 Gitlab Runner安装

这里主要通过docker来安装

环境: VMware的虚拟机,系统centos7.6,IP:192.168.255.130,已经安装docker

拉取镜像

docker pull gitlab/gitlab-runner:v12.9.0

启动容器

需要先创建目录 /data/gitlab-runner/config

docker run -it -d -v /data/gitlab-runner/config/:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0 

因为这个容器是没有交互式命令行界面(CLI),特别是那些设计为仅作为服务运行的容器。 如果退出后,想要进入容器里面交互需要

docker exec -it [容器ID] /bin/bash

3.3 runner的注册

方法一: 可以在容器里面通过命令交互式注册(可以用,但不怎么推荐)

gitlab-runner register

方法二: 参数一次设置

启动容器
docker run -d --rm -v /var/run/docker.sock:/var/run/docker.sock -v /data/gitlab-runner/config/:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0

执行注册
docker exec -it 8e2384f9c240 gitlab-runner register --non-interactive --url "http://192.168.255.131" --registration-token "xszGzxMUMZDGX-3h8xXa" --executor "shell" --description "docker-runner" --tag-list "deploy,build" --run-untagged="true" --locked="false" --access-level="not_protected"
检查runner
gitlab-runner verify

注册url和注册token的来源

image.png

4 pipeline

4.1 创建一个项目,然后添加 .gitlab-ci.yml文件,编写pipeline脚本

stages:
  - build
  - deploy
  
build:
  stage: build
  tags:
    - build
  only:
    - master
  script:
    - echo "mvn clean"
    - echo "mvn install"
    
deploy:
  stage: deploy
  tags:
    - deploy
  only:
    - master
  script:
    - echo "hello deploy"

image.png

修改readme文件,即可触发自动构建 image.png