jenkins怎么用

54次阅读
没有评论

共计 10195 个字符,预计需要花费 26 分钟才能阅读完成。

这篇文章主要为大家展示了“jenkins 怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“jenkins 怎么用”这篇文章吧。

1、jenkins 介绍

官网 https://jenkins.io

Jenkins 是一个开源的、可扩展的持续集成、交付、部署(软件 / 代码的编译、打包、部署)基于 web 界面的平台。
jenkins 的特点:

持续集成和持续交付
作为一个可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器,或者变成任何项目的连续交付中心。

简易安装
Jenkins 是一个独立的基于 Java 的程序,可以立即运行,包含 Windows,Mac OS X 和其他类 Unix 操作系统。

配置简单
Jenkins 可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。

插件
通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。

扩展
Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。

分布式
Jenkins 可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建,测试和部署。

2、jenkins 安装

Jenkins 通常作为一个独立的应用程序在其自己的流程中运行,内置 Java servlet 容器 / 应用程序服务器(Jetty)。

在安装 jenkins 之前,需要确保已经安装了 java8 以上(可以是 Java 运行环境 JRE,也可以是 Java 开发工具包 JDK)

[root@jin-10 ~]# yum install -y java-1.8.0-openjdk

下载 jenkins 的 yum 源:

[root@jin-10 ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

安装 jenkins 的密钥:

[root@jin-10 ~]# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

安装 jenkins:

[root@jin-10 ~]# yum install -y jenkins

启动 jenkins:

[root@jin-10 ~]# systemctl start jenkins
[root@jin-10 ~]# ps aux|grep jenkins
jenkins 9180 88.3 9.9 2336480 99024 ? Ssl 14:20 0:07 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/libjenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root 9214 0.0 0.1 112724 996 pts/1 S+ 14:20 0:00 grep --color=auto jenkins

然后打开浏览器,并输入本机 IP:

管理员密码可以在 /var/lib/jenkins/secrets/initialAdminPassword 文件里找到,也可以在 jenkins 日志文件中找到 /var/log/jenkins/jenkins.log
输入管理员密码后,点击“继续”,进入 jenkins 的插件安装界面,此处我们选择“安装推荐的插件”:

此时 jenkins 就会自动安装需要安装的插件:

然后创建管理员帐户:

最后点击“开始使用 jenkins”:

此时会进入 jenkins 的默认界面:

jenkins 的相关目录:

[root@jin-10 ~]# rpm -ql jenkins
/etc/init.d/jenkins #jenkins 的开启 / 关闭 / 重启文件
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins # 配置文件
/usr/lib/jenkins #jenkins 的主目录
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins #jenkins 的缓存文件
/var/lib/jenkins # 安装目录
/var/log/jenkins # 日志目录 

jenkins 的插件管理

点击“系统管理”→“插件管理”→“已安装”,检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装。
在 Linux 服务器上生成一对密钥:

[root@jin-10 ~]# ssh-keygen -f/root/.ssh/jenkins
Generating public/private rsa key pair.
Created directory  /root/.ssh .
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/jenkins.
Your public key has been saved in /root/.ssh/jenkins.pub.
The key fingerprint is:
SHA256:fUC8UzU0Q8Ww5zL/zpHVMyMifRzmJ9GA0DoNQocy0Ak root@jin-10
The key s randomart image is:
+---[RSA 2048]----+
| E+ o..++ .=O+.|
| = o.o.o. o=.|
| o . =o +...|
| ++o+ oo.|
| S.o+.*o=+|
| ..o ++*|
| o.|
| .o|
| .+|
+----[SHA256]-----+

点击“系统管理”→“系统设置”下拉,找到“Publish Over SSH”。

填写下面的内容,测试是否能连接,然后点保存:

再新增一台主机为 jin-11
把 jin-10 上的公钥内容粘贴到 jin-11 的.ssh/authorized.keys 中
然后点新增:

测试连接成功后,点击保存。

3、发布代码

点击“创建一个新任务”或“新建 Item”:

jenkins 怎么用

jenkins 怎么用

jenkins 怎么用

jenkins 怎么用

jenkins 怎么用

再增加一台服务器 jin-11:

jenkins 怎么用

点击“保存”。然后在主控制台点击“Build Now”:

jenkins 怎么用

此时就会自动开始构建,我们可以点击控制台查看输出:

jenkins 怎么用

jenkins 怎么用

再在两台机器上查看是否成功:

jenkins 怎么用

jenkins 怎么用

可以看到,两台机器都执行成功。
如果 github 上的代码进行了更新,只要在 jenkins 上再次点击“立即构建”就可以发布更新。

4、配置邮件服务内置邮件的配置

依次点击 系统管理 – 系统设置 – Jenkins Location 先设置系统管理员邮件地址,这里的邮件地址需要和后续要设置的发邮件地址一致。

jenkins 怎么用

然后往下拉,找到“E-mail Notification”那一栏 填写 SMTP 服务器,此处我们以 qq 邮箱为例,SMTP 服务器为 smtp.qq.com,然后点右侧的高级,打勾“Use SMTP Authentication”,填写用户名密码,密码为授权码。如果使用的是 ssl 协议,还需要在这里打勾,smtp 端口默认为 25 可以打勾“通过发送测试邮件测试配置”,然后填写接收邮件的地址,点右侧的 Test configuration:

jenkins 怎么用

可以看到,邮件是可以成功发送的。

保存设置后,回到刚才的 test 项目下,增加一个构建后操作:

jenkins 怎么用

保存后,测试下:
首先删除上一次构建生成的文件,然后给 test_jenkins 目录加上特殊权限,使这个目录不能添加文件。

[root@jin-10 /tmp]# rm -rf test_jenkins/*
[root@jin-10 /tmp]# chattr +i test_jenkins/

再点击构建,查看控制台:

jenkins 怎么用

可以看到,构建失败,同时,邮件也已发出。
查看是否已收到邮件:

jenkins 怎么用

邮件插件 –Email Extension Plugin

由于内置的邮件功能一般,满足不了大部分的需求,所以一般我们都使用邮件插件 Email Extension Plugin 来发送邮件。
我们把内置的邮件通知关掉,再点击 系统管理 - 系统设置 - Extended E-mail Notification,配置如下:

jenkins 怎么用

jenkins 怎么用

再打开 test 项目,把原来的 E -mail Notification 删除,增加构建后操作 Editable Email Notification:

jenkins 怎么用

点击保存后,再选择立即构建,查看控制台输出:

jenkins 怎么用

jenkins 怎么用

jenkins 怎么用

可以看到,无论构建成功与否,都会发送邮件。

5、部署 JAVA 项目 5.1 配置 maven

JAVA 项目是需要编译和打包的,而编译和打包用的都是 maven,需要我们安装 maven 插件。
在安装 maven 插件之前,需要在主机上(jin-10)下载 maven 安装包并解压:
maven 的下载地址:https://maven.apache.org/download

[root@jin-10 /usr/local/src]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
--2019-09-12 13:27:03-- http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
正在解析主机  mirror.bit.edu.cn (mirror.bit.edu.cn)... 114.247.56.117, 2001:da8:204:1::22
正在连接  mirror.bit.edu.cn (mirror.bit.edu.cn)|114.247.56.117|:80...  已连接。已发出  HTTP  请求,正在等待回应... 200 OK
长度:9142315 (8.7M) [application/octet-stream]
正在保存至: “apache-maven-3.6.2-bin.tar.gz”100%[==============================================] 9,142,315 344KB/s  用时  28s 
2019-09-12 13:27:31 (321 KB/s) -  已保存  “apache-maven-3.6.2-bin.tar.gz” [9142315/9142315])
[root@jin-10 /usr/local/src]# tar zxvf apache-maven-3.6.2-bin.tar.gz

