强制执行厨师食谱中的执行顺序

时间:2012-06-30 22:29:10

标签: chef

我有两个食谱:

  1. 使用我的.bashrc之类的东西配置我的主目录,几乎在我使用的每台机器上运行
  2. 安装包含我的主目录的EBS卷。这只能由一个EC2实例一次使用,但让我可以轻松迁移到新实例
  3. 如果这个EC2实例首次启动时,我需要在配方#1之前执行配方#2或者尚未安装卷。如何确保明确强制执行此执行顺序?

2 个答案:

答案 0 :(得分:14)

Chef 始终按照您指定的顺序执行配方。它不会随意重新排序。因此,如果您希望在另一个配方之前运行一个配方,只需按顺序加载它们(例如在run_list中)

为了进一步强制执行此操作(以牺牲配方之间的额外耦合为代价),您还可以在第二个配方的开头使用include_recipe来加载第一个配方。

答案 1 :(得分:-3)

如果您希望在登录时完成这两项操作(而不是启动时间)......

......如果你需要按特定顺序完成......

...那么你应该简单地编写一个调用两者的脚本。按照正确的顺序。

... IMHO