通常,人们希望将Bash脚本转换为Chef。但有时候(比如,现在)你需要做相反的事情。是否有自动方法来获取给定配置上给定Chef菜谱的命令列表?
我并不想尝试使用Chef cookbook的全部功能。我想最终得到一小组命令,在这个特定的环境中重现这个特定的安装。 (在这种情况下的原因是我需要分离出'sudo'命令并让它们由其他人运行。我确实在我可以运行Chef的机器上进行sudo访问以执行此任务。)
答案 0 :(得分:4)
我怀疑你可以做到这一点,即使你可以,也可能比在Chef中实现你需要的东西更多的工作。
例如,甚至像创建配置文件这样简单的事情在Chef中实现为ruby代码;你需要想办法把它变成echo "…" > /etc/whatever.com
。为所有资源执行此操作将是一项重大任务。
在我看来,你应该做的是修改你用来以不同的用户身份运行命令的任何Chef cookbook。
template
和file
之类的内容非常简单:文件将以root身份创建,然后chown
- 编辑给正确的用户。 execute
资源(运行命令)可以配置为只需指定用户就可以使用su
运行命令:
execute "something" do
command "whoami"
user "nobody"
end
你可能需要一段时间来弄明白,但是一旦掌握了它,它就很容易了;比转换为bash容易得多。