在Linux 上部署Jenkins和项目

简介: 在Linux 上部署Jenkins和项目

Jenkins 是一个可扩展的持续集成引擎。

主要用于:

  • l 持续、自动地构建/测试软件项目。
  • l 监控一些定时执行的任务。


Jenkins拥有的特性包括:

  • l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
  • l 易于配置-所有配置都是通过其提供的web界面实现。
  • l 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
  • l 生成JUnit/TestNG测试报告。
  • l 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
  • l 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
  • l 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。


目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:

软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。

构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。

构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。

生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。



640.jpg



关于Jenkins就说这么多,下面我们来部署Jenkins。


首先准备工作:一台Linux机器,jdk的tar包,tomcat的tar包。

链接:

https://pan.baidu.com/s/1e0ebyHM6hsByrXBcKy-F5A  

密码:

pvxj

640.png


拿到之后我们需要将这些tar包传到Linux系统上,这个时候我们可以使用scp进行上传.

这个scp口令是在自己的电脑上敲的(打开windows powershell,mac可以直接敲),如果不使用这个,也可以使用sftp,winscp等文件传输工具。

scp -r /Users/wuyuqing/Desktop/jdk-8u144-linux-x64.tar.gz root@xx.xx.xx.xx:/usr/local

640.png


然后输入密码即可。

xx.xx.xx.xx代表Linux server的ip地址。

scp -r /Users/wuyuqing/Desktop/apache-tomcat-7.0.81.tar.gz root@xx.xx.xx.xx:/usr/local

1、安装配置Java


现在我们在/usr/local的目录下就有了jdk这个东西了。

下面我们来操作:

cd /usr/local

mkdir java

mv jdk-8u144-linux-x64.tar.gz /usr/local/java/jdk-8u144-linux-x64.tar.gz

cd java

tar -zxvf jdk-8u144-linux-x64.tar.gz

待解压完毕,我们会发现在Java的文件夹下面多了一个jdk1.8.0_144的文件夹。

之后我们配置Java的环境变量:

vim /etc/profile

按i进入INSERT模式,把下面的内容粘贴进去:

export JAVA_HOME=/usr/local/java/jdk1.8.0_144

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

粘贴好了之后按Esc退出INSERT模式,输入:wq保存配置文件

为了使刚刚配置的文件能够立即生效我们需要source一下,否则就只能等重启他才会生效了。

source/etc/profile

这样我们的Java就算配置好了,接下来我们可以输入下面的口令检查Java的版本信息,如果你安装成功了就会输出Java的版本信息,如果你配置失败了就不能识别Java命令,就要看看有没有哪里漏掉了!


640.png


2、安装配置Tomcat


Tomcat是一个免费的开源的web应用服务器,特点是技术先进,性能稳定,而且免费。 例如我们的Jenkins就可以搭建在tomcat中。

按照刚刚scp上传的路径,我们现在在/usr/local的目录下应该会有apache-tomcat-7.0.81.tar.gz文件。

cd /usr/local

mkdir tomcat

mv apache-tomcat-7.0.81.tar.gz /usr/local/tomcat/apache-tomcat-7.0.81.tar.gz

cd tomcat

tar -xzvf apache-tomcat-7.0.81.tar.gz

vim /etc/profile

将下面的文字粘贴到profile文件中

export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-7.0.81

export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-7.0.81


下面我们就可以启动tomcat了,tomcat默认是8080端口,我们可以自由修改它的端口,进入apache-tomcat的目录,进入conf文件夹找到server.xml在文件里面找到8080,将8080修改成你想要的端口就可以。但是在修改之前要检查一下端口有没有被其他应用占用。

640.png

netstat -apn|grep 8080

如果没有显示任何信息就是没有被占用,如果有就证明被占用了。那我们就最好不要使用这个端口。


配置好端口后,我们就可以启动tomcat了,在apache-tomcat主目录下找到bin文件夹。

640.png

cd bin

./startup.sh

这样就启动tomcat了

如果你想把tomcat关闭,那可以在这个目录下敲

./shutdown.sh


为了是其他的机器从外面能够访问,我们需要把tomcat的端口号设为白名单,这时候我们需要使用iptables

vi /etc/sysconfig/iptables

将下面内容添加到iptables里面

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

8080是tomcat的端口号,如果你修改了,那也需要将这个8080替换成你修改的端口号。

然后重启防火墙

service iptables restart

就完成tomcat的部署了。


4、安装maven依赖

sudo apt-get install maven(Ubuntu)

sudo yum install maven(centos)

查看mave版本信息

mvn -version


640.png

5、安装git

