zoukankan      html  css  js  c++  java
  • linux下搭建jenkins

    为了配合上一篇的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 启动完成

  • 相关阅读:
    NodeJS Stream 五:双工流
    NodeJS Stream 四:Writable
    NodeJS Stream 三:readable
    NodeJS Stream 二:什么是 Stream
    NodeJS stream 一:Buffer
    JavaScript 精粹
    详解k8s中的liveness和readiness的原理和区别_转
    通过 GoLang 全面了解 HTTPS_转自知乎-腾讯技术
    golang之vim和vscode开发环境
    go命令工具补遗
  • 原文地址:https://www.cnblogs.com/gyadmin/p/10528236.html
Copyright © 2011-2022 走看看