02 | Centos和Ubuntu中jenkins安装部署方式

1 jenkins下载地址:

1.1 war包下载地址

https://mirrors.jenkins.io/war-stable
https://get.jenkins.io/war/

2 jenkins启动方式(centos)

2.1 第一种:通过tomcat

参考地址:https://blog.csdn.net/u013916029/article/details/126515290

2.2.1 工作空间

/root/.jenkins

在这里插入图片描述

2.2 第二种:直接启动war

2.2.1 配置java

2.2.2 下载jenkins.war

2.2.3 执行java -jar启动

java  -jar jenkins.war  --httpPort=9090

2.2.4 工作空间

/root/.jenkins
在这里插入图片描述

2.3 第三种:通过docker构建

2.3.1 linux下执行命令

docker run \
  --rm \
  -u root \
  -p 8080:8080 \
  -v jenkins-data:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v "$HOME":/home \ 
  jenkinsci/blueocean

2.3.2 windows下执行命令

docker run ^
  --rm ^
  -u root ^
  -p 8080:8080 ^
  -v jenkins-data:/var/jenkins_home ^
  -v /var/run/docker.sock:/var/run/docker.sock ^
  -v "%HOMEPATH%":/home ^
  jenkinsci/blueocean

2.4 第四种:通过rpm安装

2.4.1 下载地址

https://mirrors.jenkins-ci.org/redhat/
在这里插入图片描述

2.4.2 安装jdk

查看jdk安装路径:

sudo update-alternatives --config java

在这里插入图片描述

2.4.3 赋予执行权

chmod +x *.rpm

2.4.4 执行RPM安装命令

rpm -ivh *.rpm

2.4.5 修改启动端口

vim /etc/sysconfig/jenkins
JENKINS_PORT=“8091”(根据使用情况修改)

2.4.6 启动和关闭

sudo service jenkins start/stop

2.4.7 工作空间

var/lib/jenkins

在这里插入图片描述

3 jenkins启动方式(Ubuntu)

环境:Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-112-generic x86_64)

3.1第一种:通过tomcat

参考2.1

3.2 第二种:直接启动war

注意:

1、升级jdk,如之前的jdk1.8,需要升级到jdk11或者更高版本

3.2.1 下载地址

wget https://mirrors.jenkins.io/war/2.374/jenkins.war

3.2.2 安装jdk

sudo apt install openjdk-11-jdk

3.2.3 执行命令

/usr/lib/jvm/java-11-openjdk-amd64/bin/java  -jar  /home/uascent/software/jenkins.war   --httpPort=8080

3.2.4 启动成功

在这里插入图片描述
在这里插入图片描述

3.3第三种:通过docker

参考2.3

3.4 第四种:通过deb安装

第一步:

  curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee \
    /usr/share/keyrings/jenkins-keyring.asc > /dev/null

第二步:

  echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
    https://pkg.jenkins.io/debian binary/ | sudo tee \
    /etc/apt/sources.list.d/jenkins.list > /dev/null

第三步:

  sudo apt-get update
  sudo apt-get install fontconfig openjdk-11-jre
  

第四步:

sudo apt-get install jenkins

在这里插入图片描述

4 jenkins版本升级

4.1 tomcat安装的升级

注意:

1、需要找到tomcat和jenkins对应版本,否则,存在jenkins不能启动的问题。

4.2 通过war升级

4.2.1 下载对应的war

4.2.2 升级jdk的版本

4.2.3 通过java -jar执行

xxxxx/bin/java【jdk路径】  -jar  /home/uascent/software/jenkins.war【jenkins所在位置】   --httpPort=8080【端口】

The last running version was 2.346.3. This Jenkins is version 2.374.

具体日志信息如下:

root@prd-devel-00:/usr/share/lintian/overrides# /usr/lib/jvm/java-11-openjdk-amd64/bin/java  -jar  /home/uascent/software/jenkins.war   --httpPort=8080
Running from: /home/uascent/software/jenkins.war
webroot: $user.home/.jenkins
2022-10-21 12:43:34.725+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
2022-10-21 12:43:36.107+0000 [id=1]	WARNING	o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2022-10-21 12:43:36.186+0000 [id=1]	INFO	
o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2022-10-21 12:43:36.597+0000 [id=1]	INFO	o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2022-10-21 12:43:37.071+0000 [id=1]	INFO	hudson.WebAppMain#contextInitialized: Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2022-10-21 12:43:37.223+0000 [id=1]	INFO	o.e.j.s.handler.ContextHandler#doStart: Started w.@6f38a289{Jenkins v2.374,/,file:///root/.jenkins/war/,AVAILABLE}{/root/.jenkins/war}
	hudson.PluginManager#loadDetachedPlugins: Upgrading Jenkins. The last running version was 2.346.3. This Jenkins is version 2.374.
