Jenkins凭证与种子作业



我从我们的私有云团队那里得到了一个小型Kubernetes集群,但他们希望我们自动化一切。我被告知要使用詹金斯种子作业来创建我需要的所有管道。我想好了怎么做,但有一个小问题。我需要在jenkins中手动存储docker注册表的凭据。有什么方法可以自动创建凭据吗?或者除了使用之外,还有其他方法可以通过私人注册中心进行身份验证吗

container('docker') {
withDockerRegistry([credentialsId: 'dockerRegistry', url: "https://registrurl/"]) {

我发现了一些使用groovy代码创建jenkins凭据的例子:

import jenkins.model.*
import hudson.util.*
import org.jenkinsci.plugins.plaincredentials.impl.*
import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.domains.*
import com.cloudbees.plugins.credentials.impl.*
// parameters
def jenkinsKeyUsernameWithPasswordParameters = [
description:  'Description here',
id:           'key-id-here',
secret:       '12345678901234567890',
userName:     'your-username-here'
]
// get Jenkins instance
Jenkins jenkins = Jenkins.getInstance()
// get credentials domain
def domain = Domain.global()
// get credentials store
def store = jenkins.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()
// define secret
def jenkinsKeyUsernameWithPassword = new UsernamePasswordCredentialsImpl(
CredentialsScope.GLOBAL,
jenkinsKeyUsernameWithPasswordParameters.id,
jenkinsKeyUsernameWithPasswordParameters.description,
jenkinsKeyUsernameWithPasswordParameters.userName,
jenkinsKeyUsernameWithPasswordParameters.secret
)
// add credential to store
store.addCredentials(domain, jenkinsKeyUsernameWithPassword)
// save to disk
jenkins.save()

它在Jenkins脚本控制台中运行得很好,但在我创建的任何作业中都不起作用。

我总是会遇到这样的错误:

jenkins_credentials.groovy: 28: unable to resolve class UsernamePasswordCredentialsImpl 
@ line 28, column 38.
def jenkinsKeyUsernameWithPassword = new UsernamePasswordCredentialsImpl(

您可以使用jenkins配置作为代码插件来自动创建凭据https://github.com/jenkinsci/configuration-as-code-plugin/

相关内容

  • 没有找到相关文章

最新更新