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

时间:2015-01-27 21:15:12

标签: chef

我按了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和checksum?我从哪里得到那些?

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我只想补充已经给出的答案,感谢Michael Lapidakis和kirill_I,因为他们的答案帮助我弄清楚如何引导 Windows服务器节点来拥有厨师客户端软件和推送 - 使用 winrm 安装作业客户端。

我没有更新push-jobs配方的属性文件,而是在knife命令的命令行中将 package_url package_checksum 作为json属性传递。 kirill_I是正确的,因为下载页面上给出的哈希值是SHA1而不是SHA256,所以它不能用作校验和。在Windows框上获取校验和的最简单方法是使用powershell命令 Get-FileHash ,因为没有互联网下载,sha256sum.exe不可用。你必须toLower()输出,因为默认情况下powershell以大写形式给出它,而厨师认为它是两个不同的校验和:

COMPUTERNAME.DOMAIN [2015-10-27T09:25:59-07:00]致命:Chef :: Exceptions :: ChecksumMismatch:windows_package [Opscode Push Jobs Client Installer for Windows v1.1.5](推送 - jobs :: windows line 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 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解析器错误。

答案 2 :(得分:1)

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