zoukankan      html  css  js  c++  java
  • Jenkins 踩过的坑之再总结

    在安装完jenkins后,linux中默认使用的jenkins这个用户,这时在构建完项目后我们需要执行一些shell命令时会出现没有权限的情况,导致构建失败,这里我们需要给jenkins用户相应的权限以执行相应的命令。


    如在构建完项目后我们需要修改项目文件的属性:

    chown -R www /home/wwwroot/www.test.com/

    如果是jenkins用户,这时就是出现没有权限执行chown命令的情况。

    为了解决这个问题,我们采用的是更改jenkins默认用户的方式来实现相应命令的执行。

    1、修改jenkins执行用户

    vi /etc/sysconfig/jenkins

    修改JENKINS_USER值:

    ## Type:        string

    ## Default:     "jenkins"

    ## ServiceRestart: jenkins

    #

    # Unix user account that runs the Jenkins daemon

    # Be careful when you change this, as you need to update

    # permissions of $JENKINS_HOME and /var/log/jenkins.

    #

    JENKINS_USER="root"

    这里我们把JENKINS_USER值改为root用户。

    注意:这里不一定就要修改为root用户,可以根据实际情况分配一个可执行相应命令的用户即可。

    2、修改目录的相应权限:

    sudo chown -R root /var/log/jenkins

    sudo chgrp -R root /var/log/jenkins

    sudo chown -R root /var/lib/jenkins 

    sudo chgrp -R root /var/lib/jenkins

    sudo chown -R root /var/cache/jenkins

    sudo chgrp -R root /var/cache/jenkins

    修改完成后,当我们再次构建项目时就会发现相应命令被执行了。

    使用service jenkins restart 或浏览器  xxxxxx:8080/restart

    参考另一篇文章 删除 ~/.subversion 目录,并重新输入credentials ,如出现 authentication cancelled 需要删除已经拉取的目录

    1.自定义项目路径:

    进入job-配置-高级项目选项-选择使用“自定义的工作空间”,配置后项目不用放到jenkins默认的workspace里了。

    勾选 Pass all job parameters as System properties

    Root Build script 中 填入${workspace}/自定义路径

    2.更改整个jenkins的项目空间

    以下为转载内容-未经过尝试

    1. 先设置环境变量,变量名为JENKINS_HOME, 值为你想设置的目录 (一般情况下这样就够了,如果还是不行,就进行第二步)
    2. jenkins.war -> WEB-INF -> web.xml,修改此文件 (大概会在165行):4 P; j$ q  V  d; f$ D5 g6 n8 ]0 c
      <!-- if specified, this value is used as the Hudson home directory -->
      <env-entry>
        <env-entry-name>HUDSON_HOME</env-entry-name>; G6 L! Y. `. G" Z2 j8 ]$ G
        <env-entry-type>java.lang.String</env-entry-type>% X. i" I9 ^) @2 r/ }" C
        <env-entry-value></env-entry-value>
      </env-entry>5 e! b) u: C9 Q
    4 U9 j3 B. Q( n% h9 f* l
    在标签<env-entry-value></env-entry-value>中添加你的路径,就ok了。。。

     

    以下为转载:

    1. Failed to connect to repository

    为job设置git repository的时候报Failed to connect to repository
    解决办法:本地安装git客户端,或者�在Jenkins全局系统设置那里指定git的执行路径。

    2. No JDK named ?null? found

    任务执行失败的console里面有这样一句话:No JDK named ?null? found
    解决办法:在Jenkins系统设置中指定有效JAVA_HOME路径

    3. node: command not found

    针对command not found 我主要总结两种解决方案,对于网上说的那些方法我没看懂

    • 方案一:如果你使用service jenkins start启动了jenkins进程,那么久有可能出现Jenkins运行环境跟用户不同。最简单粗暴的方法是使用 java -jar /usr/lib/jenkins/kenkins.war
    • �方案二:把要用的命令创建一个快捷方式到/usr/bin,如 ln -s /usr/local/bin/node /usr/bin/,这样在Jenkins shell中就能用到node命令了。当然如果是node命令找不到的话可以直接使用Nodejs Plugin解决

    4. 如何设置源码库浏览器

    在Jenkins使用Git SCM的时候有一项源码库浏览器的设置,起初不知道有何用,只是看了说明大概知道是会对每次build生成changes,然后并没有告诉怎么设置,选择一种浏览器后要填一个URL,然后就各种百度谷歌没找到答案。最后自己随便填了一个,build了一下,点击changes里面的链接,报404,看了一下URL的生成规则,才知道怎么设置。
    对于githubweb的URL应该填https://github.com/�your_name/your_repo_name/

    5. 单独发送邮件给对构建造成不良影响的责任人

     
     

    勾选了这个选项之后没什么反应,如果用的是git源码库,可以在系统设置中勾选自动创建提交人

    6. 设置完权限之后无法登录怎么办

    sudo vi /var/lib/jenkins/config.xml
    将<useSecurity>true</useSecurity>改为false
    重启Jenkins,重新设置权限

    7. 为Jenkins配ssh

    可以直接将你的密钥放到/var/lib/jenkins/.ssh/下
    也可以使用ssh的插件完成

  • 相关阅读:
    MSSQL
    Dapper
    Asynchronous Programming
    PHP on CentOS (LAMP) and wordpress
    CSS
    TypeScript & JavaScript
    AngularJS 2.0
    ReadMe.md MarkDown file
    shortcuts on Windows and MacOS
    移动平台的meta标签
  • 原文地址:https://www.cnblogs.com/vana/p/8707651.html
Copyright © 2011-2022 走看看