Jenkins
持续集成:Continuous Integration,简称CI,意思是,在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测试,甚至自动部署到测试环境。这样做的好处就是,随时发现问题,随时修复。因为修复问题的成本随着时间的推移而增长,越早发现,修复成本越低。
持续集成工具
Travis CI
在线托管的CI服务,用Travis来进行持续集成,不需要自己搭服务器,在网页上点几下就好,用起来更方便。最重要的是,它对开源项目是免费的。私有项目会收费。
Jenkins
Jenkins是一个用Java编写的开源的持续集成工具。官方网站:https://jenkins.io/
Jenkins能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能用图表的形式,形象地展示项目构建的趋势和稳定性。
简介
Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降:持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、集成、测试、部署得以持续。。
使用Maven(Ant)等来实现lava项目自动化构建发布部署。这些工具可以帮助在构建过程中实现自动化发布、回滚等动作。
Jenkins提供Docker、war等部署方式,博猪比较倾向于yum源安装方式,同时作为一个服务启动。
安装教程
系统要求
最低推荐配置:
- 256MB可用内存
- 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)
为小团队推荐的硬件配置:
- 1GB+可用内存
- 50 GB+ 可用磁盘空间
软件配置:
- Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。
注意: 如果将Jenkins作为Docker 容器运行,这不是必需的
下载Jenkins
1 |
|
查看Jenkins状态
1 |
|
如果是开启状态,关闭,以便更改配置。关闭命令如下:
1 |
|
自定义配置
配置路径如下: /etc/sysconfig
自定义配置路径
1 |
|
自定义默认用户
1 |
|
自定义访问路径
1 |
|
重启&&启动Jenkins服务
1 |
|
访问&&解锁Jenkins
访问地址为:linux+端口号,如上配置为:
http://192.168.56.121:9955
,访问后,进入一下配置页面。
按照上方提示,输入一下命令,输入密码:
1 |
|
按照插件
默认按照推荐按照即可。
初始化用户
创建初始化用户,用户名:opser,密码:admin
Jenkins初始URL默认不进行配置
安装完成,开始使用
Jenkins优化
插件优化
由于Jenkins默认使用国外的镜像,所以插件下载安装速度极慢,所以我们需要更改插件仓库。
注意:该仓库更改必须要在没有下载插件之前!
进入Jenkins目录,
/opt/jenkins
复制并重命名文件
hudson.model.UpdateCenter.xml
1
cp hudson.model.UpdateCenter.xml hudson.model.UpdateCenter.xml.bak
修改
hudson.model.UpdateCenter.xml
1
2url改为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json修改
default.json
配置default.json
1
vim /var/lib/jenkins/updates/default.json
全局替换
把 updates.jenkins-ci.org/download 替换为 mirrors.tuna.tsinghua.edu.cn/jenkins
地址修改把
www.google.com
替换为www.baidu.com
重启服务
1
systemctl restart jenkins
页面优化
装完Jenkins之后,我们发现有一部分菜单汉化了,有一部分菜单没有汉化,这让人很不爽,所以我们需要调整一下让页面保持统一!
系统管理
-插件管理
-已安装
,中搜索,Localization: Chinese (Simplified)
- 卸载,重装,同时安装
locale
插件 系统管理
-系统配置
-Locale
-Default Language
,填写zh_CN
,勾选Ignore browser preference and force this language to all users
- 重启
Jenkins操作
基本配置
配置一览
构建环境配置
指定构建时所依赖的环境参数,如jdk版本,可以手动安装jdk,也可以在【全局工具配置】中指定好jdk版本,在首次构建时会自动安装,首次构建下载时间较长,耐心等待即可。
以NodeJS自动安装为例:
插件管理
构建模块大多以插件形式存在,使用前需安装,否则无法找到对应构建项。
服务器配置
系统管理->系统配置->Publish over SSH,点击[新增]按钮添加服务器,按要求填写服务器信息,如果没有找到此选项,可先在【插件管理】中安装Publish over SSH插件。
说明:Remote Directory指定的目录会作为文件上传时的根目录。
Java应用构建配置
新建任务
以构建Maven项目为例,选择一个Maven构建风格,可以省去许多maven配置,如果已经有一个相同配置,可选择输入名称进行复制。
Maven setting.xml配置文件:
/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven/conf/
构建包留存策略
源码仓库
正式环境采用参数化构建,只用Git参数指定构建tag分支,默认master分支
配置源码仓库,指定动态tag分支
自动构建选项
取消触发自动构建的选项
构建
在jekenis服务器本地构建,使用jekenis服务器的maven配置进行编译构建
上传
构建成功后上传到指定部署服务器,仅编译成功后进行上传
- Name:在服务列表中选择上传目标;
- Source files:指定上传的jar包,支持正则通配(根据构建目录距离jar包位置的不同,会自动在服务器端创建不同深度的目录)。
- Remote directory:可以指定上传目录,目录位于配置服务器时指定的根目录之下。
- Exec command:上传成功后在上传后的服务器上执行的命令或脚本。
注:整体涉及到的编译脚本详见“项目编译脚本”
Js应用构建
新建任务
选择一个自由风格的构建
构建包留存策略
源码仓库
正式环境采用参数化构建,只用Git参数指定构建tag分支,默认master分支
配置源码仓库,指定动态tag分支
自动构建选项
取消自动构建选项
构建环境
指定构建环境,选择已配置的nodejs构建环境,在jekenis本地服务器进行编译构建
构建
在jekenis本地服务器进行编译构建
为方便后续上传,在构建环节执行了压缩命令,可视情况而定。
注:整体涉及到的编译脚本详见“项目编译脚本”
上传
将编译并压缩后的前端文件上传到指定服务器
在服务器列表中选择目标,指定上传文件,填写上传成功后需执行的命令。因VUE编译多次会生成不同的文件,故需将编译后的文件一次性上传多个负载的服务器。
即重新选择一次上传步骤:
注:整体涉及到的编译脚本详见“项目编译脚本”