首先,我们先来了解下什么叫做持续构建。持续构建简称CI,负责拉取代码库中的代码后,执行用户预定义的脚本,通过一系列编译操作构建出一个制品,并将制品推送到制品库里。常用的持续构建工具有 Gitlab CI,Github CI,Jenkins等。这个环节不参与部署,只负责构建代码,然后保存构建物,构建物被称为制品,保存制品的地方被称为制品库。

  另外,我们来了解下什么是持续部署和持续交付,它们可以统称为CD,即Continuous Deployment和Continuous Delivery。持续部署的概念是:将制品库中的制品拿出来后,部署在测试环境,交付给客户提前测试。持续部署则是将制品部署在生产环境。所以你看,其实持续部署和持续交付的含义类似,只是对象不同。

  今天我们的核心就是学一下Jenkins持续构建,整体的持续构建的思路类似下图,当然,这个不是绝对的,具体的场景会有区别:

  下面,我们就来看一下使用Jenkins实现持续构建的全过程,哦对,在开始之前,如果你学了之前的内容,请先清空你的服务器,就重置一下就行,之前说过阿里云怎么重置,如果是其他的云服务器,可以百度下。

  先执行以下命令,更新下系统包:

yum install -y yum-utils device-mapper-persistent-data lvm2

  然后,我们来安装下docker:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker

  然后,我们来安装下docker的阿里镜像,之前学docker的时候也玩过了:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fwvjnv59.mirror.aliyuncs.com"]
}
EOF
# 重载所有修改过的配置文件
sudo systemctl daemon-reload
sudo systemctl restart docker

  然后,我们来安装下Jenkins,Jenkins 是一个基于 Java 语言开发的持续构建工具平台,主要用于持续、自动的构建/测试你的软件和项目。它可以执行你预先设定好的设置和构建脚本,也可以和 Git 代码库做集成,实现自动触发和定时触发构建。

  先安装一下Java:

yum install -y java

  然后安装Jenkins:

sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
sudo yum install jenkins java-11-openjdk-devel
sudo systemctl daemon-reload

  然后,我们来启动以下Jenkins:

systemctl start jenkins.service

  然后,我们需要开放端口,或者关闭防火墙都行:

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=50000/tcp --permanent
systemctl reload firewalld

  看到这样的提示,说明没有启动防火墙,ok,就这样就行:

  然后,我们现在就可以访问Jenkins了,在你的本地的浏览器上输入ip及端口号8080即可。有一个要注意的是,阿里云要开启对应的端口才能访问:

  点击后进入:

  手动添加,然后保存即可。

  然后,查看下密码,页面上有提示,在命令行看一下就可以了:

cat /var/lib/jenkins/secrets/initialAdminPassword

  然后,就进来咯。

  先不要安装,如果你的网速够快,可以直接安装,否则,可以先执行下面的命令,修改插件镜像:

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

  然后,去页面里安装推荐插件就好了。安装完了之后就这样了,自己注册吧:

  然后,我们新建一个item:

  然后,内容如下图,输入即可,选择freestyle,然后确定:

  然后写个描述,保存:

  然后点击立即构建:

  然后,点击红框可以看到日志,就跟咱们平常工作用到的Jenkins很类似了:

  ok,其实到这里,你的Jenkins就搞定了,但是感觉啥也没学会是不是,没关系,咱们继续往下来。

  然后,我们回到第一个测试任务,点击配置:

  然后,选择构建环境,执行shell选项:

  然后,我们来执行个docker命令:

  然后,点击应用,再点击保存。然后,再去构建一下,不出意料地失败了:

  原因是我们的Jenkins不能访问docker服务,所以我们把Jenkins添加到docker的用户组里,然后就可以再去构建一下:

groupadd docker
gpasswd -a jenkins docker
newgrp docker
systemctl start docker.service
systemctl restart jenkins.service

  上面命令的含义就不解释了啊。都懂的。然后再构建一次,就成功了。我就不贴图了。自己看吧。下面我们给任务加一个node环境。点击Dashboard,然后系统管理,然后点击插件管理:

  然后呢,搜索nodejs,选中,安装并重启:

  然后我们再选全局工具配置:

  然后选择nodejs,起个随便的别名,然后新增安装,可选官网或者镜像,都可以啦:

  然后点击后面的应用和保存。我们之前设置好了环境,然后,我们再进入任务中的配置,选择node 那个选项,应用并保存:

  然后,再构建一下任务:

  然后,下面你需要一个git仓库的项目,你可以用github或者其他任何一个git仓库工具。假设你现在已经有了git项目。然后,记得服务器要安装git哦:

  到这里,基本上Jenkins的部分就完事了,我们聊的也不过九牛一毛,更多的用法,还需要大家自己去实践一下。

