当前位置: 首页 > news >正文

jenkins教程

jenkins教程

  • 背景
  • Jenkins服务器搭建及基本配置
    • 简介
    • Jenkins自动化部署实现原理
    • Jenkins部署环境
    • Jenkins安装
      • 相关配置
      • 基本配置
      • Jenkins自动化部署(php+gitee)项目
        • Jenkins服务器上创建项目和配置
      • 配置自定义构建目录
  • 插件安装失败问题
  • SSH: Transferred 0 file(s)
  • Build step 'Send build artifacts over SSH' changed build result to UNSTABLE

背景

在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;或者前后端分离后,经常会修改接口,然后重新部署;这些情况都会涉及到频繁的打包部署。
  
那么,有一种工具能够实现,将代码提交到git后就自动打包部署勒,答案是肯定的:Jenkins
当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson等
只是Jenkins相对来说,使用得更广泛。

Jenkins服务器搭建及基本配置

简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

Jenkins自动化部署实现原理

在这里插入图片描述

Jenkins部署环境

基本环境:
  1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。
  2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。
  环境请自行搭建完成

Jenkins安装

从官网下载jenkins的war包,地址https://jenkins.io/
指定java安装目录的bin下执行 java -jar jenkins.war --httpPort=8080 不然启动插件会安装失败

/usr/local/jdk-11.0.1/bin/java -jar /usr/local/jenkins.war --httpPort=8080

打开浏览器进入链接 http://ip:8080

相关配置

在这里插入图片描述
进入插件安装选择

这里建议选择,推荐安装的插件,保证基本常用的功能可以使用

在这里插入图片描述
选择后,进入插件安装页面
在这里插入图片描述
设置初始用户和密码
在这里插入图片描述
进入系统,安装完成
在这里插入图片描述
汉化需要在插件中安装 chinese 然后重启jenkins

基本配置

在这里插入图片描述

https://www.cnblogs.com/heian99/p/16295729.html

Jenkins自动化部署(php+gitee)项目

Jenkins服务器上创建项目和配置

大体步骤:General(基础配置)–》源码管理–》构建触发器–》构建环境–》构建–》构建后操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git秘钥问题
因为jenkins是通过jenkins用户运行的所以需要创建jenkins用户的秘钥才可以
1.先切换到jenkins用户下(此时在jenkins安装目录下)
sudo su -s /bin/bash jenkins
2.生成新的ssh秘钥
ssh-keygen -t rsa
3.复制生成的公钥到gitlab
cat .ssh/id_rsa.pub

在这里插入图片描述

配置自定义构建目录

在这里插入图片描述

插件安装失败问题

在这里插入图片描述
在这里插入图片描述
解决
在这里插入图片描述

在这里插入图片描述

将源修改为

http://mirror.esuni.jp/jenkins/updates/update-center.json

亲测有效

SSH: Transferred 0 file(s)

在这里插入图片描述
重点是第三步和第一部拼接起来的路径是文件的全路径!!!
https://blog.csdn.net/weixin_44439488/article/details/120488588

这里举例说明,如果实现名称为sskzmz的任务的项目文件发送到远程服务器/www/sites/sskzmz/目录下。

注: 构建文件所在的目录是 /var/jenkins_home/workspace/sskzmz

则配置如下:

Source files **/* 表示sskzmz这个job的工作目录下所有的文件和目录。
Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。通常留空。
Remote directory 该操作是基于设定的服务器目录进行。这里我的服务器配置是的/www. 因此这里应该写sites/sskzmz即可。
Exec command 远程服务器执行的命令。例如可以输出 service nginx restart 或者/www/xx. sh 均可。

重点一: source files
要基于任务的目录进行。不支持绝对路径。如果配置不对,则找不到文件。上例中/var/jenkins_home/workspace/sskzmz
是任务目录。最终jenkins会选择 /var/jenkins_home/workspace/sskzmz/**/* 查询所要传送的文件。

重点二: Remote directory 要基于你远程服务器的目录配置。你远程服务器配置的基准是/www 。则最终的文件目录是 /www+
Remote directory的配置参数。不支持绝对路径。

只要理解上面这2点,就不会再出现SSH: Transferred 0 file(s)

链接:https://www.jianshu.com/p/ef6a4022b7b5

Build step ‘Send build artifacts over SSH’ changed build result to UNSTABLE

在这里插入图片描述
背景:因为使用的root账户所以上来目录在root下,故想把代码移到别的目录,不管是mv还是cp都会出现上图错误
思考:是不是新建一个用户 将目录预置到要部署的文件夹下(待测)

相关文章:

  • 《Java并发编程的艺术》——Java并发的前置知识(笔记)
  • 解决vs2022运行控制台项目提示:不知道如何运行名为xxxx和命令为Project的配置文件
  • 【SpringBoot2】02-SpringBoot中如何修改依赖的版本
  • Java Byte byteValue()方法的功能说明
  • 解决本地项目连接虚拟机redis进程失败【Failed connecting to host 6379】
  • EWM /SCWM/CL_DLV_MANAGEMENT_PRD 类的QUERY方法查找 outbound delivery status
  • 动作捕捉系统在仿生足式/多足机器人中的应用
  • SpringBoot整合Spring Security
  • jsp药品销售管理系统myeclipse开发sql数据库BS模式java编程网页结构
  • 银行卡四要素检测 易语言代码
  • 欧洲能源危机,这些企业将出现爆单情况
  • 我是怎么劝退打算入行软件测试的同学的?
  • iso9001质量体系认证
  • 珠磨机与球磨机的区别
  • 开发小程序,帮助民宿提高复购降低成本
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Docker 笔记(2):Dockerfile
  • ES6系统学习----从Apollo Client看解构赋值
  • LintCode 31. partitionArray 数组划分
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • V4L2视频输入框架概述
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 多线程 start 和 run 方法到底有什么区别?
  • 工程优化暨babel升级小记
  • 基于 Babel 的 npm 包最小化设置
  • 马上搞懂 GeoJSON
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 你不可错过的前端面试题(一)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 源码安装memcached和php memcache扩展
  • 06-01 点餐小程序前台界面搭建
  • 你对linux中grep命令知道多少?
  • 《天龙八部3D》Unity技术方案揭秘
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • $GOPATH/go.mod exists but should not goland
  • (007)XHTML文档之标题——h1~h6
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (论文阅读30/100)Convolutional Pose Machines
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)Oracle 9i 数据库设计指引全集(1)
  • ***通过什么方式***网吧
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET NPOI导出Excel详解
  • .Net 路由处理厉害了
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net中调用windows performance记录性能信息
  • @基于大模型的旅游路线推荐方案
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用