了解Jenkins及相关项目实战
作者:互联网
了解Jenkins相关知识点
一、什么是 Jenkins
Jenkins 原名 Hudson,2011 年改为现在的名字,它是一个开源的实现持续集成的软件工具。官方网站网址:Jenkins。 Jenkins 能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能, 还能通过图表的形式,形象地展示项目构建的趋势和稳定性。
二、Jenkins 包含以下几个特点:
-
易安装:从官网仅需要下载一个 jenkins.war 文件后,直接运行,无需额外的安装,更无需安装数据库;
-
易配置:提供友好的 GUI 配置界面;
-
变更支持:Jenkins 能从代码仓库(SVN /Git)中获取并产生代码更新列表,并显示到编译输出信息中;
-
支持永久链接:用户是通过 Web 来访问 Jenkins 的,而这些 Web 页面的链接地址都是永久链接地址,可以在各种文档中直接使用该链接;
-
集成 E-Mail/RSS/IM:当完成一次集成后,可通过这些工具实时收取集成结果(构建一次集成需要花费一定时间,有了这个功能,就可以在等待结果过程中,干别的事情);
-
JUnit/TestNG 测试报告:是以图表等形式提供详细的测试报表功能;
-
支持分布式构建:Jenkins 可以把集成构建等工作分发到多台计算机中完成;
-
文件指纹信息:Jenkins 会保存构建集成所产生的 jars 文件、集成构建使用了哪个版本的 jars 文件等构建记录;
-
支持第三方插件:Jenkins 支持第三方插件,这使得 Jenkins 功能变得越来越强大。
三、持续集成作用
持续集成(Continuous Integration,简写为 CI)可以保证团队开发人员提交代码的质量, 减轻软件发布的时间压力。在持续集成过程中任何一个环节都是自动完成的,无需太多的人工干预,这样有利于减少重复过程,从而可以节省时间、费用和工作量
四、持续集成的特点
持续集成是一个自动化的、周期性的集成测试过程,检出代码、编译构建、运行测试、结果记录、测试统计等过程都是自动完成的,无需人工干预。持续集成需要有专门的集成服务器来执行集成构建操作,同时需要有代码托管工具的支持
五、持续集成的工作原理
Jenkins 的工作原理是先将源代码从 SVN/Git 版本控制系统中拷贝一份到本地,然后根据设置的脚本进行 build(构建)。整个系统的关键就是 build 脚本,build 脚本告诉 Jenkins 在一次集成中需要执行的任务
六、Maven 介绍
Maven 项目对象模型(POM)是可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。 Maven 除了程序构建能力出色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 脚本就可以构建简单的项目。由于Maven 是面向项目的方法,许多 Apache Jakarta 项目发布时都使用 Maven,而且公司企业项目采用 Maven 的比例也在持续增长。 Maven 这个单词意为知识的积累,最初在 Jakata Turbine 项目中用来简化构建过程。当时,有一些项目(有各自 Ant build 文件)仅有细微的差别,而 JAR 文件都由 CVS 维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享 JARs,因此 Maven 就这样诞生了
Git+Jenkins 自动上线更新产品
资源配置
操作系统 | 配置 | 主机名/IP地址 | 相关软件 |
---|---|---|---|
CentOS 7.9 | 2C2G | git/172.16.10.10 | git |
CentOS 7.9 | 2C2G | jenkins/172.16.10.11 | jenkins/jdk/tomcat/maven |
CentOS 7.9 | 2C2G | docker/172.16.10.12 | docker/jdk |
一、基础环境
1.1 关闭防火墙
systemctl stop firewalld systemctl disable firewalld
1.2 关闭selinux
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config reboot
1.3 修改主机名
hostnamectl set-hostname git hostnamectl set-hostname jenkins hostnamectl set-hostname docker
1.4 修改hosts文件
cat >> /etc/hosts << EOF 172.16.10.10 git 172.16.10.11 jenkins 172.16.10.12 docker EOF
1.5 时间同步
yum -y install chrony systemctl start chronyd chronyc sources -v
二、部署Git
2.1 部署Git仓库
-
Git节点执行
yum -y install git useradd git echo "123"|passwd --stdin git su - git # 创建 git仓库 mkdir -p /home/git/tale.git # 初始化 tale.git 仓库 cd /home/git/tale.git git --bare init
2.2 部署git客户端
-
Jenkins节点执行
yum -y install git # ssh免密 ssh-keygen ssh-copy-id git@172.16.10.10 # 克隆 git库 git clone git@172.16.10.10:/home/git/tale.git # 上传 tale的源码tale.tar.gz,放在/root/tale 下 cd tale/ tar zxf /root/tale/tale.tar.gz cp -rf /root/tale/tale/* . rm -rf tale.tar.gz tale # 将tale源码上传到tale.git库中 git config --global user.name "admin" git config --global user.email "admin@163.com" git add . git commit -m "all tale" git push origin master
三、安装部署Jenkins
3.1 部署java环境
# 上传 jdk-8u202-linux-x64.tar.gz 到 /root tar zxf jdk-8u202-linux-x64.tar.gz mv jdk1.8.0_202 /usr/local/java vim /etc/profile export JAVA_HOME=/usr/local/java/ export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH ====================================================== source /etc/profile java -version
3.2 部署Tomcat
-
部署 Jenkins,从官网 Index of /war,下载 jenkins.war 软件包,尽量下载较新版本的 Jenkins,旧版本在实验中可能会出现默认插件不支持安装。将 jenkins.war 文件保存到 Tomcat服务的 /usr/local/tomcat/webapps 目录下。启动 Tomcat 就会自动部署 Jenkins。
# 上传 apache-tomcat-8.5.56.tar.gz到 /root tar zxf apache-tomcat-8.5.56.tar.gz mv apache-tomcat-8.5.56 /usr/local/tomcat # 上传 apache-maven-3.6.0-bin.tar.gz到 /root tar zxf apache-maven-3.6.0-bin.tar.gz mv apache-maven-3.6.0 /usr/local/maven # 上传 Jenkins.war 文件到tomcat 的网站根目录下 mv jenkins.war /usr/local/tomcat/webapps/ # 启动tomcat /usr/local/tomcat/bin/startup.sh
3.3 配置Jenkins,web登录
-
浏览器访问 172.16.10.11:8080/jenkins ,开始部署 Jenkins初次部署 Jenkins,会生成 一个初始登录密码
# 查看初始密码 cat /root/.jenkins/secrets/initialAdminPassword
3.3.1 安装Publish Over SSH 、Maven Integration插件
-
在 Jenkins 首页中,单击左侧的“Manage Jenkins”→“Manage Plugins”→“可选插件”, 进入插件安装界面,在搜索框中,输入要安装的 Publish Over SSH 、Maven Integration 插件,并勾选其左侧的复选框,单击“直接安装”按钮,开始插件安装操作
3.3.2 添加 Publish Over SSH 远程主机
-
在 Jenkins 首页中,单击“Manage Jenkins”→“Configure System”→“Publish over SSH”→“SSH Servers”→“新增”选项,添加 SSH 远程主机,输入 Name、 Hostname、Username 必要信息后,单击“高级”选项→勾选“Use Password authentication,or use a different key”选项→输入“远程主机登录密码”→“Test Configuration”测试远程主机配置。测试远程主机配置成功后,单击“保存”按钮
-
在docker 主机上创建远程目录
mkdir /data
3.3.3 配置 Maven、JDK、Git 环境
-
在 Jenkins 首页中,单击“Manage Jenkins”→“Global Tool Configuration”→“JDK”→“新 增 JDK”。“JDK 别名”设置为“JDK1.8”,去掉“自动安装”选项,“JAVA_HOME”为“/usr/local/java”
-
在“Global Tool Configuration”配置界面中,找到“Maven”配置选项,然后单击“新增Maven”,并设置别名为“Maven3.6”、MAVEN_HOME 为“/usr/local/maven”
-
Git 配置保持默认即可,以上各项配置完毕后,推荐重启下 Jenkins 服务,重启命令
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
四、配置docker
4.1 安装docker
-
在 Docker 主机上,构建 tale 基础镜像。在构建基础镜像之前需要先安装 Docker 与 JDK
# 安装docker、JDK yum -y install yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-ce mkdir /etc/docker cat << EOF >> /etc/docker/daemon.json { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] } EOF systemctl start docker && systemctl enable docker # 安装JDK tar zxf jdk-8u202-linux-x64.tar.gz mv jdk1.8.0_202/ /usr/local/java/ vim /etc/profile export JAVA_HOME=/usr/local/java/ export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH ============================================================ source /etc/profile java -version
4.2 构建tale基础镜像
# 构建tale镜像 ##上传Dockerfile、run.sh、openjdk.tar文件到/git mkdir /git cd git docker load -i openjdk.tar docker build -t 172.16.10.12:5000/tale:v1 .
五、构建新的工程项目
-
回到 Jenkins 首页,选择“新建任务”,输入一个任务名称“tale-test”, 并选择“构建一个 maven 项目”配置项,单击当前页面下方的“确定”按钮
# Source files target/dist/*.tar.gz # Remove prefix target/dist/ # Remote directory tale/ # Exec command执行命令如下 cd /data/tale && tar zxf *.tar.gz docker stop kgc-tale-test docker rm kgc-tale-test docker run -itd --name kgc-tale-test -p 9000:9000 -v /usr/local/java:/usr/local/jdk -v /data/tale:/tale 172.16.10.12:5000/tale:v1
-
运行项目
-
docker节点查询容器
docker ps =========================================================== CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f073970d74f8 172.16.10.12:5000/tale:v1 "/run.sh" 7 minutes ago Up 7 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp kgc-tale-test ===========================================================
-
访问docker节点ip地址:9000 端口,172.16.10.12:9000
标签:实战,git,tar,tale,了解,usr,Jenkins,docker 来源: https://blog.csdn.net/yanxifaner/article/details/121343653