前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打造企业级自动化运维平台系列(四):Jenkis 基础入门与安装

打造企业级自动化运维平台系列(四):Jenkis 基础入门与安装

作者头像
民工哥
发布2024-01-18 16:45:39
4360
发布2024-01-18 16:45:39
举报
文章被收录于专栏:民工哥技术之路

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保 软件开发的质量已经慢慢成为开发过程中不可回避的问题。

Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更 早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、集成、测试、部署得以持续。所以,当配置完 Jenkins 持续集成持续交付环境后,就可以把发布的任务交给集成服务器去打理了。 使用 Maven(Ant) 等来实现 Java 项目自动化构建发布部署。这些工具可以帮助在构建过程 中实现自动化发布、回滚等动作。

开发人员写好代码,想要代码上线必须要找运维人员,等待运维部门上线,上线的概念就是将老的代码打包备份,删除 将新的代码上传。CICD环境可以将开发 集成测试部署合并一起,提高工作的效率。

Jenkins 简介

Jenkins 是一个用 Java 编写的开源的持续集成工具。在与 Oracle 发生争执后,项目从 Hudson 项目独立。

JenKins是一个高度集成化的工具,底层是由Java编写,先安装JDK才可以安装JenKins; 可以将JenKins运行在Tomcat环境中也可以独立安装。

  • 官方网站:https://jenkins.io/

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 能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能, 还能用图表的形式,形象地展示项目构建的趋势和稳定性。

Jenkins 特点

  • 易安装:仅仅一个 jenkins.war,从官网下载该文件后,直接运行,无需额外的安装, 更无需安装数据库;
  • 易配置:提供友好的 GUI 配置界面;
  • 变更支持:Jenkins 能从代码仓库(SVN /Git)中获取并产生代码更新列表,并输出到编 译输出信息中;
  • 支持永久链接:用户是通过 Web 来访问 Jenkins 的,而这些 Web 页面的链接地址都 是永久链接地址,可以在各种文档中直接使用该链接;
  • 集成 E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时收取集成结果(构建一 次集成需要花费一定时间,有了这个功能,就可以在等待结果过程中,干别的事情);
  • JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能;
  • 支持分布式构建:Jenkins 可以把集成构建等工作分发到多台计算机中完成;
  • 文件指纹信息:Jenkins 会保存构建集成所产生的 jars 文件、集成构建使用了哪个版;
  • 支持第三方插件:Jenkins 支持第三方插件,这使得 Jenkins 功能变得越来越强大。

Maven介绍

Maven 项目对象模型(POM)是可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven 这个单词来自于意第绪语(犹太语),意为知识的积累,最初在 Jakata Turbine 项目中用来简化构建过程。当时有一些项目(有各自 Ant build 文件),仅有细微的差别, 而 JAR 文件都由 CVS 来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享 JARs。

Maven是一个Java的代码构建打包的工具,如果是Java类的项目就必须要用到Maven。

Jenkins 安装部署

Linux 系统环境
环境配置
代码语言:javascript
复制
#关闭防火墙
systemctl stop firewalld

#关闭沙盒
setenforce 0

#下载需要的命令
yum -y install lrzsz unzip
jdk安装

因为jdk版本和对应的Jenkins的版本的因素,建议使用相同版权jdk。

代码语言:javascript
复制
#下载完成之后将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就安装完成了;完成之后我们安装开发工具包;

代码语言:javascript
复制
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

等待安装完成即可;

Jenkins安装

jenkins可以在官网下载最新的war包,也可以使用百度网盘的war包,用哪个都可以,用这个安装成功有个提示会问你要不要更新最新版本,像更新到时候更新就好了;

  • 官网war包下载地址:https://mirrors.jenkins-ci.org/war/

上述下载安装包任选其一即可;

代码语言:javascript
复制
#下载完成之后上传到服务器中;
#在/usr/local目录下创建一个jenkins目录
mkdir /usr/local/jenkins

#将上传的包移动到/usr/local/jenkins目录
mv jenkins.war /usr/local/jenkins

完成之后可以手动直接启动,也可以写个脚本启动

