文章目录
一、Jenkins是什么?
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
二、CI/CD是什么?
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。
有一篇博客详细讲解CI/CD的作用:CI/CD
三、Jenkins的功能
备份、迁移、恢复jenkins
首先找到JENKINS_HOME,因为Jenkins的所有的数据都是以文件的形式存放在JENKINS_HOME目录中。不管是迁移还是备份,只需要操作JENKINS_HOME就行了。
迁移:建议将JENKINS_HOME打包后在拷贝,windows可以用zip,rar等,Linux有zip,tar等,然后将打包的文件解压到新的JENKINS_HOME目录就行了。
备份:如果是临时备份,整个压缩文件就行了。
恢复:恢复的时候需要先停止jenkins。
升级Jenkins
Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新)。如此频繁的更新,怎么升级呢?
war:下载新版的war文件,替换旧版本war文件。重启即可。
二进制:卸载旧版本,安装新版本即可。
Jenkins程序下载地址:http://mirrors.jenkins-ci.org/
note:升级前,请测试该版本和你本地数据的兼容性。如何测试:将JENKINS_HOME拷贝一份到新的机器,用新版的程序启动。测试对应的插件和配置。
移动,删除或修改jobs
对于移动或删除jobs,只需要简单地移动或删除%JENKINS_HOEM%\jobs目录。
对于修改jobs的名字,只需要简单地修改%JENKINS_HOEM%\jobs下对应job的文件夹的名字。
对于不经常使用的job,只需要对%JENKINS_HOEM%\jobs下对应的jobs的目录zip或tar后存储到其他的地方。
Jenkins 启动时的命令行参数
–httpPort=
H
T
T
P
P
O
R
T
,
用
来
设
置
j
e
n
k
i
n
s
运
行
时
的
w
e
b
端
口
。
−
−
h
t
t
p
s
P
o
r
t
=
HTTP_PORT,用来设置jenkins运行时的web端口。 –httpsPort=
HTTPPORT,用来设置jenkins运行时的web端口。−−httpsPort=HTTP_PORT,表示使用https协议。
–httpListenAddress=$HTTP_HOST,用来指定jenkins监听的ip范围,默认为所有的ip都可以访问此jenkins server。
修改jenkins的timezone
如果jenkins所在的server的timezone不同于用户的timezone,这时候需要修改jenkins的timezone,需要在jenkins启动的时候增加下列参数-Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ
通过脚本启动jenkins
set JENKINS_HOME=C:\Documents and Settings\Administrator.hudson
cd /d %JENKINS_HOME%
java -jar jenkins.war –httpPort=8080
保存文件名为startjenkins.bat
查看jenkins的系统信息
以在jenkins的管理页面下的系统信息中,查看所有的jenkins的信息,例如jenkins的启动配置,所依赖的系统的环境变量,所安装的plugins。
四、常用插件介绍
插件名 | 功能 |
---|---|
perforce | 他的label功能来对成功的build进行label |
Dashboard View | 用来自定义自己的主页 |
Deploy Plugin | 插件支持将War/Jar部署到远程的应用服务器上,例如Tomcat,JBoss,Glassfish。正在寻找或开发.NET web 应用的自动发布插件。 |
NUnit Plugin | 创建/打开项目,设定项目执行配置,以及为项目添加测试组件等。 |
Publish Over FTP Plugin | 这个插件可以将构建的产物(例如:Jar)发布到FTP中去。 |
Publish Over SSH | 这个插件可以通过ssh连接其他Linux机器 |
JobConfigHistory Plugin | 非常有用,可以查看job历史配置信息 |
sidebar links | 这个插件不错,可以添加一些链接到jenkins上,比如把fitnesse的测试集链接添加到上面,方便访问。 |
五、Jenkins部署
manage
// 准备工作
[root@manage ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@manage ~]# vi /etc/selinux/config
SELINUX=disabled
[root@manage ~]# setenforce 0
[root@manage ~]# reboot
[root@manage ~]# setenforce 0
setenforce: SELinux is disabled
// 安装依赖包和工具
[root@manage ~]# yum -y install java-17-openjdk* wget vim
// 下载Apache-tomcat包
[root@manage ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
// 解压
[root@manage ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.54.tar.gz
[root@manage ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
[root@manage ~]# cd /usr/local/
[root@manage local]# ls
apache-tomcat-9.0.54 etc include lib64 sbin src
bin games lib libexec share
[root@manage local]# mv apache-tomcat-9.0.54/ tomcat
启动Tomcat,查看web界面内容
[root@manage local]# cd /usr/local/tomcat/bin/
[root@manage bin]# ls
bootstrap.jar makebase.sh
catalina-tasks.xml setclasspath.bat
catalina.bat setclasspath.sh
catalina.sh shutdown.bat
ciphers.bat shutdown.sh
ciphers.sh startup.bat
commons-daemon-native.tar.gz startup.sh
commons-daemon.jar tomcat-juli.jar
configtest.bat tomcat-native.tar.gz
configtest.sh tool-wrapper.bat
daemon.sh tool-wrapper.sh
digest.bat version.bat
digest.sh version.sh
makebase.bat
[root@manage bin]# /usr/local/tomcat/bin/startup.sh start
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
Using CATALINA_OPTS:
Tomcat started.
[root@manage bin]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
以下操作为Jenkins部署操作
将tomcat的配置web配置文件删除,替换成Jenkins包
[root@manage bin]# cd /usr/local/tomcat/webapps/
[root@manage webapps]# ls
ROOT docs examples host-manager manager
[root@manage webapps]# rm -rf docs/ examples/ host-manager/ manager/
[root@manage webapps]# ls
ROOT
[root@manage webapps]# cd ROOT/
[root@manage ROOT]# ls
RELEASE-NOTES.txt bg-button.png bg-upper.png tomcat.css
WEB-INF bg-middle.png favicon.ico tomcat.svg
asf-logo-wide.svg bg-nav.png index.jsp
[root@manage ROOT]# rm -rf *
[root@manage ROOT]# ls
[root@manage ROOT]#
在/usr/local/tomcat/webapps目录下载jenkins包
[root@manage ROOT]# cd /usr/local/tomcat/webapps/
[root@manage webapps]# wget http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war
[root@manage webapps]# ls
ROOT jenkins jenkins.war
重启服务
[root@manage webapps]# ls
ROOT jenkins jenkins.war
[root@manage webapps]# /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
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@manage webapps]# /usr/local/tomcat/bin/catalina.sh start
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
Using CATALINA_OPTS:
Tomcat started.
[root@manage webapps]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
使用ip+端口号+/jenkin(webapps目录下的解压目录) 访问Jenkins web界面
获取管理员密码
查看登录密码
[root@manage webapps]# cat /root/.jenkins/secrets/initialAdminPassword
0defb979c1334ff39e4960d7186c109a
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5612.html