Gitlab简单使用CI/CD

目录

开篇语

目的

准备

安装gitlab-runner

注册到gitlab

注册群组Runner

为仓库设置单独的Runner

配置帐号

创建项目

配置流水线

参考文档


 

开篇语

大概是去年就想做这个事情了,奈何当时卡到一个docker命令找不到的问题上,导致文章难产了,墨迹了这么久,终于又有空来捣鼓它了。

目的

我们要实现的目的是我本地不断提交代码(CI),然后服务器不断进行部署(CD)的一个简单流程。

准备

在进行简单的gtlab的ci/cd之前,我们需要安装gitlab软件,这个可以看之前的文章。

本文环境:

服务器A:使用docker部署了gitlab

服务器B:已经安装了docker、注册了gitlab-runner用来部署服务

在centos一键安装docker以及docker-compose的脚本

#!/bin/bash

echo -e "\033[33m install docker sh \033[0m"

# 设置yum源
echo -e "\033[33m Set the yum source \033[0m"
sudo yum -y install yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#yum包更新到最新
echo -e "\033[33m update version \033[0m"
sudo yum update -y

#安装Docker最新版
echo -e "\033[33m install docker-ce \033[0m"
sudo yum install docker-ce -y

#设置Docker自启动
echo -e "\033[33m setting self-turn-on \033[0m"
sudo systemctl enable  docker

#启动Docker
echo -e "\033[33m start docker \033[0m"
sudo systemctl start docker

#配置国内镜像 /etc/docker/daemon.json
echo -e "\033[33m Set up aliyuncs mirror \033[0m"
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
#加载配置文件,ReStart
sudo systemctl daemon-reload
sudo systemctl restart docker

#安装docker-compose,最新版本需要手动查询一下
echo -e "\033[33m install docker-compose \033[0m"
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

部署gitlab的yaml脚本

version: '3'

services:
  gitlab: #gitlab
    image: gitlab/gitlab-ce
    container_name: 'gitlab'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url "http://172.18.231.92:9006" # web站点访问地址
        gitlab_rails['gitlab_shell_ssh_port'] = 9022 # 设置shell 端口
        gitlab_rails['time_zone'] = 'Asia/Shanghai' # 设置时区
        # gitlab_rails['smtp_enable'] = true
        # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
        # gitlab_rails['smtp_port'] = 465
        # gitlab_rails['smtp_user_name'] = "<your qq email>"
        # gitlab_rails['smtp_password'] = "xCcqh*L4jkqFCS"
        # gitlab_rails['smtp_authentication'] = "login"
        # gitlab_rails['smtp_enable_starttls_auto'] = true
        # gitlab_rails['smtp_tls'] = true
        # gitlab_rails['gitlab_email_from'] = '<your qq email>'
        # gitlab_rails['smtp_domain'] = "exmail.qq.com"
    ports:
      - '9006:9006'
      - '443:443'
      - '9022:22'
    volumes:
      - '/gitlab/config:/etc/gitlab'

安装gitlab-runner

在要部署服务的服务器上安装docker以及gitlab-runner,本次安装直接安装在服务器中,不使用docker安装gitlab-runner,避免产生Dind(docker in docker)问题。

首先导入repository

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

img

安装

yum install gitlab-runner -y

img

注册到gitlab

注册群组Runner

首先我们要获取注册时候需要的信息,获取地址在 http://172.18.231.92:9006/admin/runners

输入命令进行注册

gitlab-runner register

img

选择执行者,这里我使用shell

执行者参考:https://docs.gitlab.com/runner/executors/index.html

到这里已经注册成功了,就可以在gitlab中看到注册的runner了

img

为仓库设置单独的Runner

使用该方案应该先看下一步去创建项目

在我们要部署的仓库里面找到Runner配置信息(设置=>CI/CD)

img

然后重复上面注册的过程,详细步骤如图

img

然后就可以在仓库的配置下可以看到我们注册的东西

img

配置帐号

添加gitlab-runner用户

sudo adduser gitlab-runner

将该用户添加到docker组中

sudo gpasswd -a gitlab-runner docker

查看docker组是否已经添加用户成功

cat /etc/group |grep docker

验证是否可以通过gitlab-runner访问docker

sudo -u gitlab-runner -H docker info

重启docker容器服务

sudo systemctl restart docker

给docker.sock设置权限

sudo chmod a+rw /var/run/docker.sock

img

创建项目

直接开始创建项目

img

拉取项目并填充内容

img

拷贝一个简单项目(https://gitee.com/AZRNG/my-example)提交到gitlab上

img

配置流水线

在项目的根目录下创建文件名为.gitlab-ci.yml的文件,用于进行打包部署。

# .gitlab-ci.yml

stages:
  - deploy

deploy:
  stage: deploy
  script:
    - docker -v
    - cd NetByDocker
    - docker build -f Dockerfile -t gitlabnetsample ../ 
    - docker rm -f gitlabnetsample &&  docker run --name gitlabnetsample -d -p 8060:80 gitlabnetsample # remove old,create new 
    - docker ps -a
  tags: 
    - net

提交推送代码,然后在gitlab的CI/CD=>Pipeliners查看

img

查看详细信息

img

部署成功,进入该服务器查看容器信息

img

通过外部访问服务:http://172.18.229.206:8060/swagger/index.html 成功显示swagger界面,部署成功。

参考文档

https://blog.csdn.net/qq_42799562/article/details/118179856

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用GitLabCI/CD功能,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了GitLab Runner。你可以使用以下命令来安装GitLab Runner: ``` curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash sudo yum install gitlab-runner ``` 如果你在Ubuntu系统上使用,请使用`apt-get`命令来安装。 2. 安装完成后,你可以使用`gitlab-runner -v`命令来验证安装是否成功,并查看GitLab Runner的版本号。 3. 接下来,你需要将GitLab Runner注册到GitLab CI/CD Coordinator上。在终端中输入以下命令: ``` gitlab-runner register ``` 在提示中,你需要提供GitLab CI/CD Coordinator的URL(例如https://gitlab.com/),以及访问权限验证的Token。 4. 注册成功后,你可以配置`.gitlab-ci.yml`文件来定义CI/CD的流程。这个文件包含了一系列的任务(jobs)和阶段(stages),你可以根据自己的项目需求进行配置。具体的语法和配置参考可以在GitLab官方文档中找到。 5. 当你的代码提交到GitLab仓库时,GitLab CI/CD会自动触发流水线(pipeline)的执行。流水线中的任务会按照`.gitlab-ci.yml`文件中定义的顺序和规则进行执行。 总结:要使用GitLabCI/CD功能,你需要先安装GitLab Runner,并将其注册到GitLab CI/CD Coordinator上。然后,在项目中配置`.gitlab-ci.yml`文件来定义CI/CD流程。最后,当代码提交到GitLab仓库时,GitLab CI/CD会自动执行流水线中的任务。详细的使用方法和配置参考可以查阅GitLab官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值