假设您通过厨师工作站通过“knife bootstrap”引导了一个Ubuntu节点,指定了使用参数“--bootstrap-version”安装在节点上的厨师客户端版本“as”12.9.41“。厨师:在节点上的刀补助中升级厨师客户端版本
在你将得到一个对刀命令指定的自举操作节点的厨师客户端版本检查结束:
[[email protected] greg]# chef-client -v
Chef: 12.9.41
现在假设你想在升级厨师客户端版本你的节点。例如,因为运行列表上的新烹饪书需要更新的版本才能正常工作。
[[email protected] greg]# chef-client -v
Chef: 12.9.41
在刀引导命令:
如果你在最后的厨师,客户仍对节点在同一再次运行引导命令中指定,而不是“--bootstrap版24年12月10日”标准输出你也:
34.210.102.44 [sudo] password for greg: -----> Existing Chef installation detected
34.210.102.44 Starting the first Chef Client run...
34.210.102.44 Starting Chef Client, version 12.9.41
有没有办法告诉刀“力”版的“--bootstrap版”规定,即使是安装在节点上的另一个厨师客户端版本?
替代方法
我找到了另一种方式来做到这一点使用上的刀引导命令“--bootstrap安装命令”参数,指定去拆卸和安装bash命令手动目标版本:
--bootstrap-install-command "sudo apt-get remove chef -y && curl -LO https://omnitruck.chef.io/install.sh && sudo bash ./install.sh -v 12.10.24 && rm install.sh"
执行节点厨师客户端版本后是新的:
[[email protected] greg]# chef-client -v
Chef: 12.10.24
关于我的测试情况的一些细节:
[ChefServer]
ChefServer version: 12.3.1
chef-client version: 12.5.1
berks version: 4.0.1
[Workstation]
SO: Ubuntu 14.04
Workstation Knife version: 12.19.36
[Node]
SO: Ubuntu 14.04
当然。在我的情况下,我想覆盖厨师服务器上的现有节点。所以一般来说,如果引导程序是“覆盖”引导程序,或者由于某种原因,另一个chef-client版本已经存在于节点上,那么** - bootstrap-version **参数将不会生效。 我认为在任何情况下,引导操作都会强制目标节点上的主厨客户端版本。 正如您所建议的,我发现了一本食谱,可以使用特定版本(https://supermarket.chef.io/cookbooks/chef_client_updater)在节点上升级厨师。谢谢! – gregorycallea