2022-10-21 12:43:37.501+0000 [id=41]	INFO	jenkins.InitReactorRunner$1#onAttained: Started initialization
2022-10-21 12:43:37.540+0000 [id=40]	INFO	hudson.PluginManager#loadDetachedPlugins: Upgraded Jenkins from version 2.346.3 to version 2.374. Loaded detached plugins (and dependencies): [instance-identity.hpi]

4.3 通过rpm或者deb升级

参照2.4和3.4

4.4 其他混合升级

注意:混合升级时,需要注意工作空间的路径是否一致,否则,安装完成后,改变工作空间,有些繁琐。

5 执行中遇到问题

5.1 提示because “sun.awt.FontConfiguration.head” is null

执行java -jar jenkins.war --httpPort=9090

[root@centos7 soft]# java  -jar jenkins.war  --httpPort=9090
Running from: /home/soft/jenkins.war
webroot: $user.home/.jenkins
2022-10-18 11:04:34.476+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
2022-10-18 11:04:35.609+0000 [id=1]	WARNING	o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2022-10-18 11:04:35.681+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: jetty-10.0.11; built: 2022-06-21T21:12:44.640Z; git: d988aa016e0bb2de6fba84c1659049c72eae3e32; jvm 17.0.4.1+1-LTS-2
2022-10-18 11:04:35.999+0000 [id=1]	INFO	o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2022-10-18 11:04:36.067+0000 [id=1]	INFO	o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2022-10-18 11:04:36.613+0000 [id=1]	INFO	hudson.WebAppMain#contextInitialized: Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2022-10-18 11:04:36.710+0000 [id=1]	SEVERE	hudson.util.BootFailure#publish: Failed to initialize Jenkins
java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null
	at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
	at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224)
	at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106)
	at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:315)
	at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
	at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
Caused: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85)
Caused: java.lang.InternalError
	at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:87)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:75)
	at java.desktop/java.awt.Font.getFont2D(Font.java:526)
	at java.desktop/java.awt.Font.getFamily(Font.java:1436)
	at java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1410)
	at java.desktop/java.awt.Font.getFamily(Font.java:1402)
	at java.desktop/java.awt.Font.toString(Font.java:1895)
	at hudson.util.ChartUtil.<clinit>(ChartUtil.java:270)
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:217)
Caused: hudson.util.AWTProblem
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:218)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1043)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
	at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:978)
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:895)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.server.Server.start(Server.java:469)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.server.Server.doStart(Server.java:414)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at winstone.Launcher.<init>(Launcher.java:201)
	at winstone.Launcher.main(Launcher.java:414)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at executable.Main._main(Main.java:334)
	at executable.Main.main(Main.java:116)
2022-10-18 11:04:36.983+0000 [id=1]	INFO	o.e.j.s.handler.ContextHandler#doStart: Started w.@c3edf4c{Jenkins v2.368,/,file:///root/.jenkins/war/,AVAILABLE}{/root/.jenkins/war}
2022-10-18 11:04:36.997+0000 [id=1]	INFO	o.e.j.server.AbstractConnector#doStart: Started ServerConnector@768fc0f2{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
2022-10-18 11:04:37.011+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: Started Server@54504ecd{STARTING}[10.0.11,sto=0] @3086ms
2022-10-18 11:04:37.015+0000 [id=24]	INFO	winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled

解决方法:

yum install fontconfig
fc-cache --force

结果:

