部署Jenkins完整记录
Jenkins通过脚本任务触发,实现代码的自动化分发,是CI持续化集成环境中不可缺少的一个环节。
下面对Jenkins环境的部署做一记录。
--------------------------------------------------------------------------------------
1)安装java(yum安装java1.7)
java环境安装参考:Centos中yum方式安装java
[root@115 ~]# java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (rhel-2.6.7.2.el6_8-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)
[root@115 ~]# which java
/usr/bin/java
[root@115 ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 Oct 30 01:29 /usr/bin/java -> /etc/alternatives/java
[root@115 ~]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 Oct 30 01:29 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
[root@115 jvm]# pwd
/usr/lib/jvm
[root@115 jvm]# ll
total 4
lrwxrwxrwx. 1 root root 26 Oct 30 01:29 java -> /etc/alternatives/java_sdk
lrwxrwxrwx. 1 root root 32 Oct 30 01:29 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0
drwxr-xr-x. 9 root root 4096 Oct 30 01:29 java-1.7.0-openjdk-1.7.0.111.x86_64
lrwxrwxrwx. 1 root root 35 Oct 30 01:29 java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.111.x86_64
lrwxrwxrwx. 1 root root 34 Oct 30 01:29 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx. 1 root root 21 Oct 30 01:29 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Oct 30 01:29 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx. 1 root root 39 Oct 30 01:29 jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.111.x86_64/jre
lrwxrwxrwx. 1 root root 29 Oct 30 01:29 jre-openjdk -> /etc/alternatives/jre_openjdk
由此可知,java的home目录是/usr/lib/jvm/java-1.7.0-openjdk.x86_64
设置java的环境变量
[root@115 ~]# vim /etc/profile
.......
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使之生效
[root@115 ~]# source /etc/profile
[root@115 ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0-openjdk.x86_64
[root@115 ~]# echo $CLASSPATH
.:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/lib/rt.jar:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/dt.jar:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/tools.jar
------------------------------------------------------------------------------------------------------------------------------
上面java的环境变量一定要设置!不然tomcat启动会失败,会有以下报错:
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
------------------------------------------------------------------------------------------------------------------------------
2)安装tomcat环境
安装包下载地址:https://pan.baidu.com/s/1bDHT5G
提取密码:btir
将下载的apache-tomcat-7.0.42.tar.gz包解压放到/usr/local目录下,改名为tomcat7。
即tomcat路径为/usr/local/tomcat7
3)安装jenkins
jenkins安装包下载地址:http://pan.baidu.com/s/1o7T26Rg
提取密码:aeka
直接将 jenkins.war拷贝到/usr/local/tomcat7/webapps目录下,webapps目录下原来的内容全部删除
[root@115 webapps]# pwd
/usr/local/tomcat7/webapps
[root@115 webapps]# ll
-rw-r--r--. 1 root root 63664946 2月 3 22:26 jenkins.war
修改tomcat的配置文件,确保使用UTF-8编码(如下添加URIEncoding="UTF-8"),以防jenkins出现中文乱码:
[root@115 conf]# pwd
/usr/local/tomcat7/conf
[root@jenkins-server conf]# vim server.xml
........
<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
设置系统环境变量,在/etc/profile底部添加下面内容
[root@115 conf]# vim /etc/profile
.......
JENKINS_HOME="/usr/local/tomcat7/webapps/jenkins"
export JENKINS_HOME
使之生效
[root@115 conf]# source /etc/profile
[root@115 conf]# echo $JENKINS_HOME
/usr/local/tomcat7/webapps/jenkins
然后重启tomcat服务
[root@115 webapps]# /usr/local/tomcat7/bin/startup.sh
[root@115 webapps]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 45515 root 46u IPv6 47030248 0t0 TCP *:radan-http (LISTEN)
[root@115 webapps]# pwd
/usr/local/tomcat7/webapps
[root@115 webapps]# ll
total 62180
drwxr-xr-x. 9 root root 4096 Oct 30 20:39 jenkins
-rw-r--r--. 1 root root 63664946 Oct 30 20:38 jenkins.war
然后访问http://ip/8088/jenkins即可!
登陆jenkins后,可以在“系统管理”的Configure Global Security创建用户,创建后还需要注册后才能登陆。
=======================温馨提示====================
|
1
|
注意tomcat版本问题,本案例中的jenkins.war包适用于tomcat7版本。tomcat版本如果出现不兼容问题,会导致webapps下的应用问题(比如数据目录被莫名情况等问题) |
另:
上面的jenkins环境部署服务器只有内网ip(192.168.1.25),没有外网ip。
那么访问是通过具有外网ip(比如是113.110.186.5)服务器NAT端口转发进行的。
操作如下:
1)在113.110.186.5/192.168.1.5机器上进行NAT端口转发设置,由8080端口转发到192.168.1.25的8080端口:
[root@bastion-IDC ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.25:8080
[root@bastion-IDC ~]# iptables -t nat -A POSTROUTING -d 192.168.1.25/32 -p tcp -m tcp --sport 8080 -j SNAT --to-source 192.168.1.5
[root@bastion-IDC ~]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
[root@bastion-IDC ~]# service iptables save
[root@bastion-IDC ~]# service iptables restart
确保nat端口转发设置成功后,/etc/sysconfig/iptables文件里要注释掉下面两行!不然nat转发会有问题!
一般如上面在nat转发规则设置好并save和restart防火墙之后就会自动在/etc/sysconfig/iptables文件里删除掉下面两行内容了。
[root@bastion-IDC ~]# vim /etc/sysconfig/iptables
..........
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
[root@bastion-IDC ~]# service iptables restart
开启ip路由转发功能
[root@linux-node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
或者
[root@linux-node1 ~]# cat /etc/sysctl.conf
..........
net.ipv4.ip_forward = 1
[root@linux-node1 ~]# sysctl -p
2)在192.168.1.25上关闭防火墙
首先关闭防火墙
[root@115 ~]# service iptables stop
设置网关为192.168.1.5
[root@115 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
......
GATEWAY=192.168.1.5
......
[root@115 ~]# /etc/init.d/network restart
或者
[root@115 ~]# route add default gw 192.168.1.5
[root@dev-new-test1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.1.5 0.0.0.0 UG 0 0 0 eth0
最后测试访问jenkins:
http://113.110.186.5:8080/jenkins就可以正常访问到192.168.1.25的8080端口了

注意左下角设置”中文简体“翻译当前页


由于上面已经在/etc/profile里添加了$JENKINS_HOME,所以在jenkins界面里”系统设置“里可以看到jenkins的主目录就是$JENKINS_HOME


------------------------------------------------------------------------------------------------------------------------------------
jenkins作为发版系统的用处:
在jenkins里面添加工程,在工程里添加对应的项目
在项目配置里的“代码管理”环节,配置svn或git(需要另行下载git插件)代码下载(比如svn和git的url),将svn代码下载到jenkins对应的项目即job的workspace下;
然后在“构建”->“Excute shell”里编写rsync脚本(或在jenkins本机编写脚本,这Excute shell这里指明脚本路径)发布到远程的目标机器上。
如果jenkins的“管理插件”里没有可选插件供安装,或者没有最新插件,可以点击“高级”->“升级站点”(采用默认的站点地址http://updates.jenkins-ci.org/update-center.json)->“立即获取”。获取后,可选插件就会更新。


原文载自:http://www.cnblogs.com/kevingrace/p/5651427.html
部署Jenkins完整记录的更多相关文章
- [原创]CI持续集成系统环境---部署Jenkins完整记录
Jenkins通过脚本任务触发,实现代码的自动化分发,是CI持续化集成环境中不可缺少的一个环节. 下面对Jenkins环境的部署做一记录. ------------------------------ ...
- Centos7.2 下DNS+NamedManager高可用部署方案完整记录
Centos7.2 下DNS+NamedManager高可用部署方案完整记录 之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环 ...
- Centos下DNS+NamedManager高可用部署方案完整记录
之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环境 主机名 ip地址 dns01.kevin.cn 192.168.10.20 ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
- CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...
- Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
- 部署gerrit环境完整记录【转】
开发同事提议在线上部署一套gerrit代码审核环境,废话不多说,部署gerrit的操作记录如下:提前安装好java环境,mysql环境,nginx环境测试系统:centos6.5下载下面三个包,放到/ ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)
继下面三篇文章完成了kvm虚拟化管理平台webvirtmgr环境的部署安装:kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)kvm虚拟化管理平台WebVirtMgr部署-完 ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
继上一篇kvm虚拟化管理平台WebVirtMgr部署-完整记录(1),接下来说说WebVirtMgr的日常配置:添加宿主机,创建虚机,磁盘扩容,快照等具体操作记录如下: 一.配置宿主机1.登录WebV ...
随机推荐
- Ubuntu安装byzanz截取动态效果图
byzanz-record主要参数选项 用法: byzanz-record [选项...] 录制您的当前桌面会话 帮助选项: -?, --help 显示帮助选项 --help-all 显示全部帮助选项 ...
- IDF-CTF-简单的js加密 writeup
题目链接: http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=43 知识点:js语法 这里这里→ http://c ...
- 高德地图POI采集(URL-API)
新手从零学起,成功跑通,记一下,技术大神们多多指点. ———————————————— 1-概述 POI:兴趣点.对于百度.高德等电子地图来说,一个POI是地图上的一个店铺/商场/小区等等. 这次要解 ...
- Survey Results for Rebecca Murpheys Learning JavaScript Survey
时间 2016-01-27 05:40:46 Raymond Camden's Blog 原文 http://www.raymondcamden.com/2016/01/25/survey-res ...
- spring boot 控制 序列化格式
@PostMapping(path = "/register", produces={MediaType.APPLICATION_JSON_VALUE, MediaType.TEX ...
- [暑假集训Day4T3]曲线
三分模板. 三分法求单峰函数最优值,之后每次取所有二次函数最优值即可 #pragma GCC optimize(3,"Ofast","inline") #inc ...
- Android关于SurfaceView,SurfaceHolder,SurfaceHolder.CallBack详解
官方的定义: 1.SurfaceView SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface.你可以控制这个Surface的格式和尺寸.Surfacev ...
- direct模式下的收发
生产者 import pika import sys connection = pika.BlockingConnection(pika.ConnectionParameters( host='loc ...
- 暂时放弃ts版个人博客转js版博客
我本打算信心满满的做个vue+ts做个博客的,其实架构搭的差不多了,但是我在用vuex的时候发现一个自己无法忍受的瑕疵,那就是在用vuex的时候,得利于普通版vuex的map语法糖实在太好用,这把我惯 ...
- Nginx学习总结:常用module(二)
斜体下划线,表示建议采用默认配置,无需显式的配置 一.ngx_core_module 1.accept_mutex [on | off] 上下文:events 默认为“on”,在wor ...