Chef:如何在创建两个文件后重新启动服务?

时间:2013-09-20 16:57:54

标签: file service resources notifications chef

我想安装已知的ssh主机密钥,然后重新启动openssh服务。对于一个文件,它很简单:

file 'new_file' do
  owner 'owner'
  mode 00600
  content 'my content'
  notifies :restart, 'service[openssh]', :immediately
end

但是我想在移动两个文件之后这样做。

我可以:

  1. 按顺序创建文件;在第二个上下文中重启openssh。
  2. 将两个文件移动包含在 ruby​​_block 资源中,该资源将自己的通知发送给openssh。
  3. 我不是100%肯定#2会以我想要的方式工作,#1也不会“感觉”正确。我保证第一个文件创建会在第二个文件之前发生吗?

    所以我的问题是:使用Chef,创建两个新文件后重启ssh的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

如果您重新启动这两个文件并且不使用:immediately,则Chef会将两次重新启动排队,并在客户端运行的最后阶段执行一次重新启动。除非您有其他想法,否则在重新启动ssh守护程序时可能没有必要使用:immediately

此外,Chef保证资源将按照它们在食谱中出现的顺序进行处理,因此第一个文件将始终在第二个文件之前创建。