Jenkins是一个开源软件项目,是基于Java
开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成
*Jenkins是一个用 Java 编写的开源自动化软件项目。*是基于Java开发的一种持续集成工具,用于监控持续重复的工作。Jenkins 用于持续构建和测试软件项目 ,集成了各种开发生命周期过程,包括构建、文档、测试、打包、模拟、部署、静态分析等等。
Jenkins功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
首先保证系统中已经安装了jdk
,最好是jdk1.5
以上。
第一种启动方法,切换到jenkins.war
存放的目录,输入如下命令:
$ java -jar jenkins.war
如果需要修改端口可以使用如下命令:
$ java -jar jenkins.jar--httpPort=8081
然后在浏览器中(推荐用火狐输入localhost:8081,localhost
可以是本机的ip,也可以是计算机名。就可以打开jenkins
。
第二种方法是用tomcat
打开
解压tomcat到某个目录,如/usr/local
,进入tomcat
下的/bin目录,启动tomcat
将jenkins.war
文件放入tomcat
下的webapps
目录下,启动tomcat时,会自动在webapps
目录下建立jenkins
目录,在地址栏上需要输入localhost:8080/jenkins
Jenkins 的一个流程
Jenkins 的官网:https://www.jenkins.io/
中文版
点击文档后的页面
下载Jenkins
Jenkins 下载打包工具的地址
如果需要安装 maven 、JDK 、git 、ant 。默认是 maven
如果从这里安装,只能Jenkins 的这页面能用,系统是不能用的。所以一般安装软件直接在主机上安装。
系统平台 | IP | 主机名 |
---|---|---|
centos8/redhat8 | 192.168.229.148 | node1 |
centos8/redhat8 | 192.168.229.150 | node2 |
在node1 主机打完包之后使用 scp 传送到 node2
node1 跑Tomcat 跟Jenkins 、 node2 跑Tomcat。 然后在node1 打包完之后再传到 node2 ,然后使用 node2 的IP加端口访问是否能访问到。
node1 我已部署Tomcat跟 Jenkins 如有不懂请看我另一篇文章 http://t.csdn.cn/g8HK4
node2 部署Tomcat过程 在这篇文章里 http://t.csdn.cn/g8HK4
在node1上操作
## 首先先用命令行的方式进行打包看是否能打包,再用Jenkins 的方式打包。
## 下载 git 命令
[root@node1 ~]# dnf -y install git
## 使用git 命令拉取下来 。。 如果是私有的就需要登录账号跟密码,才能拉取
[root@node1 ~]# git clone https://github.com/chendao2015/tomcat-java-demo.git
Cloning into 'tomcat-java-demo'...
remote: Enumerating objects: 549, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 549 (delta 0), reused 2 (delta 0), pack-reused 546
Receiving objects: 100% (549/549), 5.08 MiB | 1.09 MiB/s, done.
Resolving deltas: 100% (213/213), done.
[root@localhost ~]# ls
anaconda-ks.cfg
tomcat-java-demo ## 拉取好了
[root@node1 ~]# cd tomcat-java-demo/
[root@node1 tomcat-java-demo]# ls
db Dockerfile LICENSE pom.xml README.md src
## 使用 pom.xml 打包的
## build.xml 使用 ant打包的
进行打包
[root@node1 tomcat-java-demo]# mvn clean package -Dmaven.test.skip=true
......打包过程省略N
打包完成后会看到 有target 目录
[root@node1 tomcat-java-demo]# ls
db Dockerfile LICENSE pom.xml README.md src target
进入 target 目录
[root@node1 tomcat-java-demo]# cd target/
[root@node1 target]# ls
classes generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-archiver maven-status
## 使用 scp 命令传到 node2 主机的 /usr/local/tomcat/webapps 的下面
[root@node1 target]# scp ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.229.150:/usr/local/tomcat/webapps/
The authenticity of host '192.168.229.150 (192.168.229.150)' can't be established.
ECDSA key fingerprint is SHA256:BSCsrBDXmOy0vQCzkxthvFwA+8EIkoMVyeVV45QrFdM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.229.150' (ECDSA) to the list of known hosts.
root@192.168.229.150's password:
ly-simple-tomcat-0.0.1-SNAPSHOT.war 100% 17MB 117.4MB/s 00:00
## 在 node2 上查看
[root@node2 webapps]# pwd
/usr/local/tomcat/webapps
[root@node2 webapps]# ls
ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war
## 已经传过来 访问以下
## 设置免密登录
[root@node1 ~]# 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:Gy5a/XPsjBCOipQnI25IbAiproNG0yahSkSHEICDSzI root@node1
The key's randomart image is:
+---[RSA 3072]----+
|O.. |
|E+ . |
|+=. |
|+o |
|B o S |
|+O + = + |
|@ O . + * . |
|** = + . o.oo |
|=o. o o+o |
+----[SHA256]-----+
[root@node1 ~]#
[root@node1 ~]# ssh-copy-id root@192.168.229.150
/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.229.150's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.229.150'"
and check to make sure that only the key(s) you wanted were added.
node2 主机访问
这时可以使用 Jenkins 操作了,创建一个项目
点击确定后的页面
脚本内容
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://github.com/chendao2015/tomcat-java-demo.git' ## 注意:如果是私有仓库还要添加账号跟密码
}
}
stage("make pkg"){
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
}
}
stage(publish){
steps{
sh """
scp target/ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.229.150:/usr/local/tomcat/webapps/
ssh root@192.168.229.150 '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'
"""
}
}
}
}
注意:在执行之前需要设置免密登录
node2 操作
[root@node2 ~]# cd /usr/local/tomcat/webapps/
[root@node2 webapps]# ls
ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war
node2 访问
其实上面的脚本代码还可以优化的
/opt/test1.sh 脚本内容
[root@node1 ~]# cat /opt/test1.sh
#!/bin/bash
cd /opt/
git clone 'https://github.com/chendao2015/tomcat-java-demo.git' ## 拉取代码
cd /opt/tomcat-java-demo
mvn clean package -Dmaven.test.skip=true && \ ## 打包
scp target/ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.229.150:/usr/local/tomcat/webapps/ ## 使用scp 命令把打包好的东西传到node2主机的指定位置上
ssh root@192.168.229.150 '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'