centos7服务器搭建Jenkins
最近在实习中老大要求我去学习一下jenkins的搭建和相关帐号配置。去查了一下资料了解到Jenkins主要应用于项目的持续部署、持续集成、持续交付。所以打算趁着周末把这些也一起学习。
Jenkins和自动部署简介
什么是Jenkins?
百度百科上对Jenkins的概述:
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
从上面这段话我们可以得出一个结论:Jenkins就是帮助我们去完成一些重复性的操作,比如打包、部署
什么是自动化部署?
自动部署主要由三个部分组成 :
持续集成:程序员在提交代码后立刻进行构建、测试。根据测试结果来判断新代码与原有代码是否能正确的集成在一起,如果代码有问题,则将代码返回给程序员。
持续 交互:在持续集成测试通过后,将代码部署到更贴近真实的生产环境中,尽早将代码展示在测试人员或客户面前,让测试人员可以尽早进行进一步的测试,也方便客户了解开发的进度和是否符合需求。
持续部署:在持续交互的基础上,实现代码部署的自动化,减少人力成本,如果代码出现问题,则自动回滚代码。
总结:自动化部署就是在我们提交代码后自动将其打包、部署,让测试或开发可以尽早的拿到最新的代码。出现了bug可以尽早修复。可以避免问题的堆积所带来的严重后果。
手动部署和自动部署的过程
手动部署:
自动化部署:
看似自动化部署的步骤比手动部署的步骤多了很多,但是自动化部署除了需要我们手动的提交代码,剩下的都交由Jenkins来完成,可以大大的减少人力成本、节约时间。
部署环境的准备
首先是服务器的系统:
JDK环境
这里我选择从官网下载JDK1.8
然后创建一个文件夹存放jdk的rpm包,把JDK放进去。至于放进去的过程我是使用Xftp直接从本地上传到文件夹
然后在终端里进入文件夹使用命令解压
sudo rpm -ivh jdk-8u231-linux-x64.rpm
默认的解压路径是/usr/java
解压完后就可以在/usr/java中看到jdk了
这里不清楚为什么会多出default和latest。。而且都是指向jdk的快捷方式。这个问题暂时保留,以后有机会弄清楚。
有了JDK下一步自然就是配置JAVA的环境变量
首先,用vim打开/etc/profile
sudo vim /etc/profile
然后在文件的末尾加上
export JAVA_HOME=/usr/java/jdk1.8.0_231-amd64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
注意jdk的路径要正确
保存,然后退出。
之后使用
source /etc/profile //source命令是更新配置文件
java -version //查看jdk版本
如果上面的步骤没有出错
那么就可以看到下面的效果图了
tomcat的安装和配置
首先在tomcat官网上下载tomcat的tar.gz包
然后同样将其放入到centos系统的中
然后使用命令
tar -xvf 文件名 -C 指定目录 //如果不带-C的话就是在压缩包当前目录解压
解压之后就需要添加tomcat的环境变量
同样的命令
vim /etc/profile
这里插一句:centos中分隔符是:而不是;
然后输入
/usr/tomcat/apache-tomcat-8.5.49/bin/startup.sh
如果看到下面的输出,就可以访问服务器上的tomcat了。(注:服务器设置要开启8080或者你设置的端口方的访问)
访问ip+8080 如果出现
就可以下一步了
接下来就是设置tomcat的权限帐号
先停掉tomcat服务器,
/usr/tomcat/apache-tomcat-8.5.49/bin/shutdown.sh //tomcat路径
然后修改tomcat下conf里的tomcat-users-xml
加入下面这些标签
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="password" roles="manager-status,manager-gui,manager-script,manager-jmx,admin-gui"/>
重新启动tomcat 进入8080页面,点击这里
注:tomcat8.0开始开启了网段限制,只用127网段的机器才能拥有权限。所以我们需要修改app文件夹manager和host-mananger两个项目下META-INF中的context.xml文件
将
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
改为:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
搭建Jenkins
首先去官网下载Jenkins,这里我选择的是长期版的war包
下载后直接放入到tomcat的webapp中,启动tomcat,就会自动部署了。
这里有个记录一个小坑。因为之前下载war包的时候因为网络不好,下了两个(第一个太慢了。。第二个下好了第一个还没到一半)。所以当时我的war包名称是jenkins(2).war。。我随手就改了名字,不小心流了一个空格,也就是jenkins .war
导致我部署之后没用路径没办法访问 进了tomcat的manager App发现已经成功部署了。打开发现访问路径是/jenkins%20 问了群里的大佬才知道这是url转换符 %20对应空格。在此做个记录,以免再出现这种问题
回归正题,之后我们就可以通过ip:8080/jenkins(这里的jenkins是你的jenkins项目名称,可以自己修改成其他)访问我们的jenkins
上面标红的是我们jenkins为我们创建的默认密码,第一次访问jenkins是需要用到``这个默认密码的
windows用户应该是在C盘的用户里面会有一个对应的.jenkins文件夹,密码就在里面
输入密码过后:
这里我是第一次使用Jenkins 所以安装推荐的插件。
可以看到我们常见的git、SVN、Gradle等等都在里面
下载完依赖以后就需要我们新建一个管理员用户(这里也可以不创建,默认的管理员帐号就是admin,密码就是我们刚才在文件里找到的那一串密码)
完成管理员帐号创建之后就可以见到Jenkins的页面了
大功告成!
如果上面有什么错误的地方或者表述不清楚的地方,还希望大家可以多提点建议。