随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保 软件开发的质量已经慢慢成为开发过程中不可回避的问题。
Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更 早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、集成、测试、部署得以持续。所以,当配置完 Jenkins 持续集成持续交付环境后,就可以把发布的任务交给集成服务器去打理了。 使用 Maven(Ant) 等来实现 Java 项目自动化构建发布部署。这些工具可以帮助在构建过程 中实现自动化发布、回滚等动作。
开发人员写好代码,想要代码上线必须要找运维人员,等待运维部门上线,上线的概念就是将老的代码打包备份,删除 将新的代码上传。CICD环境可以将开发 集成测试部署合并一起,提高工作的效率。
Jenkins 是一个用 Java 编写的开源的持续集成工具。在与 Oracle 发生争执后,项目从 Hudson 项目独立。
JenKins是一个高度集成化的工具,底层是由Java编写,先安装JDK才可以安装JenKins; 可以将JenKins运行在Tomcat环境中也可以独立安装。
Jenkins 提供了软件开发的持续集成服务。它运行在 Servlet 容器中(Tomcat)。它支持软件配置管理(SCM)工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows 批处理命令。Jenkins 的主要开发者是川口耕介。Jenkins 是在 MIT 许可证下发布的自由软件。
Jenkins的官网提供 Jenkins.war放在tomcat的webapps目录下会自动解压,会生成一个jenkins的目录。Jenkins也提供rpm格式的软件包。
Jenkins 能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能, 还能用图表的形式,形象地展示项目构建的趋势和稳定性。
Maven 项目对象模型(POM)是可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。
由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven 这个单词来自于意第绪语(犹太语),意为知识的积累,最初在 Jakata Turbine 项目中用来简化构建过程。当时有一些项目(有各自 Ant build 文件),仅有细微的差别, 而 JAR 文件都由 CVS 来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享 JARs。
Maven是一个Java的代码构建打包的工具,如果是Java类的项目就必须要用到Maven。
#关闭防火墙
systemctl stop firewalld
#关闭沙盒
setenforce 0
#下载需要的命令
yum -y install lrzsz unzip
因为jdk版本和对应的Jenkins的版本的因素,建议使用相同版权jdk。
#下载完成之后将jdk包传进服务器
#解压jdk包
unzip jdk-18.0.2.1.zip
#并将解压的包移动到/usr/local/目录下
mv jdk-18.0.2.1 /usr/local/
#移动完成之后给java添加权限
cd /usr/local/jdk-18.0.2.1/bin/
chmod 775 *
#完成之后配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk-18.0.2.1
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
#添加完环境变量使其生效
source /etc/profile
#查看java版本
java -version
java version "18.0.2.1" 2022-08-18
Java(TM) SE Runtime Environment (build 18.0.2.1+1-1)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing
这样jdk就安装完成了;完成之后我们安装开发工具包;
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
等待安装完成即可;
jenkins可以在官网下载最新的war包,也可以使用百度网盘的war包,用哪个都可以,用这个安装成功有个提示会问你要不要更新最新版本,像更新到时候更新就好了;
上述下载安装包任选其一即可;
#下载完成之后上传到服务器中;
#在/usr/local目录下创建一个jenkins目录
mkdir /usr/local/jenkins
#将上传的包移动到/usr/local/jenkins目录
mv jenkins.war /usr/local/jenkins
完成之后可以手动直接启动,也可以写个脚本启动
#手动启动:
#–httpPort 指定访问端口
java -jar jenkins.war --httpPort=8080 --enable-future-java &
手动启动每次启动会有点麻烦;推荐使用脚本启动;
vim startjk.sh
#!/bin/bash
java -jar /usr/local/jenkins/jenkins.war --httpPort=8080 --enable-future-java &2> jenkins.log
顺便写了个关闭Jenkins脚本;
vim stopjk.sh
#!/bin/bash
ps -ef |grep -v grep | grep jenkins | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
重启脚本:
vim restart.sh
#!/bin/bash
sh /usr/local/jenkins/stopjk.sh
echo "jenkins关闭成功"
sleep 3;
sh /usr/local/jenkins/startjk.sh
echo "jenkins启动成功"
echo "---------------------------"
echo "jenkins重启成功"
启动完成之后,页面访问;ip:端口 ,端口可自行设置。
输入管理员密码;管理员密码在xshell中启动的时候看;
完成之后点击继续即可;
到这个页面选择安装推荐的插件
注意下面还有一个邮箱,填完保存并完成即可;
这个就不用看了,直接继续保存并完成;
已就绪,直接开始使用;
看到这个界面就已经进入了;
如果需要更新最新版本,可以点击图片上的位置更新即可;也可以下载最新的war包;下载这块是直接下载最新的war包;或自动升级会跳转直接升级。
到此部署就完成了;
关于JenKins下载的方式有两种
本文讲述第一种方法,第二比较简单。
打开cmd命令提示符,输入startup启动Tomcat。
浏览器输入localhost:8080查看
下载放到Tomcat\webapps目录下,启动tomcat即可:
安装插件,我这边是安装的它推荐的
创建管理员账户
登录成功
部署成功,非常的简单。
# 运行
docker run -d --name=jenkins -p 8080:8080 jenkins/jenkins
# 查看目前正在运行的服务
docker ps
注意:虚拟机内访问的话,ip地址选择容器地址。
# 查看默认密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
# 查看默认密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
# 查看日志
docker logs jenkins
# 挂载目录
chmod 777 jenkins
#运行
docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins/jenkins
以上就是今天介绍的有关Jenkins入门以及三种安装部署方式,大家可以根据自己的实际需求与环境来选择。更多关于构建企业自动化运维平台系列的学习文章,请参阅:企业级自动化运维平台,本系列持续更新中。
由于清掉了缓存,导致我忘记了jenkins的密码,故此记录。。。我这里是以docker启动的jenkins容器,如果你是直接安装在主机上,修改方式也是大差不差的。
[root@MT01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8570636d5bff jenkins/jenkins "/sbin/tini -- /usr/…" 8 months ago Up 5 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkinsfrank
[root@MT01 ~]# docker exec -it --user root 85 bash
root@8570636d5bff:/#
[root@MT01 ~]# docker exec -it --user root 85 bash
root@8570636d5bff:/# find / -name config.xml
/var/jenkins_home/config.xml
这里会出现很多匹配的文件,找到jenkins_home/config.xml 这个文件进入。
root@8570636d5bff:/# vi /var/jenkins_home/config.xml
# 打开文件后,找到以下配置,全部删除掉
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
# 输入以下命令保存退出:wq
[root@MT01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8570636d5bff jenkins/jenkins "/sbin/tini -- /usr/…" 8 months ago Up 14 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkinsfrank
[root@MT01 ~]# docker restart 85
保存后再次进入系统配置页
重新登录即可。
参考文章:https://blog.csdn.net/liu_chen_yang /article/details/127202910 https://blog.csdn.net /Makasa/article/details/112347590/124548341 https://blog.csdn.net/weixin_43820024/article /details/129873787