1、去年在自己的服务器上安装了jenkins,说用来自己研究一下jenkins自动化部署前端项目,jenkins安装好了,可是一直没管,最近终于研究了一下使用jenkins自动化部署,以此记录下来。

一、jenkins的安装

由于安装已经过去大半年时间了,具体步骤没有记录,可以到网上自行百度。

大致流程:

1、安装jdk

2、下载jenkins包并安装

3、修改jenkins端口(我用的8888端口)

4、防火墙开启对应端口(我的开启8888端口)

5、启动jenkins:service jenkins start

注:jenkins安装好后的默认账号是admin,默认密码在 /var/jenkins_home/secrets/initialAdminPassword 文件中,重置密码请自行百度

二、配置jenkins权限

安装完Jenkins后,还需要再配置一下Jenkins的root权限(提升执行shell命令的权限)

sudo vim /etc/sysconfig/jenkins
编辑状态中
JENKINS_USER="root"

修改 Jenkins 相关文件夹用户权限

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

重启jenkins服务

service jenkins restart

三、jenkins安装插件

点击Dashboard 旁边的向下的黑色箭头(截图里看不到)-系统管理-插件管理

进入到该页面后,点击 可选插件,可以搜索并安装插件

需要安装如下插件:

NodeJS Plugin(nodejs环境)

Publish over SSH (用于执行构建后的操作)

Gitee Plugin(由于我用的是gitee管理代码,所以需要安装)

四、配置信息

点击左上角Dashborad -> 系统管理 -> 全局工具配置

4.1、配置git命令

4.2、配置node信息

这里需要选择和自己本地node一致的版本

 

4.3、配置gitee

证书令牌需要提前在gitee里配置,登录gitee账户,进入设置 -> 私人令牌 页面,点击生成新令牌

4.4、配置Publish over SSH

1、在自己的服务器上生产ssh key

ssh-keygen -t rsa -C "xxxx@xxx.com"

2、查看生成的公钥

cat ~/.ssh/id_rsa.pub

3、复制公钥到下图的位置

五、新建任务

5.1、添加任务和选择任务类型

点击左侧的 新建任务,打开如下页面,输入一个任务名称,选择“构建一个自由风格的软件项目”,点击确定

5.2、配置源码管理

5.3、配置构建触发器

5.4、配置构建环境

5.5、配置构建

增加构建步骤 选择 执行shell,并编写shell脚本:

继续点击:增加构建步骤  -> Send files or execute commands over SSH

执行sheel脚本,其实sheel脚本里的命令也就是先把nginx下的对应前端工程代码先进行备份,然后使用npm命令进行打包,生成dist目录,最后再把dist目录下的所有文件复制到nginx下对应的前端工程目录下,这样也就完成了前端工程部署。nginx下替换完前端工程代码后,不用重启nginx。

备注:该篇博客里记录的配置步骤有些粗糙,或许存在遗漏。不足之处敬请指教。

linux中使用jenkins自动部署前端工程的更多相关文章

  1. 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建

    使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 目录 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 使用jenkins自动 ...

  2. jenkins自动部署maven工程到服务器----SSH+shell

    今天心情不是很美丽,玩笑话可能没那么多,还是回归正题 1.指定SSH端口.用户名.密码相关配置,我这里没有需要配置密钥啥的. 2.接下来再创建任务的时候,进行SSH配置: 3.看到这里,是不是很想打我 ...

  3. 关于gitlab+jenkins自动部署代码的实现

    本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...

  4. 使用Jenkins自动部署博客

    title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...

  5. Jenkins自动部署spring boot

    Jenkins自动部署spring boot 背景介绍 本公司属于微小型企业,初期业务量不高,所有程序都写在一个maven项目里面,不过是多模块开发. 分了login模块,service模块,cms模 ...

  6. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

  7. 内存溢出导致jenkins自动部署到tomcat失败

    原文地址:http://openwares.net/java/jenkens_deploy_to_tomcat_error_of_outofmemoryerror.html jenkins自动部署wa ...

  8. jenkins自动部署代码到多台服务器

    下面讲一下如何通过一台jenkins服务器构建后将代码分发到其他的远程服务器,即jenkins自动部署代码到多台服务器. 1.下载 pulish over ssh 插件 2.系统管理 -> 系统 ...

  9. 15.自动部署web工程

    用maven自动部署web工程 在pom.xml中写入以下: <build> <!--最终名称,进入网页时有http://localhost:8080/xxx/--> < ...

  10. Linux中的定时自动执行功能(at,crontab)

    Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...

随机推荐

  1. Java并发小结01

    Java并发小结01 主要参考自<实战Java高并发程序设计>. 需要知道的概念 - 同步与异步 - 并发与并行 - 临界区 - 阻塞与非阻塞 - 死锁.饥饿.活锁 同步与异步 同步:同步 ...

  2. Linux & 标准C语言学习 <DAY12_2>

    一.堆内存     1.什么是堆内存         是进程的一个内存段(text.data.bss.stack.heap)         由程序员手动管理         特点是足够大,缺点是使用 ...

  3. 坚叔:让科幻片的概念变成产品丨编程挑战赛 x 嘉宾分享

    前言 本文基于资深创业者@坚叔在「RTE 2022 创新编程挑战赛」宣讲活动中分享内容二次整理. 嘉宾简介:陈坚(坚叔),国内二次元 AR/VR 资深创业者,国内第一批空间虚拟数字化从业人员,获得政府 ...

  4. Django笔记二之连接数据库、执行migrate数据结构更改操作

    本篇笔记目录索引如下: Django 连接mysql,执行数据库表结构迁移步骤介绍 操作数据库,对数据进行简单操作 接下来几篇笔记都会介绍和数据库相关,包括数据库的连接.操作(包括增删改查).对应的字 ...

  5. Spring AOP面向切面编程案例 (注解驱动开发)

    AOP(动态代理):指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式:[1]导入 aop 模块:Spring AOP:(spring-aspects):[2]定义一个业务逻辑类 ...

  6. 网络----OSI七层

    OSI 订制的是一个用于计算机或通信系统间互联的标准体质(一般称为OSI参考模型或七层模型) OSI 模型把网络通信的工作分为7层分别是: 常用内容:物理层 数据链层 网络层 注解 OSI 7层 1. ...

  7. Redis - 对象结构

    简介 Redis 使用对象存储数据库中的键和值,每当在 Redis 中创建一个新的键值对时,都会创建两个对象:一个是键对象,另一个是值对象. 其中,Redis 的每种对象都由对象结构和对应编码的数据结 ...

  8. ASP.NET Core - 选项系统之选项验证

      就像 Web Api 接口可以对入参进行验证,避免用户传入非法的或者不符合我们预期的参数一样,选项也可以对配置源的内容进行验证,避免配置中的值与选项类中的属性不对应或者不满足预期,毕竟大部分配置都 ...

  9. 一款针对EF Core轻量级分表分库、读写分离的开源项目

    在项目开发中,如果数据量比较大,比如日志记录,我们往往会采用分表分库的方案:为了提升性能,把数据库查询与更新操作分开,这时候就要采用读写分离的方案. 分表分库通常包含垂直分库.垂直分表.水平分库和水平 ...

  10. Knockin' On PHP's Door ---PHP入门必知(持续更新)

    1.->.=> 和 :: 区别: ::   类中调用静态方法时用->  类中调用属性和非静态方法=> 是键值对,比如在关联数组中用 $arr = ["name&quo ...