我有两个食谱:
- 用我的 .bashrc 之类的东西配置我的主目录,在我使用的几乎每台机器上运行
- 挂载一个包含我的主目录的 EBS 卷。这一次只能由一个 EC2 实例使用,但让我可以轻松迁移到新实例
对于此 EC2 实例,当它首次启动时,我需要在配方 #1 之前执行配方 #2,否则该卷将不会被挂载。如何确保明确强制执行此执行顺序?
我有两个食谱:
对于此 EC2 实例,当它首次启动时,我需要在配方 #1 之前执行配方 #2,否则该卷将不会被挂载。如何确保明确强制执行此执行顺序?
Chef始终按照您指定的顺序执行食谱。它不会随意对事物进行重新排序。因此,如果您希望一个配方在另一个配方之前运行,只需按该顺序加载它们(例如在run_list
)
为了进一步加强这一点(以您的配方之间的额外耦合为代价),您还可以include_recipe
在第二个配方的开头使用来加载第一个。
如果您希望在登录时(而不是启动时)完成这两个操作...
...如果您需要按特定顺序完成它们...
...那么你应该简单地编写一个调用它们的脚本。以正确的顺序。
恕我直言...