[root@centos7 soft]# java  -jar jenkins.war  --httpPort=9090
Running from: /home/soft/jenkins.war
webroot: $user.home/.jenkins
2022-10-18 11:11:05.751+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
2022-10-18 11:11:05.839+0000 [id=1]	WARNING	o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2022-10-18 11:11:05.915+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: jetty-10.0.11; built: 2022-06-21T21:12:44.640Z; git: d988aa016e0bb2de6fba84c1659049c72eae3e32; jvm 17.0.4.1+1-LTS-2
2022-10-18 11:11:06.221+0000 [id=1]	INFO	o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2022-10-18 11:11:06.282+0000 [id=1]	INFO	o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2022-10-18 11:11:06.747+0000 [id=1]	INFO	hudson.WebAppMain#contextInitialized: Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2022-10-18 11:11:06.888+0000 [id=1]	INFO	o.e.j.s.handler.ContextHandler#doStart: Started w.@30c0ccff{Jenkins v2.368,/,file:///root/.jenkins/war/,AVAILABLE}{/root/.jenkins/war}
2022-10-18 11:11:06.899+0000 [id=1]	INFO	o.e.j.server.AbstractConnector#doStart: Started ServerConnector@f0f2775{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
2022-10-18 11:11:06.910+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: Started Server@75c072cb{STARTING}[10.0.11,sto=0] @1674ms
2022-10-18 11:11:06.926+0000 [id=25]	INFO	winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2022-10-18 11:11:07.153+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Started initialization
2022-10-18 11:11:07.166+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2022-10-18 11:11:07.967+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2022-10-18 11:11:07.970+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Started all plugins
2022-10-18 11:11:07.983+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2022-10-18 11:11:08.208+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: System config loaded
2022-10-18 11:11:08.209+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: System config adapted
2022-10-18 11:11:08.209+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2022-10-18 11:11:08.210+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2022-10-18 11:11:08.249+0000 [id=46]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Download metadata
2022-10-18 11:11:08.273+0000 [id=46]	INFO	hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2022-10-18 11:11:08.957+0000 [id=33]	INFO	jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

2faabffeba88480799xxxxxxxxx

This may also be found at: /root/.jenkins/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
2022-10-18 11:11:52.867+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: Completed initialization
2022-10-18 11:11:52.882+0000 [id=24]	INFO	hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
2022-10-18 11:11:53.418+0000 [id=46]	INFO	h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2022-10-18 11:11:53.418+0000 [id=46]	INFO	hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
2022-10-18 11:11:53.420+0000 [id=46]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Download metadata. 45,156 ms
2022-10-18 11:20:40.544+0000 [id=68]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Periodic background build discarder
2022-10-18 11:20:40.546+0000 [id=68]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Periodic background build discarder. 1 ms

5.2 通过ip:9090,不能打开jenkins

解决思路:
第一步:先查看jenkins的进程

ps -ef|grep jenkins

在这里插入图片描述
第二步:查看端口是否被禁

netstat -ntap|grep 9090

在这里插入图片描述
第三步:查看9090是否在开放端口中

firewall-cmd --list-ports

在这里插入图片描述
发现9090不在开放端口列表中

第四步:把9090放到开放端口列表中

firewall-cmd --permanent --zone=public --add-port=9090/tcp

在这里插入图片描述

第五步:重启firewalld

 systemctl reload firewalld

在这里插入图片描述

第六步:在次查看9090是否在开放端口中
在这里插入图片描述
第七步:在通过ip:9090,能打开jenkins
在这里插入图片描述

5.3 Failed to start Jenkins Continuous Integration Server.

在这里插入图片描述
解决方法:
在这里插入图片描述
原因是安装的jdk版本是1.8,需要最少是11。需要更换jdk的版本。

安装jdk11

 yum install fontconfig java-11-openjdk

在次执行./jenkins start 成功
在这里插入图片描述
如果通过ip+端口,不能访问,请参照3.2 进行操作。

5.4 在/etc/sysconfig/jenkins中修改port ,systemctl start jenkins还是起8080端口

排查发现
/usr/lib/systemd/system/jenkins.service 中Environment的端口配置还是8080
在这里插入图片描述
解决方法:
第一步:修改Environment的端口配置为对应的端口

第二步:修改完,执行

systemctl daemon-reload

第三步:验证
在这里插入图片描述
在这里插入图片描述

5.5 -bash: vim: command not found

解决方法:

yum -y install vim*

5.6 在Ubuntu中修改jdk的环境变量不生效

解决方法:
在centos中是修改/etc/profile,在Ubuntu中是修改/etc/environment

第一步:打开 /etc/environment 文件:
vim /etc/environment

第二步:在文件末尾添加以下行:
JAVA_HOME=“/usr/lib/jvm/java-11-openjdk-amd64”

第三步:使/etc/environment生效
source /etc/environment

第四步:验证 JAVA_HOME

echo $JAVA_HOME

5.7 在Ubuntu中提示Unable to locate package java-11-openjdk

解决方法:

apt-get install software-properties-common
apt-get update
add-apt-repository ppa:openjdk-r/ppa
apt-get install openjdk-11-jdk

5.8 怎么修改jenkins的用户名

解决方法:
第一步:
进入JENKINS_HOME下的user目录,找到 config.xml
在这里插入图片描述
第二步:
修改users.xml和xx_8252979790621287270下边的config.xml中的用户名信息
第三步:
用修改后的进行验证

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值