我正在使用Windows Server 2012 R2上的Jenkins。 我想运行一个构建作业,强制推广后,它应该告诉远程chef服务器配方已更改或更新,然后在远程节点上启动chef-client。
我已安装了Chef Identity插件、 Promoted-builds插件、 MSbuild插件、 TFS-4.0.0插件和Deploy插件。
到目前为止,构建工作正常进行,晋升也能正常工作。 我已设置在强制晋升时运行两个PowerShell脚本。 第一个脚本很好用,只是进行基本数据管理和文件命名。
但第二个脚本说它失败了,但晋升仍然通过,并没有证据表明它起作用了。
我已明确使用Knife路径,因为如果不使用它,Jenkins会给出错误:
如果我添加了-V标志,并通过在Jenkins工作区中右键单击脚本并使用Powershell运行它,我会得到以下信息:
所以我发现Jenkins似乎在其自己的用户配置文件中运行,这可能会使一切变得混乱。
我已经阅读了很多设置博客,但没有一个真正告诉我如何明确设置。这些博客要么假设已经完成,要么使用不同的工具。
我还将 .chef 文件夹的副本放在了 Jenkins 工作区和“hopeful”用户配置文件空间中,希望它能起作用。
请问有人可以指导我吗?
我已安装了Chef Identity插件、 Promoted-builds插件、 MSbuild插件、 TFS-4.0.0插件和Deploy插件。
到目前为止,构建工作正常进行,晋升也能正常工作。 我已设置在强制晋升时运行两个PowerShell脚本。 第一个脚本很好用,只是进行基本数据管理和文件命名。
但第二个脚本说它失败了,但晋升仍然通过,并没有证据表明它起作用了。
我已明确使用Knife路径,因为如果不使用它,Jenkins会给出错误:
WARNING: No knife configuration file found
ERROR: Could not find cookbook MyFirstCookingLesson in your cookbook path, skipping it
ERROR: ArgumentError: Cannot sign the request without a client name, check that :node_name is assigned
如果我添加了-V标志,并通过在Jenkins工作区中右键单击脚本并使用Powershell运行它,我会得到以下信息:
ps1文件包含(我们称其为“Chef-client.ps1”):
C:\opscode\chefdk\bin\knife cookbook upload MyFirstCookingLesson
C:\opscode\chefdk\bin\knife job start 'chef-client' WIN-COMPNAME
使用“执行 Windows 批处理命令”调用 Chef-client.ps1:
cd C:\chef-source\cookbooks
PowerShell.exe -File C:\chef-source\cookbooks\Chef-client.ps1
我还在Jenkins凭据中设置了Chef身份,如下所示:
Identity name: geoff
user.pem key : <a whole bunch of secret stuffs and gibberish>
knife.rb :
log_level :info
log_location STDOUT
node_name 'geoff'
client_key 'C:/Users/user123/.chef/geoff.pem'
validation_client_name 'geoff.pem'
validation_key 'C:/Users/user123/.chef/secretName-validator.pem'
chef_server_url 'https://secretLocation.268lab.local/organizations/secretName/'
syntax_check_cache_path 'C:/Users/user123/.chef/syntax_check_cache'
cookbook_path [ 'c:/chef-source/cookbooks/' ]
http_proxy 'http://22.151.32.85:3128'
https_proxy 'http://22.151.32.85:3128'
no_proxy 'secretLocation.268lab.local'
knife[:editor] = '"C:\Program Files (x86)\Notepad++\notepad++.exe"';
所以我发现Jenkins似乎在其自己的用户配置文件中运行,这可能会使一切变得混乱。
我已经阅读了很多设置博客,但没有一个真正告诉我如何明确设置。这些博客要么假设已经完成,要么使用不同的工具。
我还将 .chef 文件夹的副本放在了 Jenkins 工作区和“hopeful”用户配置文件空间中,希望它能起作用。
请问有人可以指导我吗?