当前位置: 首页 > 面试题库 >

Jenkins:使用Groovy配置AD插件授权

扶隐水
2023-03-14
问题内容

我正在通过Groovy配置Active
Directory。我能够通过UI通过活动目录进行身份验证,这意味着端口和身份验证不是问题。我有以下基于LDAP插件的内容:

import jenkins.model.*
import hudson.security.*
import hudson.plugins.*
import hudson.plugins.active_directory.*
import hudson.*
import jenkins.*

String domain = 'my.domain.com'
String site = ''
String server = '192.168.1.1'
String bindName = 'account@my.domain.com'
String bindPassword = 'password'

SecurityRealm ad_realm = new ActiveDirectorySecurityRealm(domain, site, bindName, bindPassword, server)
jenkins.instance.setSecurityRealm(ad_realm)

这是错误:

ERROR: jenkins_script[add_active_directory] (jenkins_wrapper::ldap line 32) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '255'
   ---- Begin output of "/opt/java/latest/bin/java" -jar "/tmp/kitchen/cache/jenkins-cli.jar" -s http://localhost:8080 groovy /tmp/groovy20160208-28479-azdr83 ----
   STDOUT: 
   STDERR: groovy.lang.MissingPropertyException: No such property: jenkins for class: RemoteClass
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
    at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
    at RemoteClass.run(RemoteClass:16)
    at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:266)
    at groovy.lang.GroovyShell.run(GroovyShell.java:517)
    at hudson.cli.GroovyCommand.run(GroovyCommand.java:86)
    at hudson.cli.CLICommand.main(CLICommand.java:237)
    at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:92)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:608)
    at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:583)
    at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:542)
    at hudson.remoting.UserRequest.perform(UserRequest.java:120)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    at hudson.cli.CliManagerImpl$1.call(CliManagerImpl.java:63)
    at hudson.remoting.CallableDecoratorAdapter.call(CallableDecoratorAdapter.java:18)
   atorList.java:21)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

对这个错误有任何见解吗?

更新

新密码

import jenkins.model.*
    import hudson.model.*
    import hudson.security.*
    import hudson.plugins.*
    import hudson.plugins.active_directory.*
    import hudson.*
    import jenkins.*

    def instance = Jenkins.getInstance()
    String domain = 'my.domain.com'
    String site = ''
    String server = '1.2.3.4'
    String bindName = 'bind@my.domain.com'
    String bindPassword = '#{bind_password}'
    adrealm = ActiveDirectorySecurityRealm(domain, site, bindName, bindPassword, server)
    instance.setSecurityRealm(adrealm)

新错误

STDERR: groovy.lang.MissingMethodException: No signature of method: RemoteClass.ActiveDirectorySecurityRealm() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) values: [my.domain.com, , account@my.domain.com, ...]
            at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
            at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78)
            at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
            at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
            at RemoteClass.run(RemoteClass:15)
            at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:266)
            at groovy.lang.GroovyShell.run(GroovyShell.java:517)
            at hudson.cli.GroovyCommand.run(GroovyCommand.java:86)
            at hudson.cli.CLICommand.main(CLICommand.java:237)
            at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:92)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:497)
            at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:608)
            at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:583)
            at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:542)
            at hudson.remoting.UserRequest.perform(UserRequest.java:120)
            at hudson.remoting.UserRequest.perform(UserRequest.java:48)
            at hudson.remoting.Request$2.run(Request.java:326)
            at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
            at hudson.cli.CliManagerImpl$1.call(CliManagerImpl.java:63)
            at hudson.remoting.CallableDecoratorAdapter.call(CallableDecoratorAdapter.java:18)
            at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
            at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at java.lang.Thread.run(Thread.java:745)

问题答案:

因此,有了建议中的所有新增功能,

尝试:

adrealm =新的ActiveDirectorySecurityRealm(域,站点,bindName,bindPassword,服务器)



 类似资料:
  • 问题内容: 我正在尝试使用脚本为Jenkins配置amazon-ecs-plugin ,但找不到它并对其进行文档化。我是基于groovy的配置自动化的新手 尝试使用获取所有属性 输出: 但是,不确定如何继续处理子类 不确定如何定义该属性 手动配置后的文件看起来像 提前致谢。 问题答案: 所以我在这方面取得了一些进展。它不是幂等的,但是可以。该代码是针对我的用例量身定制的,但对于您而言,自己进行调整

  • 问题内容: 我正在尝试通过Groovy配置Jenkins EC2-Plugin。插件代码:https : //github.com/jenkinsci/ec2-plugin 我正在尝试使用一个名称来设置云以开始 有任何想法吗? 这些是错误消息 要么 问题答案: 您对的调用与任何构造函数都不匹配:https : //github.com/jenkinsci/ec2-plugin/blob/maste

  • 我想在詹金斯中强制执行以下场景: 我有工作A和工作B 我想在执行作业B时禁用作业A,在执行作业B后,我想再次启用作业A。 为了启用/禁用作业A,我使用了Groovy插件:Groovy插件 Groovy插件提供了两种可能性:执行Groovy脚本和执行系统Groovy脚本。 在开始执行作业B时,我添加了以下代码片段: 执行工作B后: 当我运行作业B时,它失败了,出现以下异常: 当我运行作业B时,它失败

  • 问题内容: 随着我越来越多地将Groovy与Jenkins Workflow插件配合使用,我开始意识到可以在多个脚本中使用的可重用代码。 共享此代码的最佳方法是什么?是否可以使用共享代码生成我自己的.jar并在Workflow脚本中利用它?还是有更简单的方法? 问题答案: 我实际上通过使用我们自己的git repo最终完成了这项工作,但在工作流库/ src中放置了一个符号链接以指向该repo。

  • 问题内容: 在新的jenkins项目中配置git repo时出现此错误: 我在Windows机器上有一个本地git repo,并且从命令提示符处克隆相同的路径可在同一台机器上工作。我不知道可能是什么问题(git.exe在系统路径上) 问题答案: Windows 将Jenkins安装为服务。但是它在没有访问GIT权限的不同用户权限下运行Jenkins服务。您可以单击此链接找到Jenkins所运行的用

  • 问题内容: 我的主要目标是使用groovy来配置Jenkins和所有插件,这样我就不需要通过Web界面手动配置Jenkins,就像这里的帖子正在尝试的那样。 具体来说,我正在尝试通过groovy在Jenkins中配置Create Job Advanced插件。 当我在Jenkins脚本控制台中尝试此代码时: 我不断收到此错误,不知道为什么。 如何通过groovy配置Create Job Advan