Fork me on GitHub

jenkins之源码编译及远程部署到Tomcat

源码编译及远程部署到Tomcat

jenkins源码编译

新建Maven类型的项目命名为jenkins_war,配置Jenkins源码编译,只需配置两部分即可
代码仓库地址:https://github.com/jenkinsci/jenkins.git
编译参数:mvn clean install -Dmaven.test.skip=true

项目创建完成,点击构建,首次编译由于下载各类依赖,所需时间较长。
构建成功信息如下:

我们的目标就是将生成的jenkins_war/war/target/jenkins.war文件自动化部署到我们的一台tomcat服务器上。

tomcat部署及设置

部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz
# tar -zxf apache-tomcat-7.0.82.tar.gz
# sh apache-tomcat-7.0.82/bin/startup.sh
# tail -f apache-tomcat-7.0.82/logs/catalina.out
# # netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1003/sshd
tcp6 0 0 :::8009 :::* LISTEN 46574/java
tcp6 0 0 :::8080 :::* LISTEN 46574/java
tcp6 0 0 :::80 :::* LISTEN 37808/httpd
tcp6 0 0 :::22 :::* LISTEN 1003/sshd
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 46574/java
udp 0 0 127.0.0.1:323 0.0.0.0:* 661/chronyd
udp6 0 0 ::1:323 :::* 661/chronyd


配置
默认没有配置账号权限,访问server status页面报错,有配置提醒。
Tomcat 7 配置方法如下:

1
2
3
4
5
6
# vim apache-tomcat-7.0.82/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tomcat" password="s3cret" roles="admin-gui,manager-gui,manager-script,manager-status"/>

Tomcat 8 配置方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# vim apache-tomcat-8.5.27/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>

# vim /usr/local/apache-tomcat-8.5.27/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linke
d)?HashMap"/>
</Context>
# vim /usr/local/apache-tomcat-8.5.27/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linke
d)?HashMap"/>
</Context>

配置完成,重启服务,访问效果如下:
服务器状态页面

管理APP页面

Virtual Host Manager页面

部署war包

安装插件Deploy to container

注:该插件可以部署到容器版本如下
Tomcat 4.x/5.x/6.x/7.x
JBoss 3.x/4.x
Glassfish 2.x/3.x

手动发布War包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# cd /root/apache-tomcat-7.0.82/webapps
# ls -al jenkins-kx.war
-rw-r--r-- 1 root root 74260572 Jan 24 18:51 jenkins-kx.war
# sh /root/apache-tomcat-7.0.82/bin/shutdown.sh
# sh /root/apache-tomcat-7.0.82/bin/startup.sh
# # tail -f /root/apache-tomcat-7.0.82/logs/catalina.out
INFO: Starting Servlet Engine: Apache Tomcat/7.0.82
Jan 24, 2018 6:52:33 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /root/apache-tomcat-7.0.82/webapps/jenkins-kx.war
Jan 24, 2018 6:52:34 PM org.apache.catalina.deploy.WebXml setVersion
WARNING: Unknown version string [3.1]. Default version will be used.
Jan 24, 2018 6:52:38 PM org.apache.catalina.startup.ContextConfig validateSecurityRoles
WARNING: Security role name ** used in an <auth-constraint> without being defined in a <security-role>
Jan 24, 2018 6:52:38 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive /root/apache-tomcat-7.0.82/webapps/jenkins-kx.war has finished in 13,482 ms
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /root/apache-tomcat-7.0.82/webapps/ROOT
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /root/apache-tomcat-7.0.82/webapps/ROOT has finished in 51 ms
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /root/apache-tomcat-7.0.82/webapps/docs
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /root/apache-tomcat-7.0.82/webapps/docs has finished in 55 ms
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /root/apache-tomcat-7.0.82/webapps/examples
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /root/apache-tomcat-7.0.82/webapps/examples has finished in 318 ms
Jan 24, 2018 6:52:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /root/apache-tomcat-7.0.82/webapps/host-manager
Jan 24, 2018 6:52:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /root/apache-tomcat-7.0.82/webapps/host-manager has finished in 314 ms
Jan 24, 2018 6:52:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /root/apache-tomcat-7.0.82/webapps/manager
Jan 24, 2018 6:52:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /root/apache-tomcat-7.0.82/webapps/manager has finished in 145 ms
Jan 24, 2018 6:52:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 24, 2018 6:52:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 24, 2018 6:52:48 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 15066 ms
Jan 24, 2018 6:52:50 PM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
Jan 24, 2018 6:52:50 PM jenkins.InitReactorRunner$1 onAttained
INFO: Listed all plugins
Jan 24, 2018 6:52:52 PM jenkins.InitReactorRunner$1 onAttained
INFO: Prepared all plugins
Jan 24, 2018 6:52:52 PM jenkins.InitReactorRunner$1 onAttained
INFO: Started all plugins
Jan 24, 2018 6:52:52 PM jenkins.InitReactorRunner$1 onAttained
INFO: Augmented all extensions
Jan 24, 2018 6:52:52 PM jenkins.InitReactorRunner$1 onAttained
INFO: Loaded all jobs
Jan 24, 2018 6:52:52 PM hudson.model.AsyncPeriodicWork$1 run
INFO: Started Download metadata
Jan 24, 2018 6:52:54 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@7d4a1e4c: display name [Root WebApplicationContext]; startup date [Wed Jan 24 18:52:54 CST 2018]; root of context hierarchy
Jan 24, 2018 6:52:54 PM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@7d4a1e4c]: org.springframework.beans.factory.support.DefaultListableBeanFactory@12f07a94
Jan 24, 2018 6:52:54 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@12f07a94: defining beans [authenticationManager]; root of factory hierarchy
Jan 24, 2018 6:52:54 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@260b4a79: display name [Root WebApplicationContext]; startup date [Wed Jan 24 18:52:54 CST 2018]; root of context hierarchy
Jan 24, 2018 6:52:54 PM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@260b4a79]: org.springframework.beans.factory.support.DefaultListableBeanFactory@4c548b6e
Jan 24, 2018 6:52:54 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4c548b6e: defining beans [filter,legacy]; root of factory hierarchy
Jan 24, 2018 6:52:54 PM jenkins.InitReactorRunner$1 onAttained
INFO: Completed initialization
Jan 24, 2018 6:52:54 PM jenkins.install.SetupWizard init
INFO:

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

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