《前端运维》四、Jenkins--持续构建的更多相关文章

  1. 个人环境搭建——搭建jenkins持续构建集成环境

    ---恢复内容开始--- 搭建jenkins持续构建集成环境  要搭建jenkins持续构建集成环境,首先要安装tomcat和JDK:   第一部分,基本说明:   敏捷(Agile) 在软件工程领域 ...

  2. Jenkins持续构建打包后端服务流程详解

    背景运用场景及思路 1.为响应后端开发人员需求,提升项目开发过程效率,选择Jenkins持续构建,进行导包启动一键持续集成 思路: 使用jenkins自带,立即构建->SVN拉取代码,通过Jen ...

  3. 中小企业 IT 运维福利:快速构建 on-call 机制

    大多 IT 运营支撑同学都有过深夜业务应用突然故障的经历,监控系统准确告警,但是白天筋疲力尽的运维同学在熟睡中,经常会遗漏告警提醒:往往是接到主管电话(用户投诉了)才处理.有什么办法解决该问题呢?大多 ...

  4. Linux运维四:文件属性及文件权限

    一:文件属性 我们使用ls -lhi命令来查看文件时,会列出一堆的文件属性,如: [root@Gin day7]# ll -hi total 7.8M 260674 -rw-r--r-- 1 root ...

  5. 【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目

    jenkins发布java项目 过程参考发布vue项目.https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异. vue建立的是Freestyle ...

  6. 《前端运维》三、Docker--1镜像与容器

    一.基本概念 如果我们想要让软件运行起来,首先要保证操作系统的设置,其次还需要依赖各种组件和库的正确安装.那么虚拟机就是一种带环境安装的一种解决方案,它可以实现在一种操作系统里面运行另外一种操作系统, ...

  7. 《前端运维》三、Docker--2其他

    一.制作DockerFile docker的镜像类似于用一层一层的文件组成.inspect命令可以查看镜像或容器的的信息,其中Layers就是镜像的层文件,只读不能修改,基于镜像创建的容器会共享这些层 ...

  8. SVN+Maven+Tomcat+Jenkins持续构建

    一.准备工作 1.1安装软件 安装JDK.SVN.Maven.Tomcat.Jenkins及必要插件. 1.2安装jenkins所需插件 最开始安装jenkins时选择安装默认的插件. 其他插件: M ...

  9. 高级运维(四):Nginx常见问题处理、安装部署Tomcat服务器、使用Tomcat部署虚拟主机

    一.Nginx常见问题处理 目标: 本案例要求对Nginx服务器进行适当优化,以提升服务器的处理性能: 1> 不显示Nginx软件版本号 2> 如果客户端访问服务器提示“Too many ...

随机推荐

  1. JVM调优——JVM监控工具jvisualvm的使用及GC插件安装

    一.前言 在高并发的场景下,我们网站的的访问性能会降低,我们怎么优化,这是个问题!天天听JVM调优,实际上还是不知道怎么调优,调优也是看着网上说的修改一下JVM的堆的空间等等进行的.实际上我们应该在压 ...

  2. Python3+PyMysql

    原文地址(持续更新ing-):https://www.caituotuo.top/6bf90683.html 1. 安装PyMySQL pip3 install PyMySQL 2. 创建数据库 # ...

  3. Centos7 增加swap分区的内存大小

    Centos7 增加swap分区的内存大小 对 swap 空间的适当大小实际上取决于您的个人偏好和您的应用程序要求.通常,等于或双倍于系统内存的量是一个很好的选择 添加swap分区使用dd命令创建/h ...

  4. 商业智能BI工具为什么这么火?

    ​近年来,随着大数据.数据分析技术的兴起,商业智能BI工具应运而生,其中BI工具已成为众多企业商务决策的重要工具.也许有人会问,为什么企业需要商业智能BI工具?商业智能BI工具可以为企业带来什么? 首 ...

  5. windev中使用DateFile和Query作为表格数据源的一个重要区别

    表格可以使用DateFile(数据表)和Query(查询表)作为数据源,在列表页面中,因为表格一般都设置为不可编辑,所以这两者在表现使用上,区别都不大.尽管如此,我们还是需要清晰的知道,这两者本质上的 ...

  6. MySQL Community Server安装

    MySQL Community Server安装 下载地址:https://dev.mysql.com/downloads/mysql/,zip安装,解压缩之后其实就可以用了,但是要进行配置. 1,解 ...

  7. Java课程设计---浏览学生(实现根据姓名查询)

    1.修改窗口 2.在StudentDao中增加根据姓名查找的方法 public List<Student> getStudent(String name)throws SQLExcepti ...

  8. Docker-可视化管理工具总结-推荐使用Portainer

    对于初学docker的小白,一款好的可视化工具有助于快速掌握docker基本形态和概念,下面针对docker可视化工具做些总结 ui-for-docker UI For Docker是一个使用Dock ...

  9. IntelliJ:JUnit单元测试

    0.参考 在Intellij IDEA中添加JUnit单元测试 - 唐啊唐囧囧 - 博客园 1.引言 JUnit是Java中很出名的一个单元测试,关于JUnit的具体介绍,可以看之前写的编写JUnit ...

  10. el-dialog设置为点击弹窗以外的区域不自动关闭弹窗

    两种方法:单个设置或者全局设置 第一种:(单个设置) 在el-dialog标签中添加:close-on-click-modal="false"即可 <el-dialog ti ...