2017-10-02 1 views
0

J'essaie de configurer Jenkins pour qu'il soit entièrement automatisé une fois que je l'ai lancé depuis un conteneur docker.Jenkins: automatiser l'instance CI Docker

Ma question est de savoir comment automatiser la configuration des paramètres globaux de Jenkins. Par exemple les éléments dans la gestion des jenkins et des informations d'identification?

J'utilise cette référence:

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

Actuellement, je l'ensemble de ces éléments manuellement. Je voudrais automatiser complètement la création du serveur CI. Est-ce possible avec Jenkins ou y a-t-il une intervention humaine nécessaire?

Toute aide serait grandement apprécié.

Répondre

1

nous avons utilisé le chef pour configurer le maître, et il a exécuté quelques scripts groovy pour installer tout le plugin et la configuration. c'est presque fait entièrement automatiquement, à côté de 1 ou 2 plugins que je n'ai pas trouvé la syntaxe pour configurer tous les autres fonctionne bien.

J'ai installé tous les plugins en utilisant Jenkins CLI, vérifiez votre Jenkins/CLI/pour référence.

pour la configuration générale, vous pouvez installer tous les outils

import jenkins.model.* 
import hudson.model.* 

def inst1 = Jenkins.getInstance() 
def desc1 = inst1.getDescriptor("hudson.tools.JDKInstaller") 
println desc1.doPostCredential('[email protected]','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" 
] 

variables générales

// 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() 

adresse e-mail

// admin Email 
def jenkinsLocationConfiguration = JenkinsLocationConfiguration.get() 
jenkinsLocationConfiguration.setAdminAddress('[email protected]') 
jenkinsLocationConfiguration.save() 

qu'il ya beaucoup d'exemples, il suffit de regarder pour Jenkins groovy configuration .. si vous avez une question spécifique faites le moi savoir.

+0

Merci! Ceci est exactement ce que je cherchais. – Gerb

+0

laissez-moi savoir si vous avez d'autres questions ... –