美文网首页DevOps
Jenkins和gitlab(webhooks)的CI/CD前置

Jenkins和gitlab(webhooks)的CI/CD前置

作者: golddream_y | 来源:发表于2019-02-14 13:57 被阅读119次

1 用户故事

作为一个程序员,我想为项目做一套自动化测试和发布服务,以便我不用每次都手动测试和发布。

2 概述

2.1 环境简述
  • 服务器:centos7.*

  • gitlab: Community Edition 10.2.1

  • Jenkins: 2.6 +

2.2 前期准备
  • gitlab中需要devops的项目的master权限(用于设置webhooks和git公钥)。

  • Jenkins服务器中的公钥。

  • Jenkins需要安装“GitLab Plugin”插件。

2.3 整体流程

在gitlab中配置webhooks和Jenkins服务器的公钥,在Jenkins中创建一个新任务并配置好CI/CD的工作流和git认证相关配置。

当git的工程push的时候,就会发一个post到Jenkins服务,Jenkins就会执行相应task。

3 步骤

3.1 在gitlab中设置Jenkins服务器的公钥
  • 在Jenkins服务器上获取公钥。进入目录cd ~/.ssh/,查看目录下是否存在 id_rsa.pubid_rsa 文件。如果不存在,使用命令:ssh-keygen -t rsa -C "youremail@example.com",生成这2个文件(之后步骤中私钥内容放入Jenkins中,公钥添加到GitLab中)。

  • 进入gitlab的工程首页,setting → Repository → Deploy Keys ,然后将 id_rsa.pub 的公钥复制到 key中且保存。

==注:如果提示错误"Fingerprint has already been taken",有两种情况:1、复制的密钥中有换行符。 2、之前已存在的密钥可能无效,需重新生成。==

3.2 在Jenkins中配置任务
  • 进入Jenkins首页, 新建 → 选择”构建一个自由风格的软件项目“并输入任务名(此testProject)。

  • 配置源码管理:选择git,在Repository URL中输入项目的http链接。Credentials 点击add(Jenkins),在弹出页中进行相关设置(设置如下图)。

jenkins.png
  • 配置构建触发器:勾选 ”Build when a change is pushed to GitHub“ 和 ”Build when a change is pushed to GitLab. GitLab CI Service URL: http://host:port/project/testProject” , 复制此处的Service URL,为之后配置webhooks使用。

  • 配置构建:略,这里只介绍CI/CD的前置工作。

  • 配置完成点击保存。

3.3 在gitlab中配置webhooks
  • 进入gitlab工程首页,setting → Integrations ,在url 中输入刚才在Jenkins配置过程中复制的Service URL ,url的格式为http://Jenkins用户ID:Jenkins用户的apitoken值@host:port/project/testProject ,其中Jenkins用户的apitoken在当前用户配置中去找。然后点击“add webhook”,设置完成。

  • Secret Token可设置,也可不设置。如需设置,应在 3.2中的配置构建触发器步骤中,在勾选后,选择高级,即可生成Secret Token。


以上为基本前置工作,只是在gitlab和Jenkins部署之后的一些简单的连通配置。git的认证方式有多种,这里选择使用公私钥认证(个人感觉相对稳定)。

create at 2017/12/16 11:50:27

相关文章

网友评论

    本文标题:Jenkins和gitlab(webhooks)的CI/CD前置

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