关于设置 Chef 推送作业的任何指示?

Any pointers on setting up Chef push jobs?

我关注了 Chef push jobs 页面,但仍然感到困惑。例如,该页面描述了这个

Add the following default attributes on all nodes that are managed by Chef push jobs:

"push_jobs": {
  "package_url": "<package_url>",
  "package_checksum": "<checksum>"
}

但是package_url和校验和是什么?我从哪里得到这些?

总的来说,是否有关于如何设置 Chef 推送作业的简单教程?

您可以在 Chef Push download page 上找到 URL 和校验和。选择平台后,您可以右键单击下载 link 并复制源代码。该页面还允许您从下载 link.

下方复制校验和

同意主要答复,但 Chef Push download page 的唯一问题是它提供默认情况下不起作用的 SHA1 签名。下载软件包后,我必须使用 sha256sum.exe 计算 SHA256 才能使其正常工作。

我只想补充已经给出的答案,感谢 Michael Lapidakis 和 kirill_I 因为他们的回答帮助我弄清楚如何 bootstrap a windows 服务器节点 使用 winrm.

安装 chef 客户端软件和推送作业客户端

我没有更新推送作业配方的属性文件,而是将 package_urlpackage_checksum 作为json 刀命令命令行上的属性。 kirill_I 是正确的,因为下载页面上给出的散列是 SHA1 而不是 SHA256,因此它不能用作校验和。在 windows 框上获取校验和的最简单方法是使用 powershell 命令 Get-FileHash 因为 sha256sum.exe 在没有互联网下载的情况下不可用。您必须 toLower() 输出,因为默认情况下 powershell 以大写形式给出输出,厨师将其视为两个不同的校验和:

COMPUTERNAME.DOMAIN [2015-10-27T09:25:59-07:00] FATAL: Chef::Exceptions::ChecksumMismatch: windows_package[Opscode 推送作业客户端安装程序Windows v1.1.5](push-jobs::windows 第 29 行)出现错误:Chef::Exceptions::ChecksumMismatch: remote_file[c:/chef/cache/opscode-push-jobs-client-windows-1.1.5-1.windows.msi](动态定义)出现错误:Chef::Exceptions::ChecksumMismatch:资源校验和 (411520) 与内容校验和不匹配 (411520)

要在 powershell 中获取哈希,请使用以下命令,将文件名和目录替换为您从 chef 下载的版本:

(Get-FileHash c:\Software\opscode-push-jobs-client-windows-1.1.5-1.windows.msi -Algorithm SHA256).Hash.toLower()

然后我将该散列插入到以下 knife bootstrap 命令中:

knife bootstrap windows winrm COMPUTERNAME.DOMAIN --winrm-user Administrator --winrm-password 'password' --node-name COMPUTERNAME.DOMAIN --run-list 'recipe[push-jobs]' -j '{ \"push_jobs\": { \"package_url\": \"https://opscode-private-chef.s3.amazonaws.com/windows/2008r2/x86_64/opscode-push-jobs-client-windows-1.1.5-1.windows.msi\", \"package_checksum\": \"411520e6a2e3038cd018ffacee0e76e37e7badd1aa84de03f5469c19e8d6c576\" } }'

必须对 json 进行转义,否则我会遇到 JSON 解析器错误。