jenkins学习总结

8.2 总结(Jenkins总结)

1为什么使用jenkins

  在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;

  或者前后端分离后,经常会修改接口,然后重新部署;

  这些情况都会涉及到频繁的打包部署;

  手动打包常规步骤:

  1.提交代码

  2.问一下同组小伙伴有没有要提交的代码

  3.拉取代码并打包(war包,或者jar包)

  4.上传到Linux服务器

  5.查看当前程序是否在运行

  6.关闭当前程序

  7.启动新的jar包

  8.观察日志看是否启动成功

  9.如果有同事说,自己还有代码没有提交......再次重复1到8的步骤!!!!!(一上午没了)

  那么,有一种工具能够实现,将代码提交到git后就自动打包部署勒,答案是肯定的:Jenkins

  当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson等

  只是Jenkins相对来说,使用得更广泛。

2.Jenkins服务器搭建及基本配置

2.1.简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

2.2.Jenkins自动化部署实现原理

转存失败重新上传取消

 v正在上传…重新上传取消

2.3Jenkins的目标

Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。

CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。

特别是它具有以下优点:

  • l Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。
  • l 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。
  • l 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。
  • l 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载

2.4Jenkins的主要特点

  • * 容易安装,只需要执行Java -jar jenkins.war, 或者直接部署到一个servlet container中,例如tomcat。不需要安装,不需要数据库的支持。
  • * 容易配置,jenkins可以完全地通过友好的web GUI来配置,且配置页面支持配置项的错误检查和很好的在线帮助。不需要手动地编辑xml的配置文件,但是jenkins也支持手动修改xml配置文件。
  • * 项目源码修改的检测,jenkins能够从项目的Subversion/CVS生成最近修改的集合列表,且改方式非常有效,不会增加Subversion/CVS Repository的负载。
  • * 可读的永久的链接生成,jenkins对于大部分pages都生成清楚的可读的永久的链接,例如”latest build”/”latest successful build”,因此可以容易地在其他的地方引用jenkins的生成的pages。
  • * RSS/EMail/IM集成,可以通过RSS,EMail或IM来实时地监视build的失败。
  • * Build完成后仍然可以tag,支持在build完成后tag或重tag。
  • * Junit/TestNG 测试报告,能够很好地显示各种测试的报告,且可以生成失败的趋向图。
  • * 分布式build,jenkins能够分发build/test的负载到多台机器,能够更好地利用硬件资源,提高build的时间。
  • * 文件标识,jenkins可以标识build产生的文件,例如jars。
  • * 插件支持,jenkins可以通过第三方的插件来扩展。
  • * 跨平台,支持几乎所有的平台,例如Windows,Ubuntu/Debian,Red Hat/Fedora/CentOS,Mac OS X,openSUSE,FreeBSD,OpenBSD,Solaris/OpenIndiana.Gentoo。

2.5Jenkins部署环境

  基本环境:

  1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。

  2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。

  3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle

  以上是自动化部署java程序jenkins需要的基本环境,请自己提前安装好,下面着重讲解Jenkins的安装部署配置。

2.4.Jenkins安装

  • yum源安装
  • Tomcat 安装
  • docker镜像安装

2.6tomcat方式安装

Yum -y install tomcat

转存失败重新上传取消

Systemctl start tomcat

Systemctl enable tomcat

转存失败重新上传取消

1下载jenkins.war

转存失败重新上传取消

转存失败重新上传取消

Systemctl restart tomcat

Systemctl stop tomcat 会看见jenkins的文件

转存失败重新上传取消

2.5 下载安装包解压安装(用Java去运行jenkins)

下载 jdk 的tar包到指定的目录下、命令如下:

wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz

或者手动从Oracle官网下载后上传到指定的目录下也行

注意 jdk11.0.2 jenkins版本:Jenkins ver. 2.204.5 tomcat版本:9.0.27 最新版本的jenkins和tomcat10版本启动有问题

