将Chef配方转换为一系列Bash命令?

时间:2012-11-28 03:10:29

标签: bash chef

通常,人们希望将Bash脚本转换为Chef。但有时候(比如,现在)你需要做相反的事情。是否有自动方法来获取给定配置上给定Chef菜谱的命令列表?

我并不想尝试使用Chef cookbook的全部功能。我想最终得到一小组命令,在这个特定的环境中重现这个特定的安装。 (在这种情况下的原因是我需要分离出'sudo'命令并让它们由其他人运行。我确实在我可以运行Chef的机器上进行sudo访问以执行此任务。)

1 个答案:

答案 0 :(得分:4)

我怀疑你可以做到这一点,即使你可以,也可能比在Chef中实现你需要的东西更多的工作。

例如,甚至像创建配置文件这样简单的事情在Chef中实现为ruby代码;你需要想办法把它变成echo "…" > /etc/whatever.com。为所有资源执行此操作将是一项重大任务。

在我看来,你应该做的是修改你用来以不同的用户身份运行命令的任何Chef cookbook。

templatefile之类的内容非常简单:文件将以root身份创建,然后chown - 编辑给正确的用户。 execute资源(运行命令)可以配置为只需指定用户就可以使用su运行命令:

execute "something" do
  command "whoami"
  user "nobody"
end

你可能需要一段时间来弄明白,但是一旦掌握了它,它就很容易了;比转换为bash容易得多。