目录
- 1 jenkins下载地址:
- 2 jenkins启动方式(centos)
- 3 jenkins启动方式(Ubuntu)
- 4 jenkins版本升级
- 5 执行中遇到问题
- 5.1 提示because "sun.awt.FontConfiguration.head" is null
- 5.2 通过ip:9090,不能打开jenkins
- 5.3 Failed to start Jenkins Continuous Integration Server.
- 5.4 在/etc/sysconfig/jenkins中修改port ,systemctl start jenkins还是起8080端口
- 5.5 -bash: vim: command not found
- 5.6 在Ubuntu中修改jdk的环境变量不生效
- 5.7 在Ubuntu中提示Unable to locate package java-11-openjdk
- 5.8 怎么修改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中的用户名信息
第三步:
用修改后的进行验证