我正在尝试在Jenkins工作期间重置并启动Windows VM(在vsphere中)。我成功安装了vSphere Cloud Plugin
。我跟着instructions将Windows机器设置为jenkins-mvn-slave,并将其设置为作为服务运行。
如果我点击Jenkins中Launch Slave Agent
的按钮,我可以看到(在vsphere中)VM执行revert snapshot
,然后它执行power on virtual machine
。如果我连接到机器,我可以看到Jenkins服务自动启动。但是,回到詹金斯,它告诉我Slave did not come online in allowed time
。
我的奴隶的一些关键设置:
Force VM launch: Checked
Wait for VMTools: Not checked
Delay between launch and boot complete: 120
Secondary launch method: Launch slave agents view Java Web Start
版本:
Jenkins: 1.596.2
vSphere: 5.5.0
Windows: Server 2012 R2 Standard, Build 9600
vSphere plugin: 2.7
我错过了什么?
答案 0 :(得分:1)
自从我发布以来,我做了很多搞乱,但我认为以下是我做错了。我首先让VM作为普通的奴隶代理工作。一旦我有了工作,那么我尝试设置与vsphere-cloud-slave-agent相同。我没有意识到将主机设置为奴隶代理是特定于代理商名称"。
所以,我卸载了Jenkins服务,启动了" vsphere云奴隶代理",登录到机器,然后运行javaws(如前面提到的instructions中所述。
我遇到的其他一些问题(与初始帖子无关,但可能与阅读此内容的人有关):
我最初使用密码管理器安装了git。不幸的是,由于jenkins的工作不是交互式的,所以它挂在git clone
命令上。我尝试卸载并重新安装git,但它并没有解决jenkins slave运行的任何用户的问题。我最终不得不恢复到以前的奴隶图像并从那里安装git。 (我可能也想知道用户在运行jenkins slave,并在那里输入了所需的密码。)
我想为每个作业运行一个干净的VM。我从来没有想过这个。如果我将Availability
设置为Take this slave on-line when in demand and off-line when idle
,这是一个好的开始。但是,如果我将时间设置为0和0,那么机器会不断重启。如果我将时间设置为1和1,那么除非有排队等待运行的背对背作业,否则机器会完全按照我的要求进行操作。