一、 jenkins介绍

jenkins是一款开源的CICD软件,在市面上各类开源相关软件中处于领先位置。从个人角度更倾向于将其看作一个具备cicd功能的开源框架,在期1000+插件、扩展库功能以及良好的shell兼容性的基础你几乎可以用jenkins来做任何事情。

这里介绍一下从一台祼服务器开始搭建一个最简单的jenkins服务。

名词:

构建: 指jenkins任务的执行或运行

编译: 软件代码从源代码生成二进制可执行文件的过程

另: 本文中job与任务代表同样意义。

二、 准备工作

软件环境:

linux服务器 Centos 7

中间件:

jdk                        #提供基础的运行环境

apache-maven     #java代码的编译工具

nodejs                  #前端代码编译环境及工具

tomcat                  #jenkins的运行容器

三、 jenkins版本选择

一般建议使用最新的长期支持版Stable (LTS) ,官方更新频率没那么快。实际使用中稳定性较好,不需要频繁跟着官方进行更新。

部署形式

jenkins官网支持多种安装形式,包括war包、rpm、apk以及docker镜像;这里选择最基础和简单的war包的形式,在实际使用中可以根据自己的需要定制化一些内容。

包从官网下载:

下载地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.332.3/jenkins.war

四、安装过程

1.安装jdk

增加java的环境变量

export JAVA_HOME=/export/server/jdkexport JRE_HOME=$JAVA_HOME/jreexport CLASS_PATH=$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

验证java环境是否正常

java -version

2.安装tomcat

mkdir /export/server/上传tomcat包到上面目录tar xzf apache-tomcat-8.5.50.tar.gz -C  /export/server/

3.上传jeknins war包到tomcat的webapps目录下,启动tomcat。

sh bin/startup.sh

4.jenkins在启动过程中会在日志里输出初始的密码,这个密码需要在初次进入jenkins系统时使用。

查看logs/catlina.out,日志文件中有如下输出:

中间这一串随机字符串即jenkins初始的密码。

5. 浏览器打开jenkins页面

将4中找到的随机密码输入,点“继续”开始jenkins的初始化。

6. 安装必要插件

这里可以临时跳过,本次安装的时候网络环境检测失败。

7.创建管理员帐户

8.确定jenkins的地址

如果前面不加nginx做代理的话,这个地址就是启动tomcat的IP:Port再加上/jenkins/这一层路径。像这样:http://ip:port/jenkins/ 。

9. 配置成功后进入jenkins功能界面

10.定制安装所需插件

因为环境网络问题前面跳过了插件的安装,在这一步选择一个简单的jenkins系统所需要的插件。

配置路径:Manage Jenkins>> Manage Plugins

选择所需要插件,点击安装(Install without restart)。

必需的插件列表见附录。全部插件安装完毕后建议重启一次tomcat。插件中选择中文语言插件,重启tomcat后,系统界面会转换为中文。不重启的话一部分没办法直接转变为中文。

常用的插件(部分):

五、配置全局工具

为了满足后面示例任务的使用,这里增加java、maven以及nodejs的配置。也是jenkins作为一个CI系统的基本配置。

1.配置java工具

配置路径: 系统管理>>全局工具配置

找到JDK配置段,点击新增JDK。

如果服务器上没有装jdk可以选择自动安装,但是建议先在服务器上配置好java环境,参考上图填入对应信息后,点击页面最下面的保存. jdk环境配置完成。

2.配置maven

jenkins服务器上安装apache maven

从https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz下载apache maven的二制包。

上传到jenkins服务器,解压到/export/server/目录下

解压

tar xzf apache-maven-3.8.6-bin.tar.gz

配置环境变量

# vim /etc/profileexport MAVEN_HOME=/export/server/apache-maven-3.8.6export PATH=$PATH:$MAVEN_HOME/bin# source  /etc/profile

配置路径: 系统管理>>全局工具配置

按上图内容配置settings文件路径,这里使用上面安装的maven的地址,这里settings.xml文件使用软件默认的,后面单拎出来介绍一下settings.xml这个文件的配置。如不了解这个配置文件可以找研发同学提供。

当前配置页下方,增加maven安装路径,手动配置不选自动安装。

3.配置nodejs环境

nodejs做为前端开发语言,大部分情况下需要将源码编译成静态文件,再通过nginx等http服务中间件提供对外的服务,以便获得更好的性能。在jenkins上实现nodejs的编译需要node环境和npm工具,部分可能需要yarn工具,具体需求是根据研发习惯或者公司统一规定确定。

安装nodejs

下载前端程序所对应的node版本???(这里以长期支持版为例)

上传到jenkins服务器/export/server/

xz -d node-v14.7.0-linux-x64.tar.xztar xf node-v14.7.0-linux-x64.tar

配置jenkins里的工具

增加后保存,如上图,在job构建时可以指定 name为"node14"的环境。根据实际编译需求也可以增加多个版本的nodejs支持。

六、基本使用

这里的任务全部使用传统配置模式,pipeline形式会在后面单拎一章介绍。CI的整体逻辑,拉取代码,设置编译命令(方法),编译,生成编译结果(一般为二进制文件或包)。

1.创建一个java任务

登录jenkins后,点击左边栏“新建任务”,如下图,输入任务名称,在下面的任务类型中选择“构建一个maven项目”,点击确定。

整个任务分几个阶段,在对应的阶段中配置要编译代码的信息。

一个任务的必要信息,代码地址,编译命令,编译结果。

源码管理这里输入要编译代码的地址,Credentials这里选择连接到代码仓库所需要的用户权限文件,需要单独配置。

 如上图,这里指定要从代码库拉取的分支,这里是固定写死的,后面介绍参数化构建可以在每次构建里选择或填入指定的分支或tag。

