jenkins基础使用

2年前 (2022) 程序员胖胖胖虎阿
176 0 0

 一、 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/jdk

export JRE_HOME=$JAVA_HOME/jre

export CLASS_PATH=$JAVA_HOME/lib:$JRE_HOME/lib

export 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基础使用中间这一串随机字符串即jenkins初始的密码。

5. 浏览器打开jenkins页面

jenkins基础使用

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

6. 安装必要插件

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

jenkins基础使用

7.创建管理员帐户

jenkins基础使用

8.确定jenkins的地址

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

jenkins基础使用

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

jenkins基础使用

10.定制安装所需插件

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

配置路径:Manage Jenkins>> Manage Plugins

jenkins基础使用jenkins基础使用

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

jenkins基础使用

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

jenkins基础使用

常用的插件(部分):

jenkins基础使用

五、配置全局工具

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

1.配置java工具

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

jenkins基础使用

 

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

jenkins基础使用

 

如果服务器上没有装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/profile

export MAVEN_HOME=/export/server/apache-maven-3.8.6

export PATH=$PATH:$MAVEN_HOME/bin

# source  /etc/profile

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

jenkins基础使用

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

 

当前配置页下方,增加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.xz

tar xf node-v14.7.0-linux-x64.tar

配置jenkins里的工具

jenkins基础使用

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

六、基本使用

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

1.创建一个java任务

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

jenkins基础使用

 jenkins基础使用

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

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

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

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

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

jenkins基础使用

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

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

jenkins基础使用

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

2. 创建一个nodejs任务

点击左侧边栏

jenkins基础使用

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

jenkins基础使用

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

如下图:

jenkins基础使用

jenkins基础使用

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

3. 文件夹类型的任务

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

jenkins基础使用

 jenkins基础使用

 

版权声明:程序员胖胖胖虎阿 发表于 2022年11月6日 下午4:24。
转载请注明:jenkins基础使用 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...