制作厨师食谱,我需要在安装之前格式化驱动器,我这样做:
execute "Format drive" do
command "mkfs.ext4 /dev/xvde1"
end
然后我用另一个命令将它挂载到/ var / log / 一切正常,但现在的问题是,当我第二次运行配方mkfs.ext4失败,因为驱动器已安装..它应该失败:)
我的问题是如何才能在节点上首次运行此mkfs.ext4命令而不是每次都在此之后运行?
或者我怎样才能强迫厨师在这个特定命令失败时不停止(虽然不是优雅的解决方案)
或者是否有另一个ruby命令用于专门格式化驱动器? (远射)
我找到的解决方法是在此文件的末尾添加format命令 /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.10.4/lib/chef/knife/bootstrap 我注意到只有在第一次创建服务器时才会运行 但我想以正确的方式做到这一点。
答案 0 :(得分:3)
您可以添加not_if
语句来检查并查看它是否已经安装,因此它不会再次尝试执行此操作。像这样:
execute "Format drive" do
command "mkfs.ext4 /dev/xvde1"
not_if "grep xvde1 /proc/mounts"
end
如果您希望仅在符合其他条件的情况下执行某些操作,则还会only_if
。