| 主机 | IP地址 | 服务 |
|---|---|---|
| server2 | 192.168.244.131 | jenkins |
| node2 | 192.168.244.136 | tomcat |
在两台主机上部署相应的服务
在浏览器上访问 192.168.244.131:8080/jenkins server2主机IP
在浏览器上访问 192.168.244.136:8080 node2主机IP
在server2上简单部署一个项目
(没有要自己注册一个账号)在网页上找包
下载git拉包
[root@server2 opt]# yum provides *bin/git
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 1:39:34 ago on Tue Oct 19 15:24:11 2021.
git-core-2.27.0-1.el8.x86_64 : Core package of git
...: with minimal functionality
Repo : AppStream
Matched from:
Other : *bin/git
[root@server2 opt]# yum -y install git-core
拉包
[root@server2 opt]# git clone https://gitee.com/skywsy/tomcat-java-demo.git Cloning into 'tomcat-java-demo'... remote: Enumerating objects: 558, done. remote: Counting objects: 100% (558/558), done. remote: Compressing objects: 100% (316/316), done. Receiving objects: 28% (161/558), 396.00 KiB | 383. ...... [root@server2 opt]# ls test tomcat-java-demo [root@server2 opt]#
把tomcat-java-demo打包war包
在这之前要下载mvn命令
[root@server2 tomcat-java-demo]# yum provides *bin/mvn
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 1:46:36 ago on Tue Oct 19 15:24:11 2021.
maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch :
...: Java project management and project
...: comprehension tool
Repo : AppStream
Matched from:
Other : *bin/mvn
maven-lib-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch :
...: Core part of Maven
Repo : AppStream
Matched from:
Other : *bin/mvn
[root@server2 tomcat-java-demo]# yum -y install maven
打包(war包)
[root@server2 tomcat-java-demo]# ls Dockerfile README.md deploy.yaml pom.xml LICENSE db jenkinsfile src [root@server2 tomcat-java-demo]# mvn clean package ...... ream-1.4.9.jar (549 kB at 292 kB/s) [INFO] Packaging webapp [INFO] Assembling webapp [ly-simple-tomcat] in [/opt/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT] [INFO] Processing war project [INFO] Webapp assembled in [159 msecs] [INFO] Building war: /opt/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 05:00 min [INFO] Finished at: 2021-10-19T18:52:44+08:00 [INFO] ------------------------------------------------------------------------ [root@server2 tomcat-java-demo]# ls Dockerfile README.md deploy.yaml pom.xml target LICENSE db jenkinsfile src [root@server2 tomcat-java-demo]# [root@server2 tomcat-java-demo]# cd target/ [root@server2 target]# ls classes generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-archiver maven-status
把ly-simple-tomcat-0.0.1-SNAPSHOT.war传到node2上
[root@server2 target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war DD.war #随便改个名字 [root@server2 target]# ls DD.war ly-simple-tomcat-0.0.1-SNAPSHOT classes maven-archiver generated-sources maven-status [root@server2 target]# [root@server2 target]# [root@server2 target]# scp DD.war root@192.168.244.136:/usr/local/tomcat/webapps/ root@192.168.244.136's password: DD.war 100% 17MB 224.1MB/s 00:00 ##在node2上擦查看 [root@node2 ~]# cd /usr/local/tomcat/webapps/ [root@node2 webapps]# ls DD ROOT examples manager DD.war docs host-manager [root@node2 webapps]#
用node2的IP访问网页
拉包
在server2查看
[root@server2 target]# pwd /root/.jenkins/workspace/tom/target [root@server2 target]# ls classes generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-archiver maven-status
修改名字
在主机server2上查看
[root@server2 target]# ls classes maven-archiver generated-sources maven-status ly-simple-tomcat-0.0.1-SNAPSHOT myapp.war
ssh "ssh root@192.168.244.136 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/DD'"
部署项目
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://gitee.com/forgotten/tomcat-java-demo.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"
sh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war "
// To run Maven on a Windows agent, use
// bat "mvn -Dmaven.test.failure.ignore=true clean package"
}
}
stage('publish') {
steps {
sh "ssh root@192.168.244.136 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/DD'"
sh "scp target/myapp.war root@192.168.244.136:/usr/local/tomcat/webapps"
sh "ssh root@192.168.244.136 '/usr/local/tomcat/bin/shutdown.sh;slepp 3; /usr/local/tomcat/bin/catalina.sh start'"
}
}
}
}
创建免密登录
[root@server2 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:3eu2cD23cNUuCjg+oI1exj3kosIW0P7KPVdk4LwMXOk root@server2 The key's randomart image is: +---[RSA 3072]----+ | . | | + | | . . = . | |. . o E o. . .| | o o +S . . o| | o .++.. o ..| | . o +=o* o o.+.o| | .+.=+oo.o =..o+.| | .o++o .. .+. . | +----[SHA256]-----+ [root@server2 ~]# [root@server2 ~]# [root@server2 ~]# ls .ssh/ id_rsa id_rsa.pub known_hosts [root@server2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.244.136 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.244.136's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.244.136'" and check to make sure that only the key(s) you wanted were added.
构建
在node2上查看
[root@node2 webapps]# ls ROOT examples manager myapp.war docs host-manager myapp
访问网页
拉取私有仓库手动拉取
[root@server2 ~]# git clone https://gitee.com/skywsy/tomcat-java-demo.git Cloning into 'tomcat-java-demo'... Username for 'https://gitee.com': skywsy 用户名 Password for 'https://skywsy@gitee.com': 密码 .....
自动拉取