2.5.1 下载Java11.0.2

转存失败重新上传取消

2.5.2 解压到/usr/local/jdk

tar -zxvf jdk-11.0.12_linux-x64_bin.tar.gz

转存失败重新上传取消

2.5.3 配置环境变量

修改环境配置文件

vim /etc/profile

根据需要的Java版本把下面代码加入到配置文件内容中

Java11环境变量配置

JAVA_HOME=/devtools/java/java11/jdk-11.0.12(解压jdk的目录)

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=$JAVA_HOME/lib

export JAVA_HOME CLASSPATH PATH

Souce /etc/profile

2.5.4用java去运行jenkins

nohup /usr/local/jdk/jdk-11.0.12/bin/java -jar jenkins.war > log.file 2>&1 &

转存失败重新上传取消

第二天重启时

ps -ef | grep java

转存失败重新上传取消

Pkill -9 Java kill -l 9 强制删除Java进程

转存失败重新上传取消

再次重启 Tomcat systemctl restart tomcat 这时会在后台重新启动 nohup /usr/local/jdk/jdk-11.0.12/bin/java -jar jenkins.war > log.file 2>&1 &

错误日志在、usr/share/tomcat/webapp/nohup.out

转存失败重新上传取消

其他日志在/usr/share/tomcat/webapp/log.file

转存失败重新上传取消

注意端口号 Gerrit改为8081

转存失败重新上传取消

ngnix改为81

转存失败重新上传取消

jenkins使用8080

3jenkins使用

3.1访问http://your_ip:8080便可以看到下面这个页面:

转存失败重新上传取消

cat /var/jenkins_home/secrets/initialAdminPassword 拿到密码

这里我们选择安装推荐的插件:

转存失败重新上传取消

接下来便可以看到 Jenkins 在自动帮我们安装一些插件,包括常用的 GitPipeline 等:

转存失败重新上传取消

然后需要创建第一个用户:

转存失败重新上传取消

接下来就开始我们的 CI/CD 之旅吧!

转存失败重新上传取消

转存失败重新上传取消

创建一个项目

转存失败重新上传取消

测试 添加一个 一个执行命令

转存失败重新上传取消

点击built now

转存失败重新上传取消

控制台输出

转存失败重新上传取消

测试 输出hello word

转存失败重新上传取消

转存失败重新上传取消

可以看到绿色对号 表明成功创建

转存失败重新上传取消

查看虚拟机 创建、usr/caomi.txt

转存失败重新上传取消

另一个测试 输出 hello word 到/usr/caomi.txt

转存失败重新上传取消

接下来创建一个节点 以192.168.56.106 为例子

转存失败重新上传取消

配置节点的信息

转存失败重新上传取消

用root密码去连接

转存失败重新上传取消

完成后

转存失败重新上传取消

上线此节点启动代理

转存失败重新上传取消

把节点加入到Iterm 中执行测试 创建testing2文件

转存失败重新上传取消

测试

转存失败重新上传取消

buid now 

在虚拟机的、/jenkins/test/workspace/e 发现testing2  成功success!

转存失败重新上传取消

如何去下载插件呢

转存失败重新上传取消

转存失败重新上传取消

这里可以更新插件下载插件

转存失败重新上传取消

问题如何在挂载两个节点 并且去执行脚本 如下

分别为两个节点打上相同的标签 如 slave-35-label

转存失败重新上传取消

转存失败重新上传取消

注意Java 路径/usr/java/jdk-11.0.12/bin/java/

转存失败重新上传取消

我将三台机器同时加入到一个节点 那么执行命令会在那个机器执行呢

转存失败重新上传取消

随机选择一个虚拟机 执行命令

成功 success

转存失败重新上传取消

另一个测试 当然是hello word 啦

转存失败重新上传取消

测试输出成功 并且创建了a.txt 文件

转存失败重新上传取消

你可能感兴趣的:(jenkins,jenkins,运维)