把解压的目录移动到 /usr/local/ 下:

[root@jin-10 /usr/local/src]# mv apache-maven-3.6.2 /usr/local/

查看 maven 的相关信息:

[root@jin-10 /usr/local]# ./apache-maven-3.6.2/bin/mvn --version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: /usr/local/apache-maven-3.6.2
Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name:  linux , version:  3.10.0-957.27.2.el7.x86_64 , arch:  amd64 , family:  unix

依次选择 系统管理 – 全局工具配置 – 新增 Maven:

jenkins 怎么用

5.2 安装相关的插件

系统管理 – 管理插件,查看 Maven Integration 和 Deploy to container 两个插件是否已安装,如没有则安装。

安装完成后需重启 jenkins

systemctl restart jenkins

5.3 创建私有仓库

打开 gitlab,并创建一个名为 test_java 的项目和空仓库:

jenkins 怎么用

jenkins 怎么用

先给 git 作一个全局配置, 设定用户和邮箱 :

[root@jin-10 ~]# git config --global user.name  zjin 
[root@jin-10 ~]# git config --global user.email  zjin@git.com

克隆远程仓库到本地, 然后写入一个文件 README.md 并推送到远程仓库:

[root@jin-10 ~]# git clone git@192.168.154.10:root/test_java.git
正克隆到   test_java ...
The authenticity of host  192.168.154.10 (192.168.154.10)  can t be established.
ECDSA key fingerprint is SHA256:WiJY7DRJy/UJcTtP5LjqnfYrqe9NTP+Rc8Fajy6dzBc.
ECDSA key fingerprint is MD5:c3:18:f8:05:ec:89:3f:1b:27:89:61:2b:ec:a7:1e:47.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added  192.168.154.10  (ECDSA) to the list of known hosts.
warning:  您似乎克隆了一个空版本库。[root@jin-10 ~]# cd test_java/
[root@jin-10 ~/test_java]# echo  Hello world!    README.md
[root@jin-10 ~/test_java]# git add README.md 
[root@jin-10 ~/test_java]# git commit -m  add README.md 
[master(根提交) f8d8431] add README.md
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
[root@jin-10 ~/test_java]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.154.10:root/test_java.git
 * [new branch] master -  master
