Jenkins参数化构建及代码发布

这篇具有很好参考价值的文章主要介绍了Jenkins参数化构建及代码发布。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何使用gitlab--web端可以观看此篇教程

https://blog.csdn.net/m0_59933574/article/details/134528050?spm=1001.2014.3001.5502https://blog.csdn.net/m0_59933574/article/details/134528050?spm=1001.2014.3001.5502

整体思路

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

依赖环境及工具

  • Git

  • Centos7及以上

  • Gitlab

  • Jenkins

  • shell

  • ansible

实验机器

主机ip 安装服务
192.168.231.241 jenkins,后面称为jenkins端
192.168.231.238         gitlab,后面称为gitlab端
192.168.231.132 git,nginx,后面称为nginx端

实验流程

jenkins-web端

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

构建后的操作 给我发邮件来通知我,以此来验证我是否实验成功

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

nginx端

首先下载nginx,其次删除其默认的网站发布目录html

rm -rf /usr/share/nginx/html

下载git

yum -y install git

gitlab端

新建一个项目:nginx-parameter

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

新建一个文件,不需要太复杂,简单的 可以证明实验即可,我的内容是

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>参数化构建</title>
</head>
<body>
    <h1>第一次提交</h1>
</body>
</html>

提交,克隆ssh

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

nginx端

将代码拉取到nginx的默认网站发布目录下,将其改名为html

[root@mysql nginx]# git clone http://192.168.231.238/root/nginx-parameter.git
正克隆到 'nginx-parameter'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 15 (delta 0), reused 0 (delta 0), pack-reused 12
Unpacking objects: 100% (15/15), done.
[root@mysql nginx]# ls
modules  nginx-parameter

###改名
[root@mysql nginx]# mv nginx-parameter/  html
[root@mysql nginx]# cd html/
[root@mysql html]# ls
index.html  README.md

将nginx端的公钥给gitlab端,这样nginx端去拉取代码就不需要输入密码

[root@nginx ~]# cat .ssh/
authorized_keys  id_rsa           id_rsa.pub       known_hosts      
[root@nginx ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3MCPw7lCMJo34jv6igODosRxIOGbavGGkNpya/Pmg74Lr9GWlWUR046NXJrB61fLC7HfSXCguP1up6ttZjP+b/qTtxT9rtZP4e2pNbk4t9Y+gE+JD6ZI1/mZL7Kr65CgaOq2UYJiJawY1+d3ElkXIt5g0wB5RBvuMPt/UMAGDH7HJ03CFzcD0T+K9oFQM/vbIZDXU/wbw/fMnQtpZKk0xgvKcKt/nUq07VSrblcumNSZyihvIEMZ6FphTYHd803JsOL51DHbhh6eegY5zriDD7gqtmYf8d9EXkFphZECHBiYxABMeNxzqxIV/7LoiYFV/lyTZZkYAvrrW2PRdBajj root@mysql

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

添加保存即可

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

jenkins节点上,下载ansible

下载ansible
yum -y insatll ansible

编辑管理机器
[root@jenkins ~]# cat /opt/hosts 
[nginx]
192.168.231.132

将自己的公钥发给nginx端
[root@jenkins ~]# ssh-copy-id 192.168.231.132
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.231.132's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.231.132'"
and check to make sure that only the key(s) you wanted were added.

验证能否管理ping通

[root@jenkins ~]# ansible -i /opt/hosts all -m ping -o
192.168.231.132 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}

写个脚本

[root@jenkins opt]# cat nginx-parameter.sh 
#!/bin/bash

# nginx\tomcat
SERVICE_NAME=$1

# start\stop\restart\none
SERVICE_STATUS=$2

# pull\reset1\reset2\reset_id\none
GITLAB_CODE=$3

# node\GITLAB_CODE值为reset_id时需要
GITLAB_ID=$4

CMD="ansible -i /opt/hosts nginx"

if [ "$SERVICE_NAME" = "nginx" ];then
    if [ "$GITLAB_CODE" = "pull" ];then
        $CMD -m shell -a "chdir=/usr/share/nginx/html  git pull  git@192.168.231.238:root/nginx-parameter.git" 
    elif [ "$GITLAB_CODE" = "reset1" ];then
        $CMD -m shell -a "chdir=/usr/share/nginx/html git reset --hard HEAD^"
    elif [ "$GITLAB_CODE" = "reset2" ];then
        $CMD -m shell -a "chdir=/usr/share/nginx/html git reset --hard HEAD^^"
    elif [ "$GITLAB_CODE" = "reset_id" ];then
        $CMD -m shell -a "chdir=/usr/share/nginx/html git reset --hard $GITLAB_ID"
    fi
    if [ "$SERVICE_STATUS" != "none" ];then
       $CMD -m shell -a "systemctl $SERVICE_STATUS nginx"
    fi
fi

jenkins的web端

增加构建步骤

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

开始实验

第一次构建

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

控制台输出

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看nginx端

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

第二次构建

修改gitlab端的代码

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

构建,同样都是拉取最新的代码

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

控制台输出

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看nginx端

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

第三次构建

修改gitlab端的代码

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

开始构建,同样拉取最新的代码,查看控制台输出

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看nginx端

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

开始回滚-1

构建,回到上俩次

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看控制台输出

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看nginx端

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

开始混滚-2

构建,回到上一次

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看控制台输出

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

查看nginx端

Jenkins参数化构建及代码发布,jenkins,运维,参数化构建

