Jenkins:自动化CI Docker实例

时间:2017-10-02 17:36:33

标签: docker jenkins automation

我试图将Jenkins设置为从Docker容器启动后完全自动化。

我的问题是如何自动配置全局Jenkins设置。例如,管理jenkins和凭证中的项目?

我使用这个参考:

https://wiki.jenkins.io/display/jenkins/remote+access+api

目前,我已手动设置这些项目。我想完全自动化CI服务器创建。詹金斯有可能这样做,还是需要一些人为干预?

非常感谢任何帮助。

1 个答案:

答案 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配置.. 如果您有任何具体问题请告诉我。