我按了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推送作业的简单教程?
答案 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以使其正常工作。