我同时使用了execute资源或bash资源。两者实现相同的结果:bash'Executemyscript'douser'root'cwd'/mydir'code我看到的唯一区别是bash实际上创建了一个shell脚本(名为/tmp/chef-script#{date}{#id}),其中code写好了。在execute或bash资源之间使用Chef执行shell脚本的最佳做法是什么? 最佳答案 对于单个脚本,使用execute。bash资源用于在配方代码中包含内联脚本内容。 关于ruby
我正在尝试在ChefRecipe中安装foggem,尽管gem安装发生在安装native包之前,因此gem安装失败package"libxslt-dev"package"libxml2-dev"chef_gem"fog"这是输出[Thu,14Mar201313:04:30+0000]INFO:Processingchef_gem[fog]actioninstall(ebs4000::update_volumesline23)[Thu,14Mar201313:04:52+0000]ERROR:Runningexceptionhandlers[Thu,14Mar201313:04:52+0
我有一个多节点Web服务的Chef配方,其中的每个节点都需要获取其他节点的主机名和IP,以将其放入自己的本地配置中。代码如下所示。问题在于,当node.set[][]分配在ruby_block中进行时(如图所示),当创建依赖于它们的模板时,这些值是空的。如果我想创建该模板,我必须将所有ruby_block代码移到外面,并将其“松散”在配方中。这使得使用Chefspec等进行单元测试变得更加困难。有哪位Chef大师能帮我弄清楚吗?在ruby_block中像这样做node.set[]是不可能的吗?如果是这样,为什么不在docs?中这样说呢?$cm={:name=>"web",:
是否有最新的rubyRecipe?我在opscodecookbook网站上找不到。即ruby1.9.3或1.9.2p280。 最佳答案 我只是finishedupdatingCarloZottman的ruby1.9.xcookbook(在写拉取请求之前吃午饭时注意到这个问题,哈哈...)唯一的依赖项是来自opscodecookbook站点的标准build-essential和aptcookbook。至于关于何时可能需要像这样的Recipe的讨论,我使用它在我的12.04.01vagrantboxes上从ruby1.8升级到r
因为我遇到了这个MIXLIB-11我已向Mixlib团队报告的错误,我需要找到一个解决方法,一个Mixlib::Shellout的替代方法。简单说一下问题:Here是这样的声明:“*毫不奇怪——读取发生在编译时,但remote_file资源实际上是在执行时创建。**”由于此功能,Mixlib::Shellout.new("ls",:cwd=>'/opt/cubrid/share/webmanager')引发“没有这样的文件或directory”错误,即使该目录是由当前配方中包含的先前配方在执行时创建的。有没有办法在执行时读取文件/目录? 最佳答案