1.jenkins介绍
- 官网 https://jenkins.io
- Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
- Jenkins是一个工具集,提供了各种各样的插件
- 比如获取git上最新的代码
- 比如可以帮你编译源代码
- 比如可以调用自定义的shell脚本远程执行命令
- 官方文档 https://jenkins.io/doc/
2.jenkins安装
[root@linux-001 ~]# yum install-y java-1.8.0-openjdk.x86_64
安装过程省略
[root@linux-001 ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
--2019-08-06 07:12:13-- https://pkg.jenkins.io/redhat/jenkins.repo
正在解析主机 pkg.jenkins.io (pkg.jenkins.io)... 52.202.51.185
正在连接 pkg.jenkins.io (pkg.jenkins.io)|52.202.51.185|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:71
正在保存至: “/etc/yum.repos.d/jenkins.repo”
100%[=================================================================================================================================================>] 71 --.-K/s 用时 0s
2019-08-06 07:12:22 (14.5 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [71/71])
[root@linux-001 ~]# cat /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1
[root@linux-001 ~]# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
[root@linux-001 ~]# yum install -y jenkins
安装过程省略
[root@linux-001 ~]# systemctl start jenkins
[root@linux-001 ~]# ps aux |grep jenkins
jenkins 35708 54.7 13.4 2305632 112064 ? Ssl 07:22 0:08 /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 35752 0.0 0.1 112724 984 pts/1 S+ 07:23 0:00 grep --color=auto jenkins
[root@linux-001 ~]# netstat -lntp |grep java
tcp6 0 0 :::8080 :::* LISTEN 35708/java
[root@linux-001 ~]#
启动浏览器,输入ip地址加端口
查看页面提示可查看此文件 /var/lib/jenkins/secrets/initialAdminPassword
输入密码,点继续,这人是需要安装jenkins的插件,由于我们还不太了解插件的安装,在此处选择推荐安装。
可以查看到有很多推荐的插件安装。
插件安装完成侯,会自动弹出如下页面
创建好账号密码,点击保存并完成,出现如下画面
这次可以看到jenkins安装就绪
。
点击开始使用jenkins,即可打开jenkins的工作台
3.jenkins相关文件解析
参数 | 含义 |
---|---|
配置文件所在路径 | /etc/sysconfig/jenkins |
程序文件主目录 | /var/lib/jenkins/ |
jobs | 项目的配置保存目录 |
logs | 日志目录 |
nodes | 是一些节点管理的信息,Jenkins配置主从之后会在这里记录。 |
plugins | 插件所在目录 |
secrets | 密码密钥相关的目录 |
updates | 升级相关的文件 |
userContent | 游客测试目录 |
users | 所有用户信息都在这里保存。 |
workflow-libs | 库相关信息 |
4.发布php代码
4.1安装git和publish插件
检查jenkins是否有安装Git plugin 和Publish Over SSH 两个插件,可以查看到git plugin插件已经安装;
publish over ssh插件没有安装,可以通过可选插件中看到,publish over ssh可以直接安装,安装完成后,需要重启jenkins。
4.2生成密钥对
在配置插件的时候需要先生成密钥对,这个是需要ssh连接到远程服务器。由于我们已经生成密钥对,这儿就不生成了。
4.3配置密钥对
- Passphrase”填写设置的密码,
- “Path to key”留空
- “key”粘贴本机服务器的私钥
4.4创建一个任务
4.5 测试这个任务
点开任务,点击build now,即可开始创建这个任务。
在build history中的序号,可以查看控制台输出信息,如下图。
可以查看到gitee上的文件已经被我们拉取到了服务器上。
5.修改jenkins的管理员账号密码
/var/lib/jenkins/users/admin_4589538377643947679/config.xml
- 修改上图中内容
- <passwordHash>#jbcrypt:$2a 10 10 10pre7I4liZFdF6ZE05QntTOoKoKa5pCUumaFO/mMzMoH09bNBzyj6O</passwordHash>
- 重启一下jenkin,新密码为aminglinux.com
6.jenkins 部署java项目
使用jenkins创建一个java项目,编译java源码,并且把编译好的war包传送到远程服务器。
6.1 部署一个仓库,仓库中包含zrlog的源码包
- 下载一个zrlog的源码,地址:https://github.com/94fzb/zrlog
- 可以使用git clone拉取代码,此处我下载到windows上,然后传入linux系统中
- 解压zrlog的源码包
- 此处设置了gitee的一个空仓库,设置仓库前需要把服务器上的公钥传入gitee的账号中
[root@linux-02 ~]# git clone git@gitee.com:vantone/test-java.git
正克隆到 'test-java'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 0), reused 0 (delta 0)
接收对象中: 100% (8/8), done.
[root@linux-02 ~]# mv zrlog-master/* test-java/
[root@linux-02 ~]# cd test-java/
[root@linux-02 test-java]# git add .
[root@linux-02 test-java]# git commit -m 'add new'
打标签省略
[root@linux-02 test-java]# git push -u origin master
Counting objects: 598, done.
Compressing objects: 100% (548/548), done.
Writing objects: 100% (597/597), 1.85 MiB | 0 bytes/s, done.
Total 597 (delta 78), reused 0 (delta 0)
remote: Resolving deltas: 100% (78/78), done.
remote: Powered By Gitee.com
To git@gitee.com:vantone/test-java.git
a028b0f..49495cc master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
6.2 另一台服务器设置jdk和tomcat
由于jdk和tomcat已经安装,此处不再安装。修改tomcat的一个参数配置,如下
[root@linux-001 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
## 在倒数第二行添加一下内容 ##
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<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="123qwe" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
[root@linux-001 ~]# /usr/local/tomcat/bin/shutdown.sh && /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
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
配置好以上内容,我们可以打开浏览器输入ip:8080 打开Tomcat的网页,如下图,点击箭头所指方向。
点击了manager webapp 会出现一下内容
此处我们还需要修改一个文件 /usr/local/tomcat/webapps/manager/META-INF/context.xml,如下图,添加一个允许的网段,支持正则。
添加完成,重启tomcat服务,再次点击tomcat页面上的manager webapp ,如下图,表示配置完成。
输入账号密码会出现如下图,jenkins就是通过这个页面的接口来进行传war包解压
6.3 安装maven
- 安装maven需要和jenkins是一台服务器上
- maven下载地址:https://maven.apache.org/download.cgi
- maven下载完成解压即可,maven的存放目录:/usr/local/
- 配置Jenkins的界面: Manage Jenkins----Global Tool Configuration
- 配置项目如下图:Maven 配置和 Maven 两项,如下图,配置完成点击左下角的保存即可
6.4 安装插件
- Maven Integration plugin 创建一个maven项目所需要的插件
- Deploy to container Plugin 发布war包发布到远程服务器
6.5 构建一个maven项目
- 在设置git仓库的地址的时候,如果仓库是私有仓库,那么需要添加一个git用户的私钥,如果没有任何显示说明我们配置成功了
构建完成点击左下角的保存。会弹出如下界面,可以选择build now 构建项目。