起因

近期由于工作需要做起了起了jenkins的维护。不做不知道,一搞发现里边全是小坑。两个月弄了一身泥。曾经小瞧了它,但是发现其实要弄好它不是那么容易的。有句知名的话“没有总结就没有提高。”,尝试把这一段的工作总结下来。第一篇是安装Jenkins 相关的内容,不会把Jenkins的doc抄一遍,会写一些doc以外的东西。

版本考虑:

  • 使用LTS的版本,不要有尝鲜心态(满满的bug),新特性不重要。但bug会让你很困扰。

  • 选择Jenkins2以上的版本(这篇文章写于2017年),充分利用Pipline特性。1.x和2.x其实是两个差异很大的版本。2.x的大坑其实已经被很多企业趟平了。

操作系统考虑:

建议linux系统,因为考虑到稳定性,jenkins服务器应该避免放到桌面级,而是放到托管服务器或者云端,这时候window系统或者mac系统就不合适了。

部署host考虑:

  • 建议部署到IDC或者云端,将OS和存储的维护交由运维工程师管理,以保持基础服务稳定。Jenksin不是玩具,应该按照生产系统的级别来对待,如果严重依赖CI,它的不 可用影响极大。不做托管,各种断电、磁盘不够、备份安全性、系统安全问题会让维护者欲哭无泪。所以,一定不要随便找台机子就开始安装。

安装方式考虑:

jenkins支持多种方式部署:独立部署(自带轻量级web容器 Winstone Servlet Container ) 部署在容器上的serverlet,docker,几种方式各有利弊,可以根据自己的需要选择。

安装样例(Unbuntu下安装jenkins)

在Ubuntu下我们可以用apt命令搞定安装,这样jenkins会变成一个系统进程(其实就是起了一个Winstone Servlet Container)。

在安装之前,确保你的系统装了1.7版本以上的Java

java -version java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins

这样jenkins就被安装好了。

检查安装:

http://安装机ip/:8080 查看安装是否OK。
后续就是密码验证和插件安装阶段了。

端口映射

修改为80端口,这样就不用写端口号了。

修改: /etc/default/jenkins文件 HTTP_PORT=80

域名

如果有内部域名,最好配置一个,毕竟记ip是个很恶心的事儿。

参考文章:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins

参考

Jenkins拾遗--第一篇(安装Jenkins)的更多相关文章

  1. 【OpenCV入门指南】第一篇 安装OpenCV

    http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...

  2. Jenkins拾遗--第二篇(初步配置Jenkins)

    插件配置 第一次安装Jenkins的时候会让你配置插件.这里有一个建议:就是把所有插件都看一遍,如果用不到,就不要勾选.Jenkins插件兼容性有的时候不是很好,多装多出事儿,保持最小集就好.浏览一遍 ...

  3. [jenkins学习篇] 安装jenkins

    1 下载war包,https://jenkins.io/download/ 2 安装jar包,java -jar jenkins.war 3 打开网址:http://localhost:8080 4 ...

  4. Jenkins(3)- 安装Jenkins过程中遇到问题的排查思路

    如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 安装Jenkins过程中,可能会遇 ...

  5. node项目自动化部署--基于Jenkins,Docker,Github(1)安装Jenkins

    前言 每次项目代码更新后都要重新部署,如果只有一台服务器还好. 但是如果是分布式系统,动不动就很多台服务器,所以代码的自动部署就显得十分重要了. 这里用几篇文章来记录一下如何使用Jenkins,Doc ...

  6. centos下搭建Jenkins持续集成环境(安装jenkins)

    1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...

  7. 第一篇 -- 安装和配置PyQt5

    我的电脑环境是:Win10 + Python3.6.4 + JetBrains PyCharm 2017.3.2 x64 之前用tkinter写界面,现在学习如何用PyQt5写界面. 安装PyQt5: ...

  8. OpenResty 安装及使用(第一篇安装)

    OpenResty搭建 1.openResty介绍 OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,很多的常用的第三方模 ...

  9. Node 之 Express 学习笔记 第一篇 安装

    最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架. 现在关于web开发框架除了Express 还有新出的 KOA以及其它一些. 但是想想还是先从 Express 入手吧.因为比较成 ...

随机推荐

  1. outlook添加邮箱账户时,测试成功,下一步显示请求失败

    今天在给公司同事添加邮箱账户时,全部设置正常,测试也成功了,但是点击下一步时,出现了请求失败的提示.     1.  看到这个提示,我首先重启了一下outlook,发现进去添加还是不行  2.重启了电 ...

  2. MySQL的四种主要存储引擎

    在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? ...

  3. 检测浏览器中是否有Flash插件

    由于IE和非IE浏览器检测方式不同,所以代码如下 function hasPlugin(name){ debugger; name = name.toLowerCase(); for(var i=0; ...

  4. 【LOJ6045】「雅礼集训 2017 Day8」价(网络流)

    点此看题面 大致题意: 有\(n\)种药,每种药有一个权值,且使用了若干种药材.让你选择若干种药,使得药的数量与所使用的药材并集大小相等,求最小权值总和. 网络流 \(hl666\):这种数据范围,一 ...

  5. 轻量级HTTP服务器Nginx(Nginx性能优化技巧)

    轻量级HTTP服务器Nginx(Nginx性能优化技巧)   文章来源于南非蚂蚁   一.编译安装过程优化 1.减小Nginx编译后的文件大小在编译Nginx时,默认以debug模式进行,而在debu ...

  6. 2017.11.11 详谈application、session、request和page的作用范围

    今天在图书馆遇到了问题 不知道怎么选择session还是request Web应用中的JSP和servlet都是由web服务器来调用,Jsp和Servlet之间通常不会相互调用,那么Jsp和Servl ...

  7. 2017.11.4 JavaWeb-----基于JavaBean+JSP求任意两数代数和(改进的在JSP页面中无JSP脚本代码的)+网页计数器JavaBean的设计与使用

    修改后的JSP中不含有JSP脚本代码这使得JSP程序的清晰性.简单 1.设计JavaBean 的Add.java 类 package beans; public class Add { private ...

  8. clear:both;和overflow:hidden;的应用理解。

    摘自cbwcwy 前辈: clear是子模块之间限定的,如下:<div id="a">    <div id="1"></div& ...

  9. Layer弹出层关闭后刷新父页面

    API地址:http://layer.layui.com/api.html#end 调用END回调方法: end - 层销毁后触发的回调 类型:Function,默认:null 无论是确认还是取消,只 ...

  10. filter 过滤器从数组中选择一个子集

    输入过滤器可以通过一个管道字符和一个过滤器添加到指令中,该过滤器后面跟着一个冒号:冒号后面是一个模型名称. <!DOCTYPE html><html><head>& ...