我试图将Jenkins设置为从Docker容器启动后完全自动化。
我的问题是如何自动配置全局Jenkins设置。例如,管理jenkins和凭证中的项目?
我使用这个参考:
https://wiki.jenkins.io/display/jenkins/remote+access+api
目前,我已手动设置这些项目。我想完全自动化CI服务器创建。詹金斯有可能这样做,还是需要一些人为干预?
非常感谢任何帮助。
答案 0 :(得分:1)
我们使用chef来设置master,并运行一些groovy脚本来安装所有的插件和配置。它几乎完全自动完成,除了1或2个插件,我没有找到配置所有其他工作正常的语法。
我使用Jenkins CLI安装了所有插件,请检查yourJenkins / cli /以供参考。
对于一般配置,您可以安装所有工具
{
"presets": [
"es2015"
],
"env": {
}
}
一般变量
import jenkins.model.*
import hudson.model.*
def inst1 = Jenkins.getInstance()
def desc1 = inst1.getDescriptor("hudson.tools.JDKInstaller")
println desc1.doPostCredential('buildJenkins@gmail.com','JenkinsOracleXXXXX')
import jenkins.model.*
import hudson.model.*
import hudson.tools.*
// JDK installation
def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("hudson.model.JDK")
def versions = [
"jdk-1.8.101": "jdk-8u101-oth-JPR",
// "jdk-1.8.102": "jdk-8u102-oth-JPR"
]
电子邮件地址
// general properties
instance = Jenkins.getInstance()
globalNodeProperties = instance.getGlobalNodeProperties()
envVarsNodePropertyList = globalNodeProperties.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class)
newEnvVarsNodeProperty = null
envVars = null
if ( envVarsNodePropertyList == null || envVarsNodePropertyList.size() == 0 ) {
newEnvVarsNodeProperty = new hudson.slaves.EnvironmentVariablesNodeProperty();
globalNodeProperties.add(newEnvVarsNodeProperty)
envVars = newEnvVarsNodeProperty.getEnvVars()
} else {
envVars = envVarsNodePropertyList.get(0).getEnvVars()
}
envVars.put("ARTIFACTORY_URL", "artifactory-url")
envVars.put("ARTIFACTORY_USER", "jenkins")
envVars.put("DOCKER_USER", "docker-push")
instance.save()
有很多例子,只需寻找常规的Jenkins配置.. 如果您有任何具体问题请告诉我。