linux环境下搭建jenkins实现自动部署
写在前面:公司项目初期,环境一切从始。因此,项目的发布环境需要自己搭建。就动手搭建了jenkins,在此把个人的搭建过程以及搭建中碰到的问题一起总结一下。
1. 准备环境。
首先,需要jdk是必须要安装好的。本人使用的linux是centos,直接使用yum安装。
先找到合适的版本:
yum search java | grep jdk
然后运行安装:
yum install 合适版本全称
安装maven(看个人使用的项目构建工具自行选择)
yum install maven
安装git(看个人项目管理工具自行选择)
yum install git
2. 安装jenkins
前期准备工作结束后,就可以安装jenkins了。安装jenkins其实非常简单。首先下载jenkins的安装包。传送门:https://jenkins.io/download/ 。 按照自己的系统选择下载。
centos的下载后,是一个war包。选择合适路径存放并启动即可。本人放到 ~/jenkins/下。然后启动:
java -jar jenkins.war --httpPort=8096
其中参数httpPort是用来指定jenkins的访问端口。启动后,输入http://localhost:8096,然后按照指导安装即可。其中,插件的选择,建议按照自选,选择自己需要的插件安装。然后就等待插件安装,安装可能因为网络等原因,个别插件安装失败,不要着急,直接选择重试即可,就会将失败的重新安装。如果不行,try one more time! 至此,jenkins就安装成功了。
3. 关于插件
个人用到几个麻烦点的插件,在此说明一下。
3.1 Publish over SSH
如果你部署的项目跟jenkins不在同一台机器上,那么你会用到这个插件的。该插件就是通过ssh将打包好的文件发布到远程服务器上,并执行命令。该插件的详解以及使用方法官方文档比较详细,传送门:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin 。
在这里说一下个人碰到的问题。图文并茂形式:

3.2 Role-based Authorization Strategy
如果团队使用jenkins,那你肯定需要做权限管理的。不同项目组的人员只能编辑、构建不同项目组的项目。这个插件就是这个功能。
首先,安装该插件。然后想要使用,需要先在全局安全配置中选择安全策略:

按如下图选择:

选择完之后,系统管理下,就会多出如下图的选项:

进入后,如下释义:

其中内部配置不再多少,只说一点,角色管理:

project roles是要配置的项目角色,角色新增时,可以按照正则表达式模糊匹配项目。如图,个人比较喜欢该种匹配模式:.*(?i)xxx.* 。释义: .* 为任意个字符,(?i)为后边的字符忽略大小写。这样就可以按项目名特点,分组配置角色。具体配置可看官方文档:https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin
4. 其他
1. jenkins执行完后,会杀死该build id启动的进程。因此,如果不想启动脚本被干掉,可以再shell中将build id给改掉,这样jenkins就找不到了,嘿嘿。。。
BUILD_ID=DONTKILLME
2. jenkins启动后,有一些jenkins的环境变量可以使用。比较常用的有${WORKSPACE}、${JOB_NAME}等。具体list可参考:

后记:至此,jenkins的安装以及使用注意点基本说完了,当然,注意事项只是个人使用中的注意点。如果有其他的具体傻瓜式安装步骤等,可自行google,教程还是很多很清楚的。
先写这些,如有问题可邮件沟通:fusang129@126.com。
linux环境下搭建jenkins实现自动部署的更多相关文章
- linux环境下搭建Jenkins持续集成(Jenkins+git+shell+maven+tomact)
准备环境 jenkins.war包 ,jdk1.8 ,tomact , maven,git 1.Jenkins war包,下载地址https://jenkins.io/zh/download/ ...
- 在Linux 环境下搭建 JDK 和 Tomcat
在Linux 环境下搭建 JDK 和 Tomcat 参考地址:http://www.cnblogs.com/liulinghua90/p/4661424.html [JDK安装] 1.首先下载 ...
- Linux环境下搭建禅道管理工具-包含软件资源
Linux环境下搭建禅道管理工具 1:百度云盘下载: 禅道--链接: https://pan.baidu.com/s/1Stu7nOZVIPO5TnpJWjWtiQ 提取码:dnik CentOs操 ...
- Windows和Linux环境下搭建SVN服务器
--------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...
- Linux环境下搭建Tomcat+mysql+jdk
Linux环境 1.下载并安装一个VMware workstation, 这个是虚拟机的平台(自行度娘下载~),虚拟机是在后面要在里面搭建Linux系统. 2.下载一个centos安装包,linux版 ...
- linux环境下搭建环境发布web项目
在公司真是学习了一下项目环境在linux下搭建和发布的过程,这是每个程序员都应该掌握的一个技能,将整理下为以后温习用,也乐于和为掌握这些技能的猿分享: 这里主要分为5部分:1.安装jdk,并配置环境变 ...
- 在Linux环境下搭建Tomcat+mysql+jdk环境
按照下面的步骤一步一步来搭建tomcat+jdk+mysql环境. [Linux环境]------我搭建的是64位centos版本的linux系统 1.下载并安装一个VMware workstat ...
- linux环境下搭建MySQL
linux下搭建mysql的方式很多,网上也详解了很多种搭建方式,有直接yum的.有rpm的..总之,“坑”是层出不穷,有相关文件依赖性.权限.GPG keys等等. 本人也在今天搭建了一下.是出“坑 ...
- Linux环境下搭建禅道
如何在Linux下搭建禅道 查看Linux版本信息 # cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 禅道官网下载Linux ...
随机推荐
- Qt5.4.1移植到arm——Linuxfb篇
Qt5与Qt4对比有很大的改变,其最大的特性在于模块化,并且很明显的是不再见到Qt4用到的qws,Qt5新增了QPA系统,基于QPA使得Qt5移 植到一个新平台非常简单而又具有极强的底层扩展能力:同时 ...
- ARC管理内存(一)
相关概念 栈 当程序执行某个方法(或函数)时,会从内存中名为栈(stack)的区域分配一块内存空间,这块内存空间称为帧(frame).帧负责保存程序在方法内声明的变量的值.在方法内声明的变量称为局部变 ...
- Android系统--Binder系统具体框架分析(一)
Binder系统具体框架分析(一) 一.Binder系统核心框架 1. IPC:Inter-Process Communication, 进程间通信 A进程将数据原原本本发送B进程,主要负责进程间数据 ...
- Shell脚本实现SSH免密登录及批量配置管理
本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...
- nginx根据项目名实现内网地址转发
nginx根据访问的项目名进行内网地址转发 以下是nginx的配置信息: server { listen 8081; server_name localhost; #charset koi8-r; # ...
- Luogu-3222 [HNOI2012]射箭
几何题,二次函数,化一下式子吧 设二次函数\(y=ax^2+bx\),对于一个线段\((x,y1)\),\((x,y2)\),与他相交的条件是\(y1<=ax^2+bx<=y2\) 对于\ ...
- How to use Jenkins
一.关键点 1.how to start the build server? do i need to start some app to do this? I don't believe so... ...
- Solr 报错:java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
HBase协处理器中使用Solr时报错,如下 2018-07-11 17:06:14,054 INFO [LruBlockCacheStatsExecutor] hfile.LruBlockCache ...
- Spark Shuffle的技术演进
在Spark或Hadoop MapReduce的分布式计算框架中,数据被按照key分成一块一块的分区,打散分布在集群中各个节点的物理存储或内存空间中,每个计算任务一次处理一个分区,但map端和re ...
- socket io 记得flush
public class Client { public static void main(String args[]) throws Exception { //为了简单起见,所有的异常都直接往外抛 ...