目录
一、jenkins介绍
二、jenkins安装
三、了解jenkins
四、发布php代码
五、jenkins邮件配置-内置邮件
六、插件email-ext
七、破解管理员密码
八、部署java项目-创建私有仓库
九、部署java项目-下载zrlog源码
十、安装tomcat
十一、部署java项目-安装maven
十二、部署java项目-安装插件
十三、部署java项目-构建job
十四、部署java项目-发布war包
一、jenkins介绍
官网 https://jenkins.io
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
Jenkins是一个工具集,提供了各种各样的插件
比如获取git上最新的代码
比如可以帮你编译源代码
比如可以调用自定义的shell脚本远程执行命令
官方文档 https://jenkins.io/doc/
二、jenkins安装
最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8
安装jdk1.8
yum install -y java-1.8.0-openjdk
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install -y jenkins
systemctl start jenkins
less /var/log/jenkins/jenkins.log //查询admin密码
访问 http://ip:8080/ 进行安装
#安装jdk1.8
[root@minglinux-02 ~] yum install -y java-1.8.0-openjdk
#安装jenkins的yum源
[root@minglinux-02 ~] wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
[root@minglinux-02 ~] cat /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1
[root@minglinux-02 ~] rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key #安装密钥
#安装jenkins
[root@minglinux-02 ~] yum install -y jenkins #最新稳定版
#启动jenkins
[root@minglinux-02 ~] systemctl start jenkins
[root@minglinux-02 ~] ps aux |grep jenkins
jenkins 4948 161 10.7 3028584 199664 ? Ssl 23:37 0:16 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root 5004 0.0 0.0 112720 980 pts/0 R+ 23:37 0:00 grep --color=auto jenkins
#打开日志文件查询admin密码
[root@minglinux-02 ~] less /var/log/jenkins/jenkins.log
···
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
cdafdd40a0f4413abe1d60060311bba4
This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
···
# 然后就可以访问 http://ip:8080/ 进行安装了
- web安装jenkins
-
输入密钥
安装推荐的插件
-
开始安装
-
创建用户
-
完成
三、了解jenkins
Jenkins相关目录
rpm -ql jenkins
安装目录 /var/lib/jenkins
任务目录 /var/lib/jenkins/jobs
插件目录 /var/lib/jenkins/plugins
用户目录 /var/lib/jenkins/users
配置文件 /etc/sysconfig/jenkins
日志目录 /var/log/jenkins
jenkins备份可以将相关文件拷贝即可
[root@minglinux-02 /var/lib/jenkins] rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
#jenkins主目录
[root@minglinux-02 ~] cd /var/lib/jenkins
[root@minglinux-02 /var/lib/jenkins] ls
config.xml jenkins.telemetry.Correlator.xml secret.key.not-so-secret
hudson.model.UpdateCenter.xml jobs secrets
hudson.plugins.git.GitTool.xml logs updates
identity.key.enc nodeMonitors.xml userContent
jenkins.install.InstallUtil.lastExecVersion nodes users
jenkins.install.UpgradeWizard.state plugins workflow-libs
jenkins.model.JenkinsLocationConfiguration.xml secret.key
四、发布php代码
“系统管理”→“插件管理”→“已安装”
检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装
安装好两个插件后,点击“系统管理”→ “系统设置”
下拉,找到“Publish Over SSH”
事先在一台linux服务器上生成一对密钥
ssh-keygen -f /root/.ssh/jenkins //可以设置密码,也可不设置
“Passphrase”填写设置的密码, “Path to key”留空,“key”粘贴/root/.ssh/jenkins文件内容
点击左下角“增加”,SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/
如果是多台web server,继续点击“增加”,重复以上操作
点左下角的“保存”
点击“新建”,任务名称自定义,比如test,选择“构建一个自由风格的软件项目”点击下方的“确定”
描述,自定义
“源码管理”选择 “Git”
“Repository URL”填写你项目的git地址,如果是公共项目可以不设置下面的参数,直接填写一个git地址即可,若是私有项目,需要填写认证信息,比如可以选择 “SSH Username with private key”,然后设置Username以及private key
“Branches to build” 默认为*/master,意思是发布的分支为master,保持默认
“构建触发器”和“构建环境”留空
“构建”,选择 “Send files or execute commands over SSH”
SSH Server,Name 选择对应的服务器,Transfers, Source files填写**/**,表示全部文件
Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
最后点击左下角的“保存”
完成以上操作后,就可以使用这个刚刚创建的任务去工作了。
点击左面的“立即构建”,就能把git上的代码发布到指定的服务器上。
点击左下角的#1/#2… ,然后再点击 “控制台输出”可以查看输出日志
-
jenkins插件设置
检查两个必要插件是否安装,未安装就安装,装完重启jenkins再次查看
-
ssh密钥设置,点击系统管理-->系统设置,找到Publish Over SSH,新增SSH Server,可增加多个
-
点新增minglinux-01
-
minglinux-02
#私钥拷贝到jenkins
[root@minglinux-02 ~] cat .ssh/
authorized_keys id_rsa id_rsa.pub known_hosts
[root@minglinux-02 ~] cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxD0z6YHlzo9uEcJWoJBpArAtVrmgD/UQoW6a0LzYGylDtCWV
D+WlSTfle3KwSCOIN7pNAwXmY92T1UErmg233/VrJ13QAhX6sSeBrLEThRiV9BO+
tqYHqRmv/c3WUr62BJ/zOfAUnQnRfqdyR3rGiO+z/AJwjQzOZuK10NbMNZW3+e/Q
FjbQQUbjdO1Xx01fao5pyezR7hAY1WpQugtbjl+bwuvXUI9EgLnvUOJuQCFpqlsV
cME/T0tVNSoCTCl37TE/mzgwXnDySg15cyZNTq+WKrv+fhoi6q1l/P4rTn5u/Zf7
sVNzFP4pJf+r0DDWV+Jps6wCXlV/j0cBg6iYsQIDAQABAoIBAQCemniieYIq+HGV
mOQ60XyN16ZNOanMO909HA+0NWzURv2ZU+at+oUkMDEhHQisxUsK/1/O2a3jeOpK
qWl8ESpTsB7yqje799et5qg/0r5cDArmQi8ZoAcA/Onoz7wxFEI4aq5CXW/LnGvd
WahbbTeY5WMqgy5EUd1f+kvIhlJ12ycWiO1Vyba55+B69wppz9mAQlibtTlP2NME
whRGhCSxiBKkvuEbmmOkGpnUQVj1qG2DczL6Z79zg0xiXr5A3rgY12jOP4A8pTrE
HhwioANqmZGAYuue6raVI7+WHNiyBu4B/ZkRhAALvBU38P7d+0W4ryS25unku1jT
HRkVcn0hAoGBAPvpexnUS6OYZI4owUV7VpNzb1cWMSHvexvI6z3JkRTMOHbQRwvL
PNzNp+0Gntw9HJSqAHRqzhlnS3QvbMauteGLb0s1Wn2bDrpym9Uu5vt33p1YSBRl
8LDvm8Uje9hHx4e1vvwz0eKpV6Dn7qBoEg7/52M5PZNAOC5qEdHi5eNrAoGBAMds
cIR2n5n8hd++HqrdN4tbFxCzby8jfyEE0Own1/wHzc7vFEax7JqqxBISJVkQMmcO
90SWT6oCH6l46BvzTVfc6FdGd/p3a2JxmLEjcILGtSbwlwqaRvVnPepXsJLAWKNr
XPwrW4KoN+hOHwIh0TL3rntBa/6L76B+OWs8o9dTAoGAN1rR2xYkXNmC1x4rghod
Jx+JishsmXlnQu6+ioA9aiWKDsmrovLQ9/AVA2eeBuVC34QPv4UsrrZdBTXaoDoJ
63rZRNx/evRUozHF/m1lAkMP3uFkTV8tKaQtRX+LmjYDqVWNlxvH9heiEtCERik4
NqWS8eHFHxNQhRp3ufgy7esCgYBLuRRcaAKgYO+gjrtsW8V8h+EROWENgCgErKR8
F4D+tSPj4IpNccAK1q7Owc8mq2zIDzm69GxZfKbzHfLcshz7MOmUQjDKjU/cOJAn
KvLM5ZDhsVdY8k3hXwt2kUd94cWGf/z1z6zWxvM7pXZGw/qApOW+7Y+JPy+FPIim
/Ial+wKBgQCjRTViRDAKLpuBK9ooSA7x6VGprRyOnAo6rUvyrQIOP8+R79TACc71
U6wsqLzEguXiskB7mdQc9a0te57iaWkKNxnq2ZHRXk9d4TiylGbsHhfvj2p4loak
e9RQ1nQs3+7duPu11EDwKCjD24XdhwMeFC4pDU7mocgH4+2oWlgtkg==
-----END RSA PRIVATE KEY-----
#公钥则拷贝到远程机器和本机的authorized_keys中(需要发布代码到远程机器和本机)
[root@minglinux-02 ~] cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEPTPpgeXOj24RwlagkGkCsC1WuaAP9RChbprQvNgbKUO0JZUP5aVJN+V7crBII4g3uk0DBeZj3ZPVQSuaDbff9WsnXdACFfqxJ4GssROFGJX0E762pgepGa/9zdZSvrYEn/M58BSdCdF+p3JHesaI77P8AnCNDM5m4rXQ1sw1lbf579AWNtBBRuN07VfHTV9qjmnJ7NHuEBjValC6C1uOX5vC69dQj0SAue9Q4m5AIWmqWxVwwT9PS1U1KgJMKXftMT+bODBecPJKDXlzJk1Or5Yqu/5+GiLqrWX8/itOfm79l/uxU3MU/ikl/6vQMNZX4mmzrAJeVX+PRwGDqJix root@minglinux-02
-
创建新任务
-
定义任务的一些配置
-
输出日志
检查发布结果
[root@minglinux-02 ~] ll /tmp/jenkins/
总用量 100
drwxr-xr-x 2 nobody nobody 66 3月 19 2019 D11Z
drwxr-xr-x 2 nobody nobody 260 3月 19 2019 D12Z
drwxr-xr-x 2 nobody nobody 24 3月 19 2019 D13Z
drwxr-xr-x 2 nobody nobody 4096 3月 19 2019 D14Z
drwxr-xr-x 2 nobody nobody 4096 3月 19 2019 D15Z
drwxr-xr-x 2 nobody nobody 25 3月 19 2019 D17Z
drwxr-xr-x 2 nobody nobody 76 3月 19 2019 D18Z
drwxr-xr-x 2 nobody nobody 155 3月 19 2019 D19Z
drwxr-xr-x 2 nobody nobody 83 3月 19 2019 D20Z
drwxr-xr-x 2 nobody nobody 200 3月 19 2019 D21Z
drwxr-xr-x 2 nobody nobody 128 3月 19 2019 D22Z
-rw-r--r-- 1 nobody nobody 18044 3月 19 2019 LICENSE
-rw-r--r-- 1 nobody nobody 419 3月 19 2019 README.md
-rw-r--r-- 1 nobody nobody 66243 3月 19 2019 习题答案.txt
[root@minglinux-01 ~] ll /tmp/jenkins_test/
总用量 92
drwxr-xr-x 2 nobody nobody 80 3月 18 19:56 D11Z
drwxr-xr-x 2 nobody nobody 360 3月 18 19:56 D12Z
drwxr-xr-x 2 nobody nobody 60 3月 18 19:56 D13Z
drwxr-xr-x 2 nobody nobody 320 3月 18 19:56 D14Z
drwxr-xr-x 2 nobody nobody 440 3月 18 19:56 D15Z
drwxr-xr-x 2 nobody nobody 60 3月 18 19:56 D17Z
drwxr-xr-x 2 nobody nobody 100 3月 18 19:56 D18Z
drwxr-xr-x 2 nobody nobody 180 3月 18 19:56 D19Z
drwxr-xr-x 2 nobody nobody 100 3月 18 19:56 D20Z
drwxr-xr-x 2 nobody nobody 200 3月 18 19:56 D21Z
drwxr-xr-x 2 nobody nobody 160 3月 18 19:56 D22Z
-rw-r--r-- 1 nobody nobody 18044 3月 18 19:56 LICENSE
-rw-r--r-- 1 nobody nobody 419 3月 18 19:56 README.md
-rw-r--r-- 1 nobody nobody 66243 3月 18 19:56 习题答案.txt
#当git上的代码做了更新,只要在jenkins上再次点击立即构建就可以发布更新
五、jenkins邮件配置-内置邮件
系统管理 -> 系统设置 -> Jenkins Location 先设置系统管理员邮件地址,这里的邮件地址需要和后续要设置的发邮件地址一致。
往下拉,找到“邮件通知”那一栏
填写SMTP服务器,点右侧的高级,打勾“使用SMTP认证”,填写用户名密码,密码是授权码。如果使用的是ssl协议,还需要在这里打勾,smtp端口默认为25
可以打勾“通过发送测试邮件测试配置”,然后填写接收邮件的地址,点右侧的Test configuration
然后就是到已经构建过的job里去配置接收邮件的地址了。在最下面“构建后操作”那一栏,找到E-mail Notification,Recipients填写收邮件人
这个收件人只会在job构建失败时才能收到邮件
- 测试效果
#更改接受目录的权限使jenkins无法正常部署代码
[root@minglinux-02 /tmp] rm -rf jenkins_test/*
[root@minglinux-02 /tmp] chattr +i jenkins/
六、插件email-ext
插件名字Email Extension Plugin,默认已经安装
内置的邮件通知关掉
系统管理->系统设置->Extended E-mail Notification
填写SMTP server,点击Use SMTP Authentication,填写用户名、密码、SMTP port等
还需到对应构建任务中去配置一下,下拉到“构建后操作”
把原来的E-mail Notification设置删除
点击“增加构建后操作步骤”,选择“Editable Email Notification”,其中Project Recipient List为接收邮件的收件人,可以在默认内容后面增加额外的收件人邮箱,用逗号分隔
点击右下角的“Advanced settings”,定位到“Triggers”,然后点击下方的“Add Trigger”,可以增加发邮件的条件。
参考文章http://www.cnblogs.com/zz0412/p/jenkins_jj_01.html
七、破解管理员密码
忘记密码的解决方法
cd /var/lib/jenkins/users/admin
vim config.xml//定位到<passwordHash>那一行
删除改行,改为
<passwordHash>#jbcrypt:$2a$10$JFKBlGonPpR8RT5ecYP4BugSnMbVz7bpacMN68551C1iIM6Oj3Uu.</passwordHash>
重启一下jenkins
使用新密码123456登录
登录jenkins后尽快修改为强密码
#jenkins没有使用数据库,它的所有数据都存在config.xml文件中,包括密码
[root@minglinux-02 ~] cd /var/lib/jenkins/users/admin_2471990701947092050/
[root@minglinux-02 /var/lib/jenkins/users/admin_2471990701947092050] ls
config.xml
[root@minglinux-02 /var/lib/jenkins/users/admin_2471990701947092050] vim config.xml
#修改密码Hash如下
···
<passwordHash>#jbcrypt:$2a$10$JFKBlGonPpR8RT5ecYP4BugSnMbVz7bpacMN68551C1iIM6Oj3Uu.</passwordHash>
···
#重启jenkins稍等片刻重新使用123456作为密码登录即可
八、部署java项目-创建私有仓库
java的项目是需要编译和打包的
编译和打包用maven完成,所以需安装maven
本次实验,我们采用git私有仓库的形式,涉及到配置密钥
准备工作:
自己申请一个私有git仓库(http://gitlab.example.com/root/test-java.git)
生成密钥对
把公钥放到git服务端
下载zrlog的源码 https://codeload.github.com/94fzb/zrlog/zip/master
下载的文件为zip压缩文件,需要解压
然后用git push到新建的私有仓库里
-
新建项目,权限选Private
-
空仓库
-
将minglinux-02的id_rsa.pub公钥复制为SSH key
克隆仓库
#全局设置
[root@minglinux-02 ~] git config --global user.name "Administrator"
[root@minglinux-02 ~] git config --global user.email "admin@example.com"
[root@minglinux-02 /home] git clone git@192.168.162.130:root/test-java.git
正克隆到 'test-java'...
warning: 您似乎克隆了一个空版本库。
[root@minglinux-02 /home] cd test-java/
[root@minglinux-02 /home/test-java] touch README.md
[root@minglinux-02 /home/test-java] git add README.md
[root@minglinux-02 /home/test-java] git commit -m "add README"
[master(根提交) cd866b5] add README
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
[root@minglinux-02 /home/test-java] git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 216 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.162.130:root/test-java.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
[root@minglinux-02 /home/test-java] echo "hello" > README.md
[root@minglinux-02 /home/test-java] git add README.md
[root@minglinux-02 /home/test-java] git commit -m "ch README"
[master 8ab4799] ch README
1 file changed, 1 insertion(+)
[root@minglinux-02 /home/test-java] git push
Counting objects: 5, done.
Writing objects: 100% (3/3), 249 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.162.130:root/test-java.git
cd866b5..8ab4799 master -> master
-
查看远程仓库
九、部署java项目-下载zrlog源码
下载zrlog的源码 https://codeload.github.com/94fzb/zrlog/zip/master
下载的文件为zip压缩文件,需要解压
然后用git push到新建的私有仓库里
#下载zrlog的源码到本地
[root@minglinux-02 /home] wget https://codeload.github.com/94fzb/zrlog/zip/master
#解压
[root@minglinux-02 /home] ls
git lisi myproject mysql test test-java zrlog-master.zip
[root@minglinux-02 /home] unzip zrlog-master.zip
#push到远程私有仓库
[root@minglinux-02 /home] ls
git lisi myproject mysql test test-java zrlog-master zrlog-master.zip
[root@minglinux-02 /home] mv zrlog-master/* test-java/
mv:是否覆盖"test-java/README.md"? y
[root@minglinux-02 /home] cd test-java/
[root@minglinux-02 /home/test-java] ls
bin common data doc LICENSE mvnw mvnw.cmd pom.xml README.en-us.md README.md service web
[root@minglinux-02 /home/test-java] git add .
[root@minglinux-02 /home/test-java] git commit -m "add zrlog"
[root@minglinux-02 /home/test-java] git push
Counting objects: 594, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (542/542), done.
Writing objects: 100% (592/592), 1.85 MiB | 1.50 MiB/s, done.
Total 592 (delta 76), reused 0 (delta 0)
remote: Resolving deltas: 100% (76/76), done.
To git@192.168.162.130:root/test-java.git
8ab4799..2fc91a1 master -> master
十、安装tomcat
在另外一台机器minglinux-01上安装jdk + tomcat,其中jdk可以为openjdk,版本1.8
tomcat需要下载二进制包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.23/bin/apache-tomcat-8.5.23.tar.gz
tar zxvf apache-tomcat-8.5.23.tar.gz
mv apache-tomcat-8.5.23 /usr/local/tomcat
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
#01机器上已经安装了tomcat,但8080端口已被使用,需要修改监听端口
[root@minglinux-01 ~] ls /usr/local/tomcat/
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@minglinux-01 ~] netstat -lntp |grep 8080
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 28149/unicorn maste
[root@minglinux-01 ~] vim /usr/local/tomcat/conf/server.xml
#修改tomcat监听端口
···
69 <Connector port="8081" protocol="HTTP/1.1"
70 connectionTimeout="20000"
71 redirectPort="8443" />
#启动
[root@minglinux-01 ~] /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/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@minglinux-01 ~] netstat -lntp |grep 8081
tcp6 0 0 :::8081 :::* LISTEN 29273/java
#修改配置文件增加tomcat角色
[root@minglinux-01 ~] vim /usr/local/tomcat/conf/tomcat-users.xml
#加入以下内容
···
44 <role rolename="admin"/>
45 <role rolename="admin-gui"/>
46 <role rolename="admin-script"/>
47 <role rolename="manager"/>
48 <role rolename="manager-gui"/>
49 <role rolename="manager-script"/>
50 <role rolename="manager-jmx"/>
51 <role rolename="manager-status"/>
52 <user name="admin" password="123456" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
#重启tomcat
[root@minglinux-01 ~] /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/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@minglinux-01 ~] /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/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
-
测试无法进入管理页面
- 还需修改一个配置文件
[root@minglinux-01 ~] vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
#增加允许访问的网段,支持正则匹配
···
18 <Context antiResourceLocking="false" privileged="true" >
19 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
20 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.162.*" />
···
#改完配置文件重启一下服务
[root@minglinux-01 ~] /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/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@minglinux-01 ~] /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/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
- 登录成功
jenkins通过这个管理的api发布war包:maven把源码编译成war包,然后通过这个页面把war包传给远程tomcat并自动发布。
十一、部署java项目-安装maven
安装maven用来编译java源码并打包
下载地址 https://maven.apache.org/download.cgi
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
tar zxvf apache-maven-3.6.0-bin.tar.gz
mv apache-maven-3.6.0/usr/local/
/usr/local/apache-maven-3.6.0/bin/mvn --version
jenkins -> 系统管理 -> 全局工具配置
Maven Configuration -> Settings file in filesystem -> File Path /usr/local/apache-maven-3.6.0/conf/settings.xml
Global settings file on filesystem -> File Path 同上
下拉到Maven,Maven安装,Name(自定义,如maven3.6.0),MAVEN_HOME填 “/usr/local/apache-maven-3.6.0”
左下角“save”
#安装maven
[root@minglinux-02 ~] wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
[root@minglinux-02 /usr/local] tar zxvf apache-maven-3.6.0-bin.tar.gz
[root@minglinux-02 /usr/local] ./apache-maven-3.6.0/bin/mvn --version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/apache-maven-3.6.0
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.11.6.el7.x86_64", arch: "amd64", family: "unix"
-
jenkins设置新增maven
十二、部署java项目-安装插件
系统管理 -> 管理插件,检查是否已经安装 Maven Integration 和 Deploy to container Plugin,若没有安装则需要安装这两个插件
安装完插件后,需要重启jenkins
systemctl restart jenkins
创建新任务
登录jenkins,点击“新建”,任务名称自定义(我的叫做java-test)
选择“构建一个maven项目”
点击“确定”
- 安装插件
- 重启jenkins后新建任务可以看到
十三、部署java项目-构建job
创建新任务
登录jenkins,点击“新建”,任务名称自定义(我的叫做java-test)
选择“构建一个maven项目”
点击“确定”
源码管理
选择 “git”, Repository URL填写你的git地址,并配置对应的key,大家最好事前先在jenkins这台机器上能够直接远程git操作私有仓库
构建触发器、构建环境、Pre Steps保持默认
Build
“Root POM”为pom.xml, Goals and options 填写 clean install -D maven.test.skip=true,也可以留空
Post Steps、构建设置保持默认
#jenkins需要访问git,所以需要将jenkins所在服务器的私钥放到jenkins上,公钥放到gitlab上
[root@minglinux-02 /usr/local] cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxD0z6YHlzo9uEcJWoJBpArAtVrmgD/UQoW6a0LzYGylDtCWV
D+WlSTfle3KwSCOIN7pNAwXmY92T1UErmg233/VrJ13QAhX6sSeBrLEThRiV9BO+
tqYHqRmv/c3WUr62BJ/zOfAUnQnRfqdyR3rGiO+z/AJwjQzOZuK10NbMNZW3+e/Q
FjbQQUbjdO1Xx01fao5pyezR7hAY1WpQugtbjl+bwuvXUI9EgLnvUOJuQCFpqlsV
cME/T0tVNSoCTCl37TE/mzgwXnDySg15cyZNTq+WKrv+fhoi6q1l/P4rTn5u/Zf7
sVNzFP4pJf+r0DDWV+Jps6wCXlV/j0cBg6iYsQIDAQABAoIBAQCemniieYIq+HGV
mOQ60XyN16ZNOanMO909HA+0NWzURv2ZU+at+oUkMDEhHQisxUsK/1/O2a3jeOpK
qWl8ESpTsB7yqje799et5qg/0r5cDArmQi8ZoAcA/Onoz7wxFEI4aq5CXW/LnGvd
WahbbTeY5WMqgy5EUd1f+kvIhlJ12ycWiO1Vyba55+B69wppz9mAQlibtTlP2NME
whRGhCSxiBKkvuEbmmOkGpnUQVj1qG2DczL6Z79zg0xiXr5A3rgY12jOP4A8pTrE
HhwioANqmZGAYuue6raVI7+WHNiyBu4B/ZkRhAALvBU38P7d+0W4ryS25unku1jT
HRkVcn0hAoGBAPvpexnUS6OYZI4owUV7VpNzb1cWMSHvexvI6z3JkRTMOHbQRwvL
PNzNp+0Gntw9HJSqAHRqzhlnS3QvbMauteGLb0s1Wn2bDrpym9Uu5vt33p1YSBRl
8LDvm8Uje9hHx4e1vvwz0eKpV6Dn7qBoEg7/52M5PZNAOC5qEdHi5eNrAoGBAMds
cIR2n5n8hd++HqrdN4tbFxCzby8jfyEE0Own1/wHzc7vFEax7JqqxBISJVkQMmcO
90SWT6oCH6l46BvzTVfc6FdGd/p3a2JxmLEjcILGtSbwlwqaRvVnPepXsJLAWKNr
XPwrW4KoN+hOHwIh0TL3rntBa/6L76B+OWs8o9dTAoGAN1rR2xYkXNmC1x4rghod
Jx+JishsmXlnQu6+ioA9aiWKDsmrovLQ9/AVA2eeBuVC34QPv4UsrrZdBTXaoDoJ
63rZRNx/evRUozHF/m1lAkMP3uFkTV8tKaQtRX+LmjYDqVWNlxvH9heiEtCERik4
NqWS8eHFHxNQhRp3ufgy7esCgYBLuRRcaAKgYO+gjrtsW8V8h+EROWENgCgErKR8
F4D+tSPj4IpNccAK1q7Owc8mq2zIDzm69GxZfKbzHfLcshz7MOmUQjDKjU/cOJAn
KvLM5ZDhsVdY8k3hXwt2kUd94cWGf/z1z6zWxvM7pXZGw/qApOW+7Y+JPy+FPIim
/Ial+wKBgQCjRTViRDAKLpuBK9ooSA7x6VGprRyOnAo6rUvyrQIOP8+R79TACc71
U6wsqLzEguXiskB7mdQc9a0te57iaWkKNxnq2ZHRXk9d4TiylGbsHhfvj2p4loak
e9RQ1nQs3+7duPu11EDwKCjD24XdhwMeFC4pDU7mocgH4+2oWlgtkg==
-----END RSA PRIVATE KEY-----
-
最后配正确红色警告自动消失
-
Build
-
构建后操作
-
进行构建尝试报错需重新配置jdk
手动安装jdk
#从01机器拷贝jdk到02机器安装
[root@minglinux-01 ~] scp -r /usr/local/jdk1.8 192.168.162.132:/usr/local/jdk1.8
- 最好重启一次jenkins再次进行构建
十四、部署java项目-发布war包
构建后操作
点击“增加构建后操作步骤”选择“Deploy war/ear to a container”,“WAR/EAR files”填写“**/*.war”,Contex path留空,Containers选择Tomcat 8.x,Tomcat URL填写要把war包发布到的那台机器的url,如http://192.168.162.130:8081
Credentials这里需要点击右侧的Add,添加用户名和密码
继续点击“增加构建后操作步骤”选择“Editable Email Notification”
Project Recipient List,改为$DEFAULT_RECIPIENTS,671670671@ qq.com, 意思是增加额外一个收件人,前面测试做了就不做了
点击右下角的“Advanced settings”,定位到“Triggers”,然后点击下方的“Add Trigger”,可以增加发邮件的条件。
最后点左下角的“保存”
之后就可以点左侧的“立即构建”,然后查看对应任务的“控制台输出”
-
立即构建然后看控制台输出
#重新安装java,参照之前的做法https://www.jianshu.com/p/7650cc6baba0
[root@minglinux-02 /usr/local] ls /usr/local/jdk1.8/
bin javafx-src.zip LICENSE release THIRDPARTYLICENSEREADME.txt
COPYRIGHT jre man src.zip
include lib README.html THIRDPARTYLICENSEREADME-JAVAFX.txt
[root@minglinux-02 /usr/local] vim /etc/profile
[root@minglinux-02 /usr/local] vim /etc/profile
[root@minglinux-02 /usr/local] source /etc/profile
[root@minglinux-02 /usr/local] java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
#JDK的安装路径和Jenkins 默认的JDK路径不一致,建立软链接
[root@minglinux-02 /usr/local] ln -s /usr/local/jdk1.8/bin/java /usr/bin/java