为了配合上一篇的ant+jenkins做持续集成,需要在linux环境下搭建一个jenkins平台。网上有很多安装的例子,我主要记录一下自己遇到的问题,真真的是特别惆怅的,每次我遇到的问题都格外多。

主要分为三块内容,具体如下:

*安装

*问题及解决,

一 安装jenkins

1 首先确认该机器已经安装jdk,确认方式:在linux机器上输入  java -version,若系统可识别java命令,则表示已安装jdk,如下

得到的1.7.0_79为java版本,需注意:有些版本的jenkins不能使用1.6的jdk

2 安装jenkins

A 离线安装:

① 下载jenkins.war 包。Jenkins官方地址:http://Jenkins-ci.org/ (最新war包的下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war)

② 下载一个tomcat容器在webapps中放入jenkins.war,不要解压。

③ 在cd /opt/soft/tomcat/webapps/ 中执行 java -jar jenkins.war

④ 查看日志是否有异常,访问http://ip:8080即可看到jenkins界面,jenkins安装成功。

B 在线安装

使用yum命令进行在线安装,使用service命令进行启动,具体操作如下:

wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key          
yum install jenkins                                    
[root@bjdhj-120-215 run]# service jenkins start
Starting Jenkins [确定]
[root@bjdhj-120-215 run]# service jenkins status
jenkins (pid 23873) 正在运行...

浏览器访问http://ip:8080 即可看到jenkins界面,jenkins安装成功

二 遇到的问题

问题1 在执行yum install jenkins时提示:user jenkins does not exist

解决:该机器上没有jenkins用户,需要使用adduser命令创建用户,adduser命令需要配合更改passwd等的权限位完成

[root@esearch01 ~]# adduser jennkins
adduser: cannot open /etc/passwd #是因为该文件加了权限位,不可写操作
[root@esearch01 etc]# lsattr passwd   #进行确认
----i--------e- passwd
[root@esearch01 etc]# chattr -i passwd #去掉权限位
[root@esearch01 etc]# lsattr passwd #进行确认
-------------e- passwd
[root@esearch01 etc]# adduser jenkins #即可创建成功jenkins用户

问题2:修改jenkins的端口

解决:完成jenkins的在线安装后,查看/usr/lib/jenkins/jenkins.war;查看/etc/sysconfig/jenkins是jenkins的配置文件

修改jenkins文件的端口号:

vim /etc/sysconfig/jenkins 编辑该文件,修改如下两个端口

JENKINS_PORT="8001"

JENKINS_AJP_PORT="8009"

保存文件并退出,重启jenkins(service jenkins restart),在浏览器中访问http://ip:8001,打开jenkins页面。

问题3:jenkins的启动日志报错:

WARING:Could not intialize the host network interface on nullbecause of an error:101/udp

java.net.UnknownHostException:101/udp

原因:在linux执行hostname,得到101/udp。正常应该是通过hostname获取对应的机器ip,但是明显101/udp在解析时不通过,所以无法定位ip,导致错误。

解决:更新hostname。执行语句为hostname bjdhj-120-215.58os.org(自己定义一个合理的hostname名称),可用其他机器ping改hostname,看是否能正确得到对应的ip。

再次启动jenkins.war,日志正常,可访问web页面。

问题4:不能正确stop jenkins

[root@bjdhj-120-215 ~]# service jenkins stop
Shutting down Jenkins [失败]

[root@bjdhj-120-215 ~]# service jenkins status
jenkins is stop,pid is exist

解决1:java版本冲突,确认下是否同时存在java1.6 java1.7或者其他,卸载,只保留一个

解决2:重新安装jenkins,即再执行一遍yum install jenkins。

解决3:我是重新安装了好了,但我总觉得有其他地方可以解决这个问题,所以先留着坑。

启动时可能会报错,产生这个原因是jenkins的默认的jdk路径和你安装的jdk路径不一致导致的

[root@localhost /]# service jenkins start
Starting jenkins (via systemctl):  Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
                                                           [失败]

1、which java

首先输入命令行,查看结果:

[root@localhost ~]# which java

/usr/bin/java

PS:which Java是无法定位到Java的安装路径的,只能定位到执行路径;whereis Java也无法定位,只能展示一部分的Java路径,如下所示:

[root@localhost ~]# whereis java

