本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2016/07/01/use-jenkins-grrovy-script-add-slave/
Jenkins应该是最常用的CI/CD工具了,而Jenkins也有官方的Docker版本,可以很方便的获得一个可用的Jenkins。
但是大部分时候我们期待的是从Docker启动Jenkins之后一切环境都是准备就绪的,比如对应的插件啥的。
对于插件来说还比较简单,直接提供一个plugin.txt文件即可
credentials:1.18 maven-plugin:2.7.1
Jenkins的任务是可以在master直接运行的,但是很多时候,特别会需要很多不同构建环境的时候我们就会需要多个不同的Jenkins Slave了。
Docker-Compose可以做到启动多个容器,这样我们就可以直接在其中就行配置了,比如一个java7的Slave,一个java8的,再来一个node的,但是最后还是需要到jenkins中添加这些Slave。
Jenkins提供了Groovy脚本来实现一些配置和功能,比如需要修改执行器数量(默认为2),可以使用一些
import jenkins.model.* Jenkins.instance.setNumExecutors(5)
对于添加Slave的脚本就稍微复杂一些,需要用到import hudson.plugins.sshslaves.*
大概的脚本如下
List<Entry> env = new ArrayList<Entry>(); EnvironmentVariablesNodeProperty envPro = new EnvironmentVariablesNodeProperty(env); Slave slave = new DumbSlave( "java-7-node","", "/var/jenkins_home", "1", Node.Mode.NORMAL, "agent-node-label", new SSHLauncher("java-7-node",22,"jenkins","password","","","","",""), new RetentionStrategy.Always(), new LinkedList()) slave.getNodeProperties().add(envPro) Jenkins.instance.addNode(slave)
然后将这个脚本拷贝到init.groovy.d目录
FROM jenkins COPY slaves.groovy /usr/share/jenkins/ref/init.groovy.d/slaves.groovy
参考
https://hub.docker.com/_/jenkins/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2016/07/01/use-jenkins-grrovy-script-add-slave/