jenkins参数化构建的好处

  1. 灵活性:参数化构建可以根据不同的需求定制构建过程。你可以在执行作业时输入参数,使构建过程更加灵活和可配置。

  2. 可重用性:通过参数化构建,你可以将一个通用的构建过程转化为可重复使用的模板,以适应不同的场景和需求。这样可以避免重复创建相似的作业,提高效率。

  3. 自动化:通过参数化构建,可以实现自动化的构建流程。例如,可以通过选择参数来控制构建的环境、版本等,减少手动干预,提高自动化程度。

  4. 参数验证:参数化构建可以对输入的参数进行验证,确保输入的值符合要求。这有助于减少人为错误和不一致性。

  5. 集成测试:参数化构建可以与其他插件和工具集成,从而实现更复杂的构建和集成测试流程。例如,可以根据参数的不同执行不同的测试套件或部署到不同的环境。

总之,参数化构建提供了更大的灵活性和可配置性,帮助你根据需求定制构建过程,并提高自动化程度和效率。它是Jenkins强大的功能之一,可以帮助你更好地管理和执行构建任务。文章来源地址https://www.toymoban.com/news/detail-759108.html

到了这里,关于Jenkins参数化构建及代码发布的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins参数化构建与触发

    我们在使用Jenkins进行项目构建时,有时会出现两个项目之间关联的情况,比如项目1构建结束后想要直接执行项目2,或者项目1中的某些参数需要传递给项目2来使用,此时可以使用Jenkins的参数化构建方法来完成该过程。 勾选参数化构建过程 选择你想要添加的参数类型 参数定

    2024年02月05日
    浏览(35)
  • Jenkins 参数化构建中 各参数介绍与示例

    一个一个点名,希望补充与矫正,整体如下 布尔值参数,对应的就是Boolean结果,也就是 1 与 0;True or False ;对应【配置】以及【Build with Parameters】时的显示如下 选项参数,即用户从配置的选项列表中,选择其中的一个选项,作为赋值,举例:Color - Red / Blue,那么就只能二选

    2023年04月08日
    浏览(33)
  • 使用Jenkins构建发布一个简单的maven项目

    上一章,完成了jenkins在ubuntu上的安装,这一章将使用单个Jenkins服务完成一个maven项目的打包和发布。 用到的插件有:Maven Integration、Git、Publish Over SSH三个,在Dashboard - Manage Jenkins - Plugins -Available plugins里搜索并安装。 2.1、配置好JDK 在Dashboard - Manage Jenkins - Tools里将JAVA_HOME的目

    2024年02月16日
    浏览(41)
  • jenkins-cl参数化构建

    pipeline片段(对应jenkins-cli -p参数的BRANCH=develop) 使用 build -p参数 BRANCH=develop (develops是你的分支名),或者下面对应即可 运行

    2024年01月18日
    浏览(38)
  • jenkins 参数化构建过程,jenkins下拉框选择要部署项目,jenkins部署java微服务项目,jenkins部署微服务

     1. jenkins部署demo 优化 点: 选择丢弃旧的构建,最大个数可以选择3或者5个,如果微服务,十个jar,占用很多空间,多来几次部署,硬盘满了 2. 选择 参数构建 ,需要部署哪个项目 名称可以设置为你的项目名,例:test_project 选项 例:           test_user           test

    2024年01月24日
    浏览(50)
  • Jenkins构建自由风格项目发布jar到服务器

    前面的文章有介绍 docker安装jenkins 和 docker+jenkins发布spring项目;这里就不做过多的介绍,直接说明构建步骤。 1、选择构建一个自由风格的项目  2、 选择丢弃旧的构建  3、配置Git信息 4、构建触发器 和 构建环境可以直接跳过 5、直接来到Build Steps这步骤,先新增一个调用

    2024年02月13日
    浏览(38)
  • QT+jenkins window环境实现一键自动化构建打包签名发布

            1.官网下载地址: Jenkins download and deployment,下载最新版本的安装包并安装。安装过程中,会要求你输入端口号并记住。         2.java下载地址:Java Downloads | Oracle,下载最新版本的安装包并安装。         3.浏览器输入网址:127.0.0.1: port, port为端口号,默认8080,安

    2024年02月01日
    浏览(44)
  • Jenkins +miniprogram-ci 构建 发布、预览微信小程序

    要实现这样的效果,需要下面3步:  1.下载 node 依赖包 miniprogram-ci,编写预览和上传功能  2. 登录微信公众平台, 下载项目的privateKey+添加代码上传IP白名单  3. 安装配置 Jenkins Step1 下载 node 依赖包 miniprogram-ci,编写预览和上传功能, 在微信小程序项目下创建package.json,wxC

    2024年02月04日
    浏览(49)
  • 基于Jenkins CICD的代码发布与回滚 Jenkins+Git+Docker 发布 Java 项目 Jenkins+Git+Ansible 发布PHP 项目

    目录 案例概述 案例环境 基于 Jenkins+Git+Docker 发布 Java 项目 1、配置 Git 仓库 2、配置 Docker服务器 3、部署镜像仓库 5、配置Jenkins 环境 6、Jenkins 创建项目并发布测试 7、版本回滚 基于Jenkins+Git+Ansible 发布PHP 项目 1、部署PHP 运行环境 2、安装Ansible 插件 3、上传PHP 项目代码到Git仓

    2024年02月03日
    浏览(38)
  • Jenkins 利用Build With Parameters 插件实现选择参数构建

    jenkins是CI/CD中部署时候一个重要工具,可以按照我们需求进行配置一些编译打包测试工作,有些是全自动化的,有些需要进行手动参数进行触发。今天给大家分享一下Jenkins使用Build With Parameters插件,实现外置参数进行触发job。 作者:良知犹存 转载授权以及围观:欢迎关注微

    2024年02月12日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包