我们想为我的公司提供自动安装程序。这样开发人员就不必使用很长的安装指南来设置他们的工作台。 我们设法提供90%。
上周我们收到了一封电子邮件,我们应该在安装过程中配置Jenkins。 配置代理设置的第一部分是通过一个groovy脚本。
Groovy文件:
pc = new hudson.ProxyConfiguration(name, port, userName, password, noProxyHost);
jenkins.model.Jenkins.instance.proxy = pc;
println "Jenkins-Proxy settings updated!
命令行
type set setJenkinsProxy.groovy | java -jar jenkins-cli.jar -s
http://localhost:8080/jenkins groovy =
下一部分是设置已安装的JDK。 首先想到的是使用groovy脚本来设置JDK。
Groovy文件:
jdk = new hudson.model.JDK(name, home, list);
jdklist = []
jdklist.add(jdk)
jenkins.model.Jenkins.instance.JDKs = jdk;
println "JDK settings updated!
即使有一个可运行的.jar文件,它也会使用jenkins-cli.jar,但它不起作用。
JDK.jar
public static void main(String[] args) {
JDK jdk = new JDK(args[0], args[1]);
List<JDK> jdklist = new ArrayList<JDK>();
jdklist.add(jdk);
jenkins.model.Jenkins.jdks = jdklist;
System.out.println("Jenkins JDK set!");
}
有没有正确的方法来设置此环境?我真的很感激任何帮助。
编辑: 想设置Jenkins位置以及电子邮件通知。
答案 0 :(得分:2)
我在尝试与Jenkins一起工作时遇到了同样的问题&#39; init.groovy.d
个脚本。我能够使用以下脚本自动安装JDK:
import jenkins.model.*
import hudson.model.*
import hudson.tools.*
def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("hudson.model.JDK")
def versions = [
"jdk8": "jdk-8u102-oth-JPR"
]
def installations = [];
for (v in versions) {
def installer = new JDKInstaller(v.value, true)
def installerProps = new InstallSourceProperty([installer])
def installation = new JDK(v.key, "", [installerProps])
installations.push(installation)
}
desc.setInstallations(installations.toArray(new JDK[0]))
desc.save()
// Required: enter credentials at http://l:8080/descriptorByName/hudson.tools.JDKInstaller/enterCredential
答案 1 :(得分:1)
这里是设置jdk(通过命令行执行groovy脚本)的示例
name = "Java";
home = "C:\\Program Files\\Java\\jdk1.7.0_40";
list = null;
dis = new hudson.model.JDK.DescriptorImpl();
dis.setInstallations( new hudson.model.JDK(name, home));
println "JDK settings updated!"
答案 2 :(得分:1)
@ jason-miller谢谢你。但是我发现我需要添加inst.save()
或者安装没有保存到config.xml(因此不是永久性的)。
我的应用程序略有不同。我想指出/ usr / java中现有的JDK安装,所以我修改了你的代码如下:
#!groovy
// On GUI, this is on Configure Tools page, "JDK" section
// In config.xml, this is under <jdks>
import jenkins.model.*
import hudson.model.*
import groovy.io.FileType
def jdkDir = "/usr/java"
def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("hudson.model.JDK")
def dirs = []
def currentDir = new File(jdkDir)
currentDir.eachFile FileType.DIRECTORIES, {
dirs << it.name
}
def installations = []
for (dir in dirs) {
def installation = new JDK(dir, jdkDir + "/" + dir)
installations.push(installation)
}
desc.setInstallations(installations.toArray(new JDK[0]))
desc.save()
inst.save()
答案 3 :(得分:0)
我终于在安装后找到了在Jenkins中设置LocationConfiguration的东西。 因此,如果有人需要它,这是使用jenkins-cli.jar
的groovy脚本可执行文件liste = new File('filename to read from').readLines()
jlc = new jenkins.model.JenkinsLocationConfiguration();
println jlc.getUrl()
println jlc.getAdminAddress()
jlc.setUrl("http://" + liste[0] + ":8080/jenkins/");
jlc.setAdminAddress(liste[1]);
println ("Set url to: http://" + liste[0] + ":8080/jenkins/")
println ("Set AdminAddress to: " + liste[1])
println "JenkinsLocation updated!"