• jenkins基础使用


     一、 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的环境变量

    1. export JAVA_HOME=/export/server/jdk
    2. export JRE_HOME=$JAVA_HOME/jre
    3. export CLASS_PATH=$JAVA_HOME/lib:$JRE_HOME/lib
    4. export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    验证java环境是否正常

    java -version

    2.安装tomcat

    1. mkdir /export/server/
    2. 上传tomcat包到上面目录
    3. 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

    配置环境变量

    1. # vim /etc/profile
    2. export MAVEN_HOME=/export/server/apache-maven-3.8.6
    3. export PATH=$PATH:$MAVEN_HOME/bin
    4. # 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/

    1. xz -d node-v14.7.0-linux-x64.tar.xz
    2. tar 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中提供了一个容器,可以用来组织任务的结构,隔离不同环境,不同项目,不同所属的一系统的任务。也可以根据文件夹来进行权限控制。

     

     

  • 相关阅读:
    javafx开发环境踩坑记录
    锐捷校园网自助服务系统 login_judge.jsf 任意文件读取漏洞复现(XVE-2024-2116)
    【Unity】VS Code 没有自动补全 MonoBehaviour 的方法
    问题随记 —— Oracle 11g 卸载
    linux查看端口占用情况
    Python 实现微信测试号情侣纪念消息推送(消息群发)
    计算机毕业设计(附源码)python游戏论坛设计
    java毕业设计——基于java+JSP+J2EE的户籍管理系统设计与实现——户籍管理系统
    天猫店铺所有商品数据接口(Tmall.item_search_shop)
    细说Hash(哈希)
  • 原文地址:https://blog.csdn.net/kevin3101/article/details/125426714