这里指定pom.xml文件的位置,maven类型的任务在编译的时候是根据代码中pom.xml的定义进行代码的编译动作的。

这里可以设置一些编译成功后的动作,如归档、触发其他的任务、清理工作空间,或其他一些自定义的动作。这里的动作依赖插件的支持。在代码编译成功后增加发布的动作即整体实现CD的功能,从代码到服务器。

任务创建成功后,可按需求运行。

点击立即构建,触发jenkins任务,在左侧边栏会显示出当前正在进行编译的任务和进度。点击运行的任务可以进入任务构建详情,编译日志输出等。

2. 创建一个nodejs任务

点击左侧边栏

这里选择自由风格软件的项目,与java类型的任务一样,配置代码库地址。

配置编译环节,jenkins并没有像maven类型那样提供了专门适用的任务类型,所以编译的过程需要用shell模块自己实现编译过程。

如下图:

常规情况下,node编译出的目的文件在dist或build目录下,可在上图脚本中增加发布到服务器的动作,实现从代码到服务器的CD过程。

3. 文件夹类型的任务

新建一个任务,选择文件夹类型,文件夹类型的任务在jenkins中提供了一个容器,可以用来组织任务的结构,隔离不同环境,不同项目,不同所属的一系统的任务。也可以根据文件夹来进行权限控制。

jenkins基础使用相关推荐

  1. Jenkins 基础入门

    原文地址:Jenkins 基础入门 博客地址:http://www.extlight.com 一.前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, ...

  2. Jenkins基础:Jenkinsfile使用实例:12:使用docker.build构建镜像

    在前面一篇文章中我们介绍了使用在Jenkinsfile中使用dockerfile来动态生成镜像,从而在指定的阶段进行使用.而对于将构建生成的二进制应用进行容器化,比如将spring boot应用的ja ...

  3. Jenkins基础普及,视频分享大纲 。

    就算再忙,还是能够抽出时间,完成最重要的三件事 . 如果最重要的三件事,都没时间完成 . 说明两点, 1. 这不是你最重要的事 . 2. 你每天在瞎忙,时间分配不合理 . 在整个18年,老徐的计划中, ...

  4. Jenkins基础:Jenkinsfile使用实例:13:使用push命令进行镜像推送

    在上一篇文章中我们介绍了在Jenkinsfile中使用dockerfile来动态生成镜像,从而在指定的阶段进行使用.而对于将构建生成的二进制应用进行容器化,比如将spring boot应用的jar文件 ...

  5. Jenkins基础:使用NPM构建前端应用6:部署前端镜像

    在前一篇文章中介绍了在Jenkins中利用NodeJS插件实现创建.编译.镜像生成以及私库推送的Angular的应用的过程,这篇文章将进一步延伸,将生成的镜像直接运行起来. 基础知识 如果对于Node ...

  6. 持续集成之jenkins基础

    Jenkins基本概念 - 基于JAVA开源的自动化系统平台 - 在servlet容器中运行,如apache tomcat - 提供CI,CD任务及流水线的服务 - 所有类型的任务:构建.测试.部署等 ...

  7. jenkins 基础配置安装(Ⅰ)

    1 jenkins介绍 - 在说jenkins之前我们先来看看一个互联网公司上线的一个流程: 以共享单车为例:(充值-交押金-骑车)-开始设计产品成型-开发人员开发代码-测试人员测试功能-运维人员发布 ...

  8. jenkins基础知识

    首先先简单讲一下Jenkins构建任务各种图标的含义 我的主界面有以下构建任务,这里前两列都是图标,第一列为构建的状态,前面已经讲过蓝色代表成功,红色代表失败.当然那是针对一次构建,一个构建任务可能有 ...

  9. Jenkins基础:获取Jenkins-Crumb的错误信息与对应方法

    这篇文章memo一下使用Jenkins 2.176.1 LTS版本获取Jenkins-Crumb所碰到的问题与对应方法. 现象 Jenkins启动之后,使用API方式获取Jenkins-Crumb,碰 ...

最新文章

  1. 位操作(Bit manipulation)
  2. NIUDAY 11.23 北京站抢票啦 | 看 AI 落地行业 享 AI 时代红利
  3. 计算机安全概论论文,计算机安全探讨论文毕业论文(7篇).doc
  4. des加密 ios 和java_三重Des对称加密在Android、Ios 和Java 平台的实现
  5. 《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》——1.10节本章小结
  6. Idea中maven项目中导入本地jar包
  7. QQ 5.0的一些特效学习 一
  8. list循环添加数据_笔记 | 自学Python 06:数据类型之列表
  9. 认知升级,洞察人性,构建壁垒:AI创业如何跨越鸿沟?
  10. windows android系统,手机装windows系统详细方法
  11. java调试查看调用堆栈_关于调试:如何阅读和理解java堆栈跟踪?
  12. 用Python获取磁力种子
  13. 从入侵手段认识黑客的真面目
  14. 【Docker】win7安装docker及镜像加速
  15. Qt Quick实现的涂鸦程序
  16. 高中计算机教学工作计划,教学工作计划
  17. 不想做CEO的程序员不是好码农?
  18. ssm框架整合的crud项目详细步骤
  19. Windows环境db2start报错:依赖服务或组无法启动
  20. 期货平均波动率(期货波动性)

热门文章

  1. 八、图(下):公路村村通
  2. 整理网站页面CV的《长恨歌》文本,python字符串基础知识实战。
  3. 数据库之关系数据库的关系运算
  4. spring相关面试题合集
  5. 还在苦恼找素材?实用平面设计素材网站
  6. @Produces注解
  7. marquee标签滚动效果
  8. lua-C++ userdata使用
  9. Java基础知识——集合类
  10. ADJUSTED BOXPLOT: 偏态分布的异常检测