【发布时间】:2015-06-29 22:34:10
【问题描述】:
我不清楚但想了解 Chef 处理示例的方式,例如此处的示例:
https://docs.chef.io/resource_reboot.html
reboot 'Restart Computer' do
action :nothing
end
powershell_script 'Rename and Join Domain' do
code <<-EOH
...your rename and domain join logic here...
EOH
not_if <<-EOH
$ComputerSystem = gwmi win32_computersystem
($ComputerSystem.Name -like '#{node['some_attribute_that_has_the_new_name']}') -and
$ComputerSystem.partofdomain)
EOH
notifies :reboot_now, 'reboot[Restart Computer]', :immediately
end
?
我的意思是:如果我在分配给节点的运行列表中有一个像上面这样的配方,那么这个配方是否会被 Chef-client 一遍又一遍地“执行”,但是由于 not_if,它只会“重命名和域加入”部分一次,但即便如此,配方仍然会一遍又一遍地运行,永远?
另外,我希望可以同时问这个问题,如果我在运行列表中有多个配方(例如,在一个角色中),说配方是配方 A、B、C 和 D,比如说,配方 B 在配方结束时会导致重新启动,那么配方 C 和 D 会发生什么?
如果所有配方都有“守卫”,那么它们每次都会重新运行,如果 A 和 B 进行了他们应该做的更改,那么下一次,他们将跳过他们的处理,因为守卫,但随后将处理 C(然后是 D)(这都是假设节点上正在运行 Chef-client 服务)?
谢谢, 吉姆
【问题讨论】: