Jenkins

Jenkins

1.Jenkins概述

是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续集成、自动的构建软件测试项目、监控一些定时执行的任务。JenkinsJava语言编写,可在tomcat等流行的servlet容器中运行,也可独立运行。

Jenkins常与版本管理工具(SCM)、构建工具结合使用,常用的版本控制工具有 SVNGitJenkins构建工具有MavenAntGradle

CI/CD–持续集成/持续发布

开发(git)-->主库-->jenkins(git+jdk+tomcat+maven打包+测试)-->发布到tomcat服务器

jenkins程序

Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。

意思是我们通过配置,将以前,编译、打包、上传、部署到tomcat中的过程交由enkinsJenkins通过给定的代码地址URL,将代码拉取到其宿主机服务器(Jenkins的安装位置),进行编译、打包和发布到web容器中。

Jenkins特性

易于安装

易于配置

测试报告

文件识别

分布式构建

任务(job)和构建(build)

2.系统集成工具

Jenkins和Hudson

目前最流行的一款只需集成及自动化部署工具。

JenkinsHudson之间的关系:2009年,甲骨文收购了 Sun 并继承了Hudson代码库。在2011年年初,甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目:

jenkins:由大部分原始开发人员组成

Hudson:由甲骨文公司继续管理

所以JenkinsHudson是两款非常相似的产品

3.部署方案

手动部署流程

开发人员提交/推送代码到代码库,我们从代码库中检出源码然后打包成war包最后部署到tomcat服务器上。

自动化署流程

开发人员向代码库推送或者提交代码后会触发钩子程序,钩子程序就会通知Jenkins,然后jenkins就会调用git/svn的插件去代码库获取源码,然后再调用Maven插件去打包成war包,最后调用Deploy to web container插件部署到tomcat应用服务器上。

搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。对于程序员的日常开发来说不会造成任何额外负担——把自己代码提交上去后,服务器上运行的马上就是最新版本。

4.Jenkins+svn自动部署

环境准备:

三台服务器

  • Jenkins服务器(192.168.10.26)
    • JDK
    • tomcat
    • Maven
    • Jenkins
    • 也可以用 yum 直接安装
  • svn服务器(192.168.10.27)
    • 项目对应的版本库
  • 项目服务器(192.168.10.28)

Jenkins部署方式:

war包

rpm包

yum

docker

yum部署Jenkins
# 安装openjdk1.8因为Jenkins是基于Java开发的
yum install -y java-1.8.0-openjdk

# 获取jenkins源文件
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

# 导入jenkins公钥
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

# yum安装jenkins
yum install -y jenkins

# 启动
systemctl start jenkins

#查看jenkins日志获取admin密码,初始化会用到admin密码
[root@localhost ~]# less /var/log/jenkins/jenkins.log 
Please use the following password to proceed to installation:
58a959b68f7f4533afb7974f949291a7
#现在可以使用浏览器访问ip:8080

# 卸载
[root@jenkins ~]# rpm -e jenkins
[root@jenkins ~]# find / -iname jenkins | xargs -n 1000 rm -rf


# JDK配置环境变量
vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

tomcat部署Jenkins
# 下载tomcat安装包
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.24/bin/apache-tomcat-9.0.24.tar.gz

# 解压
tar xf apache-tomcat-9.0.24.tar.gz -C /usr/local/

# 创建软链接
cd /usr/local
ln -s apache-tomcat-9.0.24/ tomcat

# 下载Jenkins的war包到webapps
cd /usr/local/tomcat/webapps/
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

# 启动tomcat
/usr/local/tomcat/bin/startup.sh

# 在浏览器访问Jenkins
http://192.168.10.26:8080/jenkins
svn安装使用
# 安装svn
[root@subversion ~]# yum -y install subversion

# 穿件版本库目录
[root@subversion ~]# mkdir /var/svn/repository -p

# 在版本库目录下创建具体的项目目录
[root@subversion repository]# mkdir pro_oa
[root@subversion repository]# mkdir pro_erp

# 创建svn的版本库
[root@subversion repository]# cd pro_oa/
[root@subversion pro_oa]# svnadmin create .
[root@subversion pro_oa]# ls
conf  db  format  hooks  locks  README.txt

# 配置文件说明及修改
# conf目录
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件

# 设置帐号密码 vim passwd[users]块中添加用户和密码,格式:帐号=密码,如:username=123456

# 设置权限 vim authz
在末尾添加如下代码:
1. [/]  
2. username=rw  # 代表这个用户对svn的根目录有读写权限

# 修改svnserve.conf文件 vi svnserve.conf
   打开下面的几个注释:
   anon-access = none		# 匿名用户不可访问
   auth-access = write 		# 授权用户可写
   password-db = passwd	 	# 使用哪个文件作为账号文件
   authz-db = authz			 # 使用哪个文件作为权限文件
   realm = /var/svn/svntest  # 认证空间名,版本库所在目录

# 启动svn版本库 
svnserve -d -r /var/svn/repository(停止SVN命令 killall svnserve)

# 测试
# 在另一台服务器上检出我们的项目目录
[root@jenkins ~]# svn co svn://192.168.10.27:/pro_oa

# 文件已同步过来
[root@jenkins ~]# cd pro_oa/
[root@jenkins ~/pro_oa]# ls
123.txt  a.txt  test1.txt

# 创建一个文件测试提交
[root@jenkins ~/pro_oa]# touch haha.txt
[root@jenkins ~/pro_oa]# svn add haha.txt
[root@jenkins ~/pro_oa]# svn commit -m "test"
正在增加       haha.txt
传输文件数据.
提交后的版本为 4

# 然后去Windows上检出项目目录
# 安装svn客户端
svn checkout svn://192.168.10.27/pro_oa
# 可以同步过来文件
# 以后那边操作了然后提交后,另一边执行svn up 就可以同步版本
maven安装
# 官网下载安装包 http://maven.apache.org/download.cgi

# 解压
tar xf apache-maven-3.8.1-bin.tar.gz -C /usr/local/

# 配置环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.8.1
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile

# 验证
mvn -v
配置

安装插件 Publish over SSH 、Subversion
系统配置,如果没有这个选项,注意是否安装此插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建工程
在这里插入图片描述

配置工程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试
# 创建一个新文件,提交到svn
[root@localhost data]# echo 'test' >test.txt
[root@localhost data]# svn add test.txt
[root@localhost data]# svn commit -m 'test'
[root@localhost data]# ls
test.txt
# 在远程服务器上查看
[root@subversion server]# cat test.txt
test
# 发现已经同步过来了

5. jenkins+gittee自动化部署nginx

  • Jenkins服务器:123.59.173.106

    • 安装Jenkins、JDK、Maven
  • nginx服务器:43.255.31.74

    • 安装nginx、Git
安装完成之后配置

1、服务器放置项目位置克隆 Gitee 上项目

cd /
git clone https://gitee.com/whell/firsthouse.git	# 我项目位置/firsthouse

2、检查 jenkins 配置配置文件,将执行用户改成 root,不然后面可能出现执行 shell 没有权限

vim /etc/sysconfig/jenkins # 编辑文件
JENKINS_USER="root" # 改成root
systemctl restart jenkins.service # 重启服务

安装必要插件

  • gitee
  • Publish over SSH
  • Deploy to container Plugin

配置gitee
在这里插入图片描述

在这里插入图片描述

配置远程服务器

在这里插入图片描述

全局安全配置
在这里插入图片描述

全局工具配置
在这里插入图片描述
在这里插入图片描述

新建一个工程
在这里插入图片描述
配置工程
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

自己弄一个nginx网站
在这里插入图片描述

在Windows上修改123.txt并提交
在这里插入图片描述

浏览器上刷一下就同步过来了
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值