热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux运维•持续集成自动化(五)Jenkins+Git实现定时检测,并同步代码

如果按照前面的安装方法,Jenkins和Git应该已经可以用WEB打开了,下面我们来介绍怎么配置,怎么使用。本分前半部分我们先用Jenkins配和Git实现定时构建检测代码并将代码

如果按照前面的安装方法,Jenkins 和 Git 应该已经可以用WEB打开了,下面我们来介绍怎么配置,怎么使用。本分前半部分我们先用Jenkins配和Git实现定时构建检测代码并将代码分发到生产环境的服务器。

Maven + Neuxs 我们后续再继续更新ing……先来实现基本功能。

 

注:如果你的环境和下面“准备环境”中不一样,请参考前面的文章,准备好环境再来看本文。

准备环境安装地址汇总:https://blog.csdn.net/weixin_37973929/article/details/84028708(安装所有环境的地址在此URL的最下面)

 

准备环境:

系统:Cent OS 7

jenkins:IP地址:8080 (Web页面已经可以打开)

Git:IP地址:80 (Web页面已经可以打开)

————————————————Jenkins—————————————————–

我们先来看 jenkins 的配置

创建账户:

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

直接跳过

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

到达首页

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

安装插件:

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

安装页面最下面勾选自动重启选项

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

Jenkins 我们就先做到这里,下面我们开始Git的配置安装。

 

 

———————————————–Git————————————————————-

我们先来看Git 的配置

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

到达登录页面,我们以刚才的root账户登录。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

至此,jenkins和git的准备操作都已完成。继续往下走。

 

———————-Jenkins 配合 git 定期检测代码,并发送至生产机器———————-

首先,我们再jenkins的机器上 生成 Key,如果你的机器已经有key。可直接跳到第二步。

一、检查SSH-KEY是否已经生成过。

ls -al ~/.ssh

二、生成新的SSH-KEY(在当前用户目录下,我的是root)

ssh-keygen -t rsa -C "root@192.168.73.170"

三、生成成功

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:liJa5msRT4uS8v4S1UZwvbU/SSTT8wrA6nm9PLxpS68 root@192.168.73.170
The key's randomart image is:
+---[RSA 2048]----+
| ...o . |
| .. + + + |
| o . + = o |
| o = ..o . . |
| o+B.oS. + o |
|. +=o.=o. . = |
| o.o.. . o.. . |
| o .. .*o |
| ..+o .E=. |
+----[SHA256]-----+

四、查看生成成功的KEY

ls /root/.ssh/

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

id_rsa :私钥

id_rsa.pud:公钥

五、将id_rsa.pub的内容添加到GitLab。按照下面截图操作

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

进入页面之后 填写jenkins的公钥

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

接下来创建一个项目组。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

填写项目组信息

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

在项目组中创建 新的项目。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

填写项目信息。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

创建一个测试文件,内容随便写。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

接下来,我们测试一下是否可以在jenkins上拉取该文件。

1、我们在root目录下创建一个code,并进入到code目录。

mkdir /root/code
cd /root/code

2、执行命令:

注:git clone git@Git服务器IP地址:项目组名称/项目名称
git clone git@192.168.73.155:test-git/my-one-test-projecty-.git

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

我们进去看看是不是已经拉取下来了。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

接下来开始实现将代码发送到生产服务器。

准备一台虚拟机当做生产机器。

我准备的机器IP是:192.168.73.171 下面简称“生产机”

在生产机自定义一个路径,然后创建一个文件夹。我在/root下创建了一个/data文件夹来模拟生产环境中的生产目录。

然后我们打开jenkins创建一个新的任务。

点击“新建任务”。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

起一个名字,选择自由风格。点击确定。

来到下一个页面。(该页面内容较多,多个截图展示。)

截图一:这个截图中不用做任何修改。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

截图二:在源码管理中 选择“Git”

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

添加凭证:中间的Enter directly中,写的是Jenkins的机器私钥!!!后面不要有空格。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

截图三:选择root账号。点击保存。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

接下来我们回到首页,就看到了刚才创建的任务。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

点击名称进入项目,向下拉。会看到“构建”这个选项。打开下拉菜单,我们选择shell。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

开始进行测试,这里我们可以写两条命令。下面截图中 “testfile” 是你要同步的文件名称,”data”是生产环境的目录。

 

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

tree命令:打印目录结构。一般系统没有tree命令可以使用:yum 来安装
安装tree命令:yum install -y tree
命令一:tree
scp命令:发送到某服务器。
命令二:scp -r test root@生产服务器IP:/data/

这些都配置好之后,我们回到jenkins机器,用jenkins账号生成一对密钥,用于对生产机器做访问。

1、在jenkins机器上 切换到jenkins

su -s /bin/bash jenkins

2、执行生成密钥命令

ssh-keygen -t rsa -C "jenkins@192.168.73.170"

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

执行下面的命令,将jenkins的账号公钥发送到生产服务器。

ssh-copy-id root@生产服务器IP

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

没有登陆上去,不要紧。其实已经成功了。

我们来到jenkins的任务页面,点击立即构建。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

这个时候我们去生产服务器的目录下就可以看到文件已经同步了。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 

接下来我们来实现定是检测,如果有改动,我们就将内容同步到生产服务器。

我们找到“构建触发器”,选择“定是构建”。我写的“ * * * * * ”表示每分钟检测一次。截止到这一步,我们就实现了 定是检测代码,并分发到生产服务器。

《Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码》

 


推荐阅读
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文精选了几个结合 Vue 和 Spring Boot 的优质开源项目,适合开发者学习和参考。这些项目不仅涵盖了前后端分离的最佳实践,还提供了丰富的功能示例和详细的文档,有助于提升开发效率和技术水平。项目地址:https://github.com/ 示例链接。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 如何在任意浏览器中轻松安装并使用VSCode——Codeserver简易指南
    code-server 是一款强大的工具,允许用户在任何服务器上部署 VSCode,并通过浏览器进行访问和使用。这一解决方案不仅简化了开发环境的搭建过程,还提供了高度灵活的工作方式。用户只需访问 GitHub 上的官方仓库(GitHub-coder/code-server),即可获取详细的安装和配置指南,快速启动并运行 code-server。无论是个人开发者还是团队协作,code-server 都能提供高效、便捷的代码编辑体验。 ... [详细]
  • 在Ubuntu上安装MySQL时解决缺少libaio.so.1错误及libaio在MySQL中的重要性分析
    在Ubuntu系统上安装MySQL时,遇到了缺少libaio.so.1的错误。本文详细介绍了如何解决这一问题,并深入探讨了libaio库在MySQL性能优化中的重要作用。对于初学者而言,理解这些依赖关系和配置步骤是成功安装和运行MySQL的关键。通过本文的指导,读者可以顺利解决相关问题,并更好地掌握MySQL在Linux环境下的部署与管理。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化
    PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化 ... [详细]
  • 本课程首先介绍了全栈开发的最后一公里为何重要,并详细探讨了搭建线上生产环境的关键步骤。随后,通过五个本地Node.js项目的实战演练,逐步展示了从快速构建纯静态简易站点到复杂应用的全过程,涵盖了环境配置、代码优化、性能调优等多方面内容。 ... [详细]
author-avatar
低调的小男2502928607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有