代码语言:javascript
复制
#手动启动:
#–httpPort 指定访问端口

java -jar jenkins.war --httpPort=8080 --enable-future-java & 

手动启动每次启动会有点麻烦;推荐使用脚本启动;

代码语言:javascript
复制
vim startjk.sh

#!/bin/bash
java -jar /usr/local/jenkins/jenkins.war --httpPort=8080 --enable-future-java &2> jenkins.log

顺便写了个关闭Jenkins脚本;

代码语言:javascript
复制
vim stopjk.sh

#!/bin/bash
ps -ef |grep -v grep | grep jenkins | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1

重启脚本:

代码语言:javascript
复制
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包;或自动升级会跳转直接升级。

到此部署就完成了;

Windows环境

关于JenKins下载的方式有两种

  • 1)直接下载war包,用tomcat/java命令运行
  • 2)msi安装,作为系统服务后台运行

本文讲述第一种方法,第二比较简单。

安装配置Tomcat
  • 配置Tomcat环境
新建CATALINA_HOME变量
  • 变量名:CATALINA_HOME
  • 变量值:D:\develop\apache-tomcat-8.5.61 (为你的tomcat安装路径)
编辑Path变量
  • 变量名:Path
  • 变量值: %CATALINA_HOME%\bin
检验是否配置成功

打开cmd命令提示符,输入startup启动Tomcat。

浏览器输入localhost:8080查看

Jenkins部署
  • war文件下载
    • War包地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war
    • 官网下载:https://www.jenkins.io/download/

下载放到Tomcat\webapps目录下,启动tomcat即可:

  • Jenkins部署 登录localhost:8080,找到文件密码粘贴

安装插件,我这边是安装的它推荐的

创建管理员账户

登录成功

部署成功,非常的简单。

Docker 环境部署
  • Docker hub地址:https://hub.docker.com/r/jenkins/jenkins/
代码语言:javascript
复制
# 运行
docker run -d --name=jenkins -p 8080:8080 jenkins/jenkins
代码语言:javascript
复制
# 查看目前正在运行的服务
docker ps
访问jenkins
  • 虚拟机内访问

注意:虚拟机内访问的话,ip地址选择容器地址。

  • windows下访问
代码语言:javascript
复制
# 查看默认密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
代码语言:javascript
复制
# 查看默认密码
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 忘记登录密码怎么办?

由于清掉了缓存,导致我忘记了jenkins的密码,故此记录。。。我这里是以docker启动的jenkins容器,如果你是直接安装在主机上,修改方式也是大差不差的。

首先找到jenkins的容器
代码语言:javascript
复制
[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用户进入jenkins容器中
代码语言:javascript
复制
[root@MT01 ~]# docker exec -it --user root 85 bash
root@8570636d5bff:/# 
找到jenkins的配置文件config.xml
代码语言:javascript
复制
[root@MT01 ~]# docker exec -it --user root 85 bash
root@8570636d5bff:/# find / -name config.xml
/var/jenkins_home/config.xml

这里会出现很多匹配的文件,找到jenkins_home/config.xml 这个文件进入。

编辑config.xml 文件,删除相应的配置
代码语言:javascript
复制
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>  
代码语言:javascript
复制
# 输入以下命令保存退出:wq
重启docker服务,因为我用的是容器,所以直接docker restart
代码语言:javascript
复制
[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
进入jenkins页面中,打开全局安全管理

保存后再次进入系统配置页

进入用户管理页面,修改密码或者新增用户

重新登录即可。

参考文章: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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jenkins 简介
  • Jenkins 特点
  • Maven介绍
  • Jenkins 安装部署
    • Linux 系统环境
      • Windows环境
        • Docker 环境部署
        • Jenkins 忘记登录密码怎么办?
          • 首先找到jenkins的容器
            • 以root用户进入jenkins容器中
              • 找到jenkins的配置文件config.xml
                • 编辑config.xml 文件,删除相应的配置
                  • 重启docker服务,因为我用的是容器,所以直接docker restart
                    • 进入jenkins页面中,打开全局安全管理
                      • 进入用户管理页面,修改密码或者新增用户
                      相关产品与服务
                      容器服务
                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档