既然我们需要在Jenkins上部署项目,那肯定要去服务器上拉项目啊,这个时候就需要git仓库了,本文是github上的公有repo(项目)为例子,将repo对应的GitHub地址放到Jenkins里面就可以了。

安装git

sudo apt-get install git(Ubuntu)

sudo yum install git(centos)

安装结束之后查看git版本信息

git --version

640.png


6、部署Jenkins

首先我们需要下载Jenkins的war包 ,将war包放到apache-tomcat的webapps的目录下:

cd /usr/local/tomcat/apache-tomcat-7.0.81/webapps

wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

这个时候我们的tomcat会自动解压Jenkins的压缩包,将Jenkins部署成网站。

640.jpg


刚开始进入的时候我们需要密码,这是Jenkins自动生成的,我们需要获取这个密码,粘贴到这里:

cat /var/lib/jenkins/secrets/initialAdminPassword

然后点击确认就可以进入了。

640.jpg

这时候Jenkins会让我们创建一个自己的用户,以后就依靠这个管理员用户登陆了。

这样,我们的Jenkins就算部署好了。


6、在Jenkins上部署项目

这里随便创建一个项目

https://github.com/johnturingwu/helloworld


640.jpg

下面我们在Jenkins上进行部署。

进入主页,选择New Item:

640.jpg

进入创建项目的页面,这里我们freestyle,如果使用pipeline需要会编写pipeline脚本,当然如果事先就写好pipeline脚本的也可以选择pipeline,点击OK,完成,进入项目的添加页面

640.jpg


点击OK后会进入下面这个页面,我们在里面填写信息。

640.jpg


640.jpg

第一个是项目描述,随便写,第二个框是用了设置删除构建的时间的,第一个是保存构建的天数,第二个是保存构建的个数,超过设定数量,之前保存的将会被删除。

640.jpg

下面添加项目代码,将项目代码的地址粘贴进去

如果是私有项目,需要在Add里面配置私有key,还要在GitHub的项目上将server的公钥配置到GitHub。

640.jpg


这边设置构建时间,为这边设置的是60min,也就是一个小时,Jenkins就会去检查一下Git服务器代码是否有变化,有的话就会触发构建操作。

640.png


钩上,每次构建开始的时候,删除构建空间。

640.png


这边在build项目的时候,我们使用最简单的构建 execute shell,这样就可以在里面执行shell命令了,我们这边就简单的运行代码。

640.png


然后点击save就算完事了。


下面我们就让Jenkins构建代码。

640.jpg

点击build now就可以构建了。

640.jpg

项目会在这里进行构建,构建完毕他会显示结果,如果是OK的他会显示蓝色的圆点,如果是有问题的会显示红色的圆点。

640.png

这边是蓝色的点,我们构建成功了。

我们等它构建完毕,然后我们点进去console里面可以看到它打印的结果。

640.png640.jpg



可以看到项目执行的结果和log。

到这里,我们的Jenkins和项目部署就算完成了。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
资源调度 JavaScript Linux
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
10天前
|
Linux Python
linux之部署python环境&创建虚拟环境
linux之部署python环境&创建虚拟环境
|
2月前
|
存储 Linux 开发工具
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
|
2月前
|
负载均衡 jenkins 应用服务中间件
大规模部署下的 Jenkins 高可用性与负载均衡
【8月更文第31天】随着软件开发流程的加速,持续集成/持续交付(CI/CD)工具的重要性日益凸显。Jenkins 作为最受欢迎的 CI/CD 平台之一,为企业提供了强大的自动化构建和部署功能。然而,在大规模部署场景下,单一的 Jenkins 实例可能无法满足高可用性和性能的需求。本文将探讨如何设计和实施 Jenkins 高可用集群,以支持大型组织的需求,并通过负载均衡技术来提高系统的稳定性和响应速度。
93 0
|
2月前
|
jenkins 测试技术 持续交付
Jenkins 在多分支项目中的应用
【8月更文第31天】在现代软件开发实践中,分支管理是一项至关重要的策略,它允许开发团队在不同的功能开发、修复bug或进行实验时不会干扰主干代码。随着项目的复杂度增加,维护多个分支并确保它们的质量变得越来越具有挑战性。Jenkins 作为一款流行的持续集成(CI)和持续部署(CD)工具,提供了强大的功能来支持多分支项目的自动化测试和部署。本文将探讨 Jenkins 如何帮助管理多分支项目,并提供具体的代码示例。
23 0
|
2月前
|
Kubernetes jenkins 持续交付
jenkins学习笔记之二十一:k8s部署jenkins及动态slave
jenkins学习笔记之二十一:k8s部署jenkins及动态slave
|
2月前
|
jenkins Java Shell
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
|
2月前
|
jenkins Java 关系型数据库
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
|
2月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
下一篇
无影云桌面