java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz

2、echo $JAVA_HOME

使用 echo $JAVA_HOME 命令可以定位到Java安装路径,但是前提是配置了环境变量$JAVA_HOME,否则还是定位不到,如下所示:

[root@localhost ~]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[root@localhost ~]# echo $JAVA_HOME [root@localhost ~]#

3、rpm -qa | grep java

如果JDK是源码安装,那么rpm -qa | grep java命令也是定位不到的jdk的安装路径的,比如我是用的yum命令安装,使用rpm -qa | grep java命令的话,结果如下所示:

[root@localhost ~]# rpm -qa | grep java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64
tzdata-java-2018d-1.el7.noarch
java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64
java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.0.el7_4.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.0.el7_4.x86_64
[root@localhost ~]#

查询到jdk的安装路径,   检查自己的JDK是否安装,如果已经安装,检查 /etc/init.d/Jenkins 文件(可通过vi编辑器修改)中JDK路径是否与本地路径一致,不一致则将Java的正确路径加入。

sudo service jenkins restart 启动完成

linux下搭建jenkins的更多相关文章

  1. linux下搭建Jenkins环境

    前提:Tomcat.jdk已安装并配置成功,具体安装和配置可参考我的其他随笔,在此不再详述 1.官网下载Jenkins最新war包,jenkins.war 2.进入Tomcat安装目录,创建Jenki ...

  2. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  3. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  4. Linux下搭建个人网站

    前不久在阿里买了一个服务器,然后开始第一次尝试搭建自己的个人网站.前端采用了bootstrap框架,后端采用的是PHP,数据库使用的是Mysql.新手第一次在linux下搭建遇见很多问题,在这里分享一 ...

  5. Linux下搭建PHP环境

    转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

  6. Java学习心得之 Linux下搭建Java环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...

  7. Java学习心得之 Linux下搭建JavaWeb环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...

  8. Ruby学习心得之 Linux下搭建Ruby环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一 ...

  9. Linux下搭建Lotus Domino集群

    Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...

随机推荐

  1. 清新水彩追梦在路上述职报告通用PPT模板

    清新漫画风,轻松可爱模版来源:  http://ppt.dede58.com/gongzuohuibao/26566.html

  2. SQL Server 通过游标重新定义单据数据的单据编号

    DECLARE @Index INTSET @Index=100DECLARE UpdateCursor  CURSOR  FOR (SELECT DISTINCT AA.Id FROM dbo.表 ...

  3. .Net Core 3.0开源可视化设计CMS内容管理系统建站系统

    简介 ZKEACMS,又名纸壳CMS,是可视化编辑设计的内容管理系统.基于.Net Core开发可跨平台运行,并拥有卓越的性能. 纸壳CMS基于插件式设计,功能丰富,易于扩展,可快速创建网站. 布局设 ...

  4. Linux系统学习 三、网络基础—虚拟机网络配置

    Linux网络基础 Linux的ip地址配置 Linux网络配置文件 常用网络命令 虚拟机网络参数配置 1.配置Linux的IP地址 首先配置一个IP地址,让IP生效. ifconfig查看当前网络配 ...

  5. linux的路由功能实现

    参考URL: https://blog.csdn.net/chengqiuming/article/details/80140768 一,启用Linux的路由转发功能. 二,新建veth pair 三 ...

  6. 201871010114-李岩松《面向对象程序设计(java)》第十四周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  7. leetcode 双周赛9 找出所有行中最小公共元素

    给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1. 示例: 输入:mat = [[,,,,] ...

  8. LG1345 「USACO5.4」Telecowmunication 最小割

    问题描述 LG1345 题解 点边转化,最小割,完事. \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; tem ...

  9. WPF 精修篇 依赖属性

    原文:WPF 精修篇 依赖属性 依赖属性使用场景 1. 希望可在样式中设置属性. 2. 希望属性支持数据绑定. 3. 希望可使用动态资源引用设置属性. 4. 希望从元素树中的父元素自动继承属性值. 5 ...

  10. rsync的简介及使用

    1.rsync的基础概述 1.什么是备份 相当于给源文件增加一个副本,但是备份只会备份当前状态的数据,当你在写数据是,不会备份新写入的数据,除非自己手动在备份一次. 2.为什么要做备份 1.需要备份一 ...