分支  master  设置为跟踪来自  origin  的远程分支  master。[root@jin-10 ~/test_java]# echo  test_java project    README.md 
[root@jin-10 ~/test_java]# git add README.md 
[root@jin-10 ~/test_java]# git commit -m  change README.md 
[master 9b9f0bc] change README.md
 1 file changed, 1 insertion(+)
[root@jin-10 ~/test_java]# git push
warning: push.default  未设置,它的默认值将会在  Git 2.0  由   matching 
修改为   simple。若要不再显示本信息并在其默认值改变后维持当前使用习惯,进行如下设置: git config --global push.default matching
若要不再显示本信息并从现在开始采用新的使用习惯,设置: git config --global push.default simple
参见   git help config   并查找   push.default   以获取更多信息。(simple   模式由  Git 1.7.11  版本引入。如果您有时要使用老版本的  Git,为保持兼容,请用   current   代替   simple   模式)Counting objects: 5, done.
Writing objects: 100% (3/3), 274 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.154.10:root/test_java.git
 f8d8431..9b9f0bc master -  master

查看远程仓库是否有这个文件:

jenkins 怎么用

5.4 下载 zrlog 源码

下载地址:https://codeload.github.com/94fzb/zrlog/zip/master

下载后解压:

[root@jin-10 ~]# unzip zrlog-master.zip

解压后移动到 test_java 目录下, 然后推送到远程仓库:

[root@jin-10 ~]# mv zrlog-master/* test_java/
mv:是否覆盖 test_java/README.md? y
[root@jin-10 ~]# cd !$
cd test_java/
[root@jin-10 ~/test_java]# ls
bin data LICENSE mvnw.cmd README.en-us.md service
common doc mvnw pom.xml README.md web
[root@jin-10 ~/test_java]# git add .
[root@jin-10 ~/test_java]# git commit -m  add zrlog 
[root@jin-10 ~/test_java]# git push

查看是否推送成功到远程仓库:

jenkins 怎么用

5.5 安装并配置 tomcat

下载并解压:

[root@jin-10 /usr/local/src]# tar zxvf apache-tomcat-8.5.35.tar.gz 
[root@jin-10 /usr/local/src]# mv apache-tomcat-8.5.35 /usr/local/tomcat
[root@jin-10 /usr/local/src]# cd !$
cd /usr/local/tomcat
[root@jin-10 /usr/local/tomcat]# ls
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work

修改文件 vim /usr/local/tomcat/conf/tomcat-users.xml, 加入如下内容:

role rolename= admin / 
 role rolename= admin-gui / 
 role rolename= admin-script / 
 role rolename= manager / 
 role rolename= manager-gui / 
 role rolename= manager-script / 
 role rolename= manager-jmx / 
 role rolename= manager-status / 
 user name= admin  password= 123456  roles= admin,manager,admin-gui,admin-script,manager-gui,
manager-script,manager-jmx,manager-status  /

启动 tomcat 后会发现 8080 端口被占用, 我们修改下端口, 更改为 8081:

jenkins 怎么用

再修改配置文件 vim /usr/local/tomcat/webapps/manager/META-INF/context.xml, 增加如下图的 IP 段:

jenkins 怎么用

再重新启动 tomcat:

[root@jin-10 ~]# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@jin-10 ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@jin-10 ~]# netstat -lntp |grep 8081
tcp6 0 0 :::8081 :::* LISTEN 53513/java

在浏览器中打开, 并点击如图所示位置, 此时会提示我们输入用户名和密码进行认证:

jenkins 怎么用

jenkins 怎么用

点击确定后, 就会进入 Tomcat Web Application Manager 管理界面:

jenkins 怎么用

5.6 构建 job

返回 jenkins 的主界面, 点击新建, 名称自定义, 选择构建一个 maven 项目”, 点击确定。

jenkins 怎么用

源码管理,选择要构建的 gitlab 地址:

jenkins 怎么用

此时会报错,需要配置相对应的 key,点击“Add”那里,然后选择“jenkins”,类型选择“SSH Username with private key”,username 填写 git,再粘贴 jin-10 主机的私钥:

jenkins 怎么用

jenkins 怎么用

build 栏填写如下:

jenkins 怎么用

“构建后操作”,选择“增加构建后操作”里的 Editable Email Notification,如图所示:

jenkins 怎么用

5.7 发布 war 包

构建后操作
点击“增加构建后操作步骤”选择“Deploy war/ear to a container”,“WAR/EAR files”填写“**/*.war”,Contex path 留空,Containers 选择 Tomcat 8.x,Tomcat URL 填写要把 war 包发布到的那台机器的 url,如 http://192.168.154.10:8080 Credentials 这里需要点击右侧的 Add,添加用户名和密码

jenkins 怎么用

继续点击“增加构建后操作步骤”选择“Editable Email Notification”Project Recipient List,改为 $DEFAULT_RECIPIENTS,493734218@ qq.com,意思是增加额外一个收件人。

jenkins 怎么用

点击右下角的“Advanced settings”,定位到“Triggers”,然后点击下方的“Add Trigger”,可以增加发邮件的条件。
最后点左下角的“保存”。
之后就可以点左侧的“立即构建”,然后可以查看对应任务的“控制台输出”。

以上是“jenkins 怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计10195字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)