8cadcb10f0b44ba79f5ce7b41fa182c0

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

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

发布完成查看APP管理界面,新增了jenkins-kx

点击查看我们的应用APP界面

Web界面发布War包

待完善

Jenkins自动部署War包

安装相关插件Deploy to container Plugin

配置构建完成发布步骤

目录设置如果是/则会将war包传输到tomcat且命名为ROOT.war,如果设置为/jenkins,则会将war包传输到tomcat且命名为jenkins.war,并将war解压到jenkins目录下

查看构建及部署日志

发布结果

发布的War包及解压文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# cd /root/apache-tomcat-7.0.82/webapps/
# ls -l
-rw-r--r-- 1 root root 74096358 Jan 24 23:32 ROOT.war
# cd ROOT/
# ls -l
total 2156
drwxr-xr-x 3 root root 34 Jan 24 23:32 bootstrap
-rw-r--r-- 1 root root 1948 Jul 14 2017 ColorFormatter.class
drwxr-xr-x 5 root root 140 Jan 24 23:32 css
-rw-r--r-- 1 root root 1544 Jan 24 21:13 dc-license.txt
drwxr-xr-x 2 root root 29 Jan 24 23:32 executable
-rw-r--r-- 1 root root 17542 Jan 24 21:13 favicon.ico
drwxr-xr-x 12 root root 4096 Jan 24 23:32 help
drwxr-xr-x 6 root root 4096 Jan 24 23:32 images
-rw-r--r-- 1 root root 1919 Jul 14 2017 JNLPMain.class
drwxr-xr-x 2 root root 4096 Jan 24 23:32 jsbundles
-rw-r--r-- 1 root root 855 Jul 14 2017 LogFileOutputStream$1.class
-rw-r--r-- 1 root root 639 Jul 14 2017 LogFileOutputStream$2.class
-rw-r--r-- 1 root root 2243 Jul 14 2017 LogFileOutputStream.class
-rw-r--r-- 1 root root 16644 Jul 14 2017 Main.class
-rw-r--r-- 1 root root 1041 Jul 14 2017 MainDialog$1$1.class
-rw-r--r-- 1 root root 1060 Jul 14 2017 MainDialog$1.class
-rw-r--r-- 1 root root 2400 Jul 14 2017 MainDialog.class
-rw-r--r-- 1 root root 512 Jul 14 2017 Main$FileAndDescription.class
drwxr-xr-x 3 root root 36 Jan 24 23:32 META-INF
-rw-r--r-- 1 root root 71 Jan 24 21:13 robots.txt
drwxr-xr-x 3 root root 4096 Jan 24 23:32 scripts
drwxr-xr-x 7 root root 4096 Jan 24 23:32 WEB-INF
-rw-r--r-- 1 root root 2098273 Jan 24 23:32 winstone.jar

参考资料

======================================================
希望各位朋友支持一下

本文作者:dongsheng
本文地址https://mds1455975151.github.io/archives/d64ba80f.html
版权声明:转载请注明出处!

坚持技术分享,您的支持将鼓励我继续创作!