zoukankan      html  css  js  c++  java
  • Jenkins配合gitlab实现代码提交触发构建

    一、安装Jenkins与gitlab服务

     Jenkins安装:https://www.cnblogs.com/hovin/p/13516574.html

     gitlab安装:https://www.cnblogs.com/hovin/p/13524323.html

    二、Jenkins使用配置

    2.1、安装Gitlab和Blue Ocean插件

    2.2、安装Role-based Authorization Strategy插件

     Role-based Authorization Strategy插件用于角色的权限管理。

     新建用户,系统管理-->管理用户

     更改认证方式,系统管理 --> 全局安全配置,默认创建的用户登录后可以做任何操作,取决于默认的认证授权方式。

     创建角色,系统管理 --> Manage and Assign Roles

     对角色分配权限

     将用户分配到角色

     测试登录

    2.3、邮件配置

    (1) 生成授权码

     在QQ邮箱,设置 --> 账户 下,生成授权码。

    (2) 配置 jenkins 管理员邮箱

     Jenkins --> 系统管理 --> 系统配置 --> Jenkins Location。

    (3) 发件配置

     Jenkins --> 系统管理 --> 系统配置 --> 邮件通知。

    三、gitlab使用配置

    3.1、基于ssh key拉取代码

    (1) 生成jenkins服务器的key

    [root@jenkins ~]# ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:/jt9h8iR8iRrmY2fQ/IoOqa+QiltEJ1luEEReY91t30 root@jenkins
    The key's randomart image is:
    +---[RSA 2048]----+
    | o+Bo            |
    |. *.. . . .      |
    | . + + . . o     |
    |. . . .   . . E  |
    | o .    S    o   |
    |. =    .  + =    |
    | +      .  ^ o . |
    |  .   o ..O O.o .|
    |   o++.o oo+oo . |
    +----[SHA256]-----+
    [root@jenkins ~]# cat ~/.ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDsoFGwnuq3pqH8LvIXDXgFHZ1nw9kGB3TZGz99W9uvxoIco8wNW95z0dVZTwrB06fDbOmw0B/p4t9FpnyZOMwgBIkl5C5B2X/fS8h5WWPzXelJOJgcRApTN5qnf7fTQqn+Q+anVxKsQdTGZnhG4Wn4CMZA4nm0dwKYKo+qaYLawxx2YRXImMtyq4NNQVRvALBS1yVxjFjfXsnUAal+e7SUqHGGrHaLgOPlehmDK4yOJFNc+Xx3kQGC4wBxrEcjvrdP0w6I2SDbSaSUC3SxvtiS3O5568NUgXdFXQCN9FcpUoe7ujfbt8nhtAsivwS2Vzmq4nA/79IHp6qwyp1cHjzT root@jenkins

    (2) 将key添加到gitlab

    (3) 测试key拉取代码

    [root@jenkins ~]# git clone git@192.168.145.37:test-service/test-project.git
    Cloning into 'test-project'...
    The authenticity of host '192.168.145.37 (192.168.145.37)' can't be established.
    ECDSA key fingerprint is SHA256:NjIthsyJF52ZNkDd6/a8BL0DUk8n7fH9tMLJXNKBmLQ.
    ECDSA key fingerprint is MD5:03:6e:5d:65:26:32:32:22:3e:68:c2:86:83:4b:da:bf.
    Are you sure you want to continue connecting (yes/no)? yes  #第一次连接需输yes
    Warning: Permanently added '192.168.145.37' (ECDSA) to the list of known hosts.
    remote: Enumerating objects: 9, done.
    remote: Counting objects: 100% (9/9), done.
    remote: Compressing objects: 100% (6/6), done.
    remote: Total 9 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (9/9), done.
    [root@jenkins ~]# ll test-project/
    total 8
    -rw-r--r-- 1 root root 110 Aug 18 10:00 index.html
    -rw-r--r-- 1 root root  23 Aug 18 10:00 README.md

    3.2、配置jenkins自动拉取代码

    (1) 获取jenkins服务器的私钥

    [root@jenkins ~]# cat ~/.ssh/id_rsa

    (2) jenkins服务器添加证书

     Jenkins --> 系统管理 --> Manage Credentials --> 全局凭据 --> 添加凭据

    (3) jenkins 创建 project

     配置 git 项目地址和用户

    (4) 测试构建项目

    #本地也有项目了
    [root@jenkins ~]# ls /var/lib/jenkins/workspace/test-project
    index.html  README.md

    四、Jenkins触发器配置自动构建

    (1) 登录gitLab,生成一个 Personal Access Tokens

     创建后会成生一个Tokens值,复制到jenkins。

    (2) 登录jenkins,添加api token

     Jenkins --> 系统管理 --> Manage Credentials --> 全局凭据 --> 添加凭据。

     然后打开系统管理,进入系统设备,配置gitlab。

    (3) jenkins新建一个pipline job

    (4) 生成拉取代码的 pipline 脚本

     点击流水线语法,可以生成拉取gitlab上代码的语句,如下所示:

     也可以执行shell命令:

    (5) 进入gitlab,进行项目 --> settings --> Integrations

     本地测试会遇到以下错误:

     解决办法如下:

     添加后webhook后,还可以测试连接是否生效:

     jenkins也自动触发了构建:

     至此,触发器就已配置成功,开发一旦有提交代码,就会自动构建。

  • 相关阅读:
    【推荐】英国金融时报推荐的数据可视化图表分类图
    华为方舟编译器开源官网正式上线
    PyTorch官方教程中文版
    《一张图看懂华为云BigData Pro鲲鹏大数据解决方案》
    区块链学习笔记:DAY05 如何使用公有云区块链服务
    python一行写不下,变多行
    python 多窗口编辑
    ant的设置properties
    java的输出类
    python的IndentationError: unexpected indent python
  • 原文地址:https://www.cnblogs.com/hovin/p/13524745.html
Copyright © 2011-2022 走看看