Articles of jenkins

什么将是一个更好的做法,而不是chmod g + r / etc / shadow所以我可以使用Unix用户/组数据库进行Jenkins身份validation?

我不想以root身份运行Jenkins,也不允许公开访问(甚至是组访问)到/ etc / shadow似乎是一个好主意。 在selectLinux用户/组数据库时,如“Manage Jenkins”所示:“Jenkins需要以root身份运行,或者User'httpd'需要属于组root,'chmod g + r / etc / shadow'需要完成启用Jenkins读取/ etc / shadow“ 从安全的angular度来看,运行Jenkins时最好的做法是什么,仍然能够以超级用户的身份执行一些任务(如果我的工作需要的话)

Start-BitsTransfer在从powershell手动触发但不使用Windows服务时工作

我正在使用BITS将文件从一台Windows 2008 R2服务器传输到另一台。 当我从PowerShell或常规命令行手动运行命令它完美的作品。 现在,当我在Jenkins中使用相同的命令作为构build脚本的一部分时,它会失败,并显示以下错误: Start-BitsTransfer:找不到path'\ 192.168.1.210 \ C $',因为它不存在。 Jenkins作为“本地系统”帐户下的Windows服务运行。 我以为改变Windows服务在“networking服务”帐户下运行可能会有所帮助,但事实并非如此。 是否有一些安全原因不允许BITS从Windows服务运行? 这里是我有deploy.ps1的Powershell脚本: Function Get-PSCredential($User,$Password) { $SecPass = convertto-securestring -asplaintext -string $Password -force $Creds = new-object System.Management.Automation.PSCredential -argumentlist $User,$SecPass Return $Creds } $credential = Get-PSCredential -User jenkins -Password jenkins Import-Module BitsTransfer Start-BitsTransfer -source c:\file.zip -destination \\192.168.1.210\C$\Website -credential $credential 再次确认,上面的PowerShell脚本工作得很好,当我手动触发它自己使用PowerShell或Windows命令。 这是我在Jenkins中用来触发脚本的命令: Powershell.exe -noprofile -executionpolicy Bypass […]

runit不会终止sv stop或sv reload的进程

我在一个AMI linux机器上的jenkins服务器上运行一个无头selenium进程,所有这些都由runitpipe理。 问题在于,发出“sv stop selenium”或“sv reload selenium”不会将旧实例沿其subprocess命名或杀死,而只是将它们从runsv进程中分离出来,所以它们会继续运行而不会知道它们,run在一个失败的重启尝试的服务。 我想我的问题是这样的: 如何编写runit自定义停止脚本 意思是:我应该尝试一个自定义的d控制脚本,以便手动清理。 我遵循这个想法: https : //stackoverflow.com/questions/392022/best-way-to-kill-all-child-processes 但是,从/ etc / sv / selenium / supervise / pid中获取pid并将其转发到循环没有任何区别。 有什么build议? sv运行脚本: #!/bin/sh exec 2>&1 exec chpst -u jenkins -U jenkins /usr/bin/xvfb-run \ –server-args="-screen 0 1024x768x32" \ /usr/bin/java -jar /usr/local/bin/selenium-server-standalone-2.42.1.jar \ -ensureCleanSession \ -browserSessionReuse

HUDSON:如何手动编码LDAP managerPassword?

我需要知道如何手动编码控制authentication哈德森的LDAPpipe理密码: <securityRealm class="hudson.security.LDAPSecurityRealm"> <server>ldap.example.org</server> <rootDN>dc=example,dc=org</rootDN> <userSearchBase>ou=People</userSearchBase> <userSearch>uid={0}</userSearch> <groupSearchBase>ou=Groups</groupSearchBase> <managerDN>cn=admin,dc=example,dc=org</managerDN> <managerPassword>{HOW DO I ENCODE THIS?}</managerPassword> </securityRealm> 这个问题已经在这里提出: http : //jenkins.361315.n4.nabble.com/How-to-encode-the-LDAP-managerPassword-td2295570.html 答案是通过hudson web界面configurationmanagerPassword字段。 我们遇到的问题是,为了configurationLDAP,必须对hudson进行身份validation,这是我们无法做到的,因为我们的LDAP身份validation当前已被破坏(LDAP和hudsonconfiguration之间的密码不匹配)。 有人可以解释如何手动编码LDAPpipe理密码? 谢谢

Jenkins不是从Ubuntu开始的

我已经安装jenkins,它工作很好,一段时间,build设工作正常。 突然它停止工作。 日志中没有任何东西 我试着重新启动它,日志中没有错误,但仍然没有运行 root@localhost:/home/nilesh# service jenkins restart * Restarting Jenkins Continuous Integration Server jenkins [ OK ] root@localhost:/home/nilesh# service jenkins status Jenkins Continuous Integration Server is not running 任何想法,为什么它没有运行? 机器有2 GB RAM。

为什么PATH在通过launchctl启动Jenkins slave时有所不同?

我有一个jenkins奴隶运行在macOS上通过ssh slave ,然后screen ,然后启动以下脚本,确保重新连接服务器,如果它下降: #!/usr/bin/env bash function startSlave() { java -jar /Users/user/slave.jar -jnlpUrl https://jenkins.company.com/computer/slave-office/slave-agent.jnlp -secret xyz sleep 3 } startSlave while true; do PID=$(pgrep "slave-agent.jnlp" | awk '{print $2}') if [[ -z $PID ]]; then echo "Jenkins slave has died, restarting…" startSlave fi sleep 60 done 这个效果很好,在Jenkins作业中echo $PATH等同于在通过ssh打开的terminal会话中运行echo $PATH 。 有时我们需要重新启动机器,所以我希望这个脚本在login时执行。 我testing了启动脚本通过launchctl解决scheme和应用程序在macOS用户启动应用程序列表。 两次都echo $PATH显Jenkins从站的echo $PATH简单地等于: […]

自动化Jenkins模块安装

有什么办法可以在Jenkins中自动安装模块吗? 我试图尽可能地脚本/自动安装我的CI盒子。 我几乎所有的工作,但目前需要有人进入jenkins,并通过网页界面安装模块。

与Jenkins进行了预测testing?

我从楼上的人那里得到了一个要求,将Jenkins设置为Pretested提交(通过在Jenkins的构build,如果所有的unit testing和其他通过然后提交并构builddist)。 我们在这里使用svn。 有没有人清楚jenkins如何做到这一点? 我发现旁边没有任何信息。

使用Jenkins部署到Tomcat根目录

有没有办法在Tomcat 7服务器的根目录上部署我的Java应用程序.war文件,使用Jenkins的Deploy插件 ? 目前该应用程序被部署在http://server/foo/如果它在一个名为foo.war的文件中。

为什么jenkins不拉浏览器?

我在我的debian服务器上安装了Jenkins。 它被设置在端口8080,当我尝试连接到它没有任何反应。 我知道它正在运行,因为当我这样做: root@jini01:/etc/default# /etc/init.d/jenkins restart 我回来了。 [ ok ] Restarting Jenkins Continuous Integration Server: jenkins. 这是我的jenkinsconfiguration文件: # defaults for jenkins continuous integration server # pulled in from the init script; makes things easier. NAME=jenkins # location of java JAVA=/usr/bin/java # arguments to pass to java #JAVA_ARGS="-Xmx256m" #JAVA_ARGS="-Djava.net.preferIPv4Stack=true" # make jenkins listen on IPv4 address […]