草庐IT

chef_environment

全部标签

ruby - Chef : Can I share common per-environment run list items?

我在Chef中使用环境,我想使用每个环境的运行列表。问题是我不想重复自己(就像我现在做的那样)。示例:{"name":"myapp","default_attributes":{},"json_class":"Chef::Role","env_run_lists":{"production":[#Haslesspackagesbecauseservicesarespreadacrossspecializednodes"role[base]","recipe[mysql::client]","recipe[myapp]"],"staging":[#Haslesspackagesbecau

ruby - Chef 传递修订变量以部署资源

我正在尝试将要部署的git分支传递给Chef部署资源,但它不起作用,我猜这是因为资源是单独编译然后才执行的?但我对Ruby的理解可能是有限的。所以我正在尝试这样做:ruby_block'revision'doblockdo#Somecodedeterminesthebranchtobedeployedbranch='master'node.run_state['branch']=branchendenddeploy"#{node['path']['web']}"doaction:deployrepository"#{node['git']['repository']}"revision

ruby - Chef 没有运行 apt (apt-get update) 配方。返回 100

在vagrant、macosx10.7.2上运行Ubuntu11.04。运行Chef服务器。尝试安装postgresql社区ChefRecipe时,我收到以下错误,即使我的基本角色看起来像这样(我添加了aptRecipe以尝试更新apt-get):name"base"description"Thebaseroleforsystems"run_list("recipe[apt]","recipe[vim]")尝试运行Chef:$vagrantreloaddb1dev[db1dev]Attemptinggracefulshutdownoflinux...[db1dev]Preparingh

ruby - 在 Chef 的提供者的 default.rb 中使用 File::read

我正在尝试创建一个LWRP,它将调用在其自身中定义的资源。我的Recipe结构如下:在机器Recipe的提供者中,我有如下代码片段:require'chef/provisioning'#driverforcreatingmachinesrequire'::File'defget_environment_json@@environment_template=JSON.parse(File::read(new_resource.template_path+"environment.json"))return@@environment_templateend代码只是试图读取一个json文件,

ruby - Chef - 执行 vs bash 资源

我同时使用了execute资源或bash资源。两者实现相同的结果:bash'Executemyscript'douser'root'cwd'/mydir'code我看到的唯一区别是bash实际上创建了一个shell脚本(名为/tmp/chef-script#{date}{#id}),其中code写好了。在execute或bash资源之间使用Chef执行shell脚本的最佳做法是什么? 最佳答案 对于单个脚本,使用execute。bash资源用于在配方代码中包含内联脚本内容。 关于ruby

ruby - 在 Chef 执行期间在 native 扩展包之后安装 gem

我正在尝试在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

ruby - Chef Recipes - 在 ruby​​_block 中设置节点属性

我有一个多节点Web服务的Chef配方,其中的每个节点都需要获取其他节点的主机名和IP,以将其放入自己的本地配置中。代码如下所示。问题在于,当node.set[][]分配在ruby​​_block中进行时(如图所示),当创建依赖于它们的模板时,这些值是空的。如果我想创建该模板,我必须将所有ruby​​_block代码移到外面,并将其“松散”在配方中。这使得使用Chefspec等进行单元测试变得更加困难。有哪位Chef大师能帮我弄清楚吗?在ruby​​_block中像这样做node.set[]是不可能的吗?如果是这样,为什么不在docs?中这样说呢?$cm={:name=>"web",:

ruby-on-rails - 最新的 ruby Chef Recipe

是否有最新的ruby​​Recipe?我在opscodecookbook网站上找不到。即ruby1.9.3或1.9.2p280。 最佳答案 我只是finishedupdatingCarloZottman的ruby1.9.xcookbook(在写拉取请求之前吃午饭时注意到这个问题,哈哈...)唯一的依赖项是来自opscodecookbook站点的标准build-essential和aptcookbook。至于关于何时可能需要像这样的Recipe的讨论,我使用它在我的12.04.01vagrantboxes上从ruby​​1.8升级到r

ruby - 如何在执行时读取文件内容? Chef 在编译时读取

因为我遇到了这个MIXLIB-11我已向Mixlib团队报告的错误,我需要找到一个解决方法,一个Mixlib::Shellout的替代方法。简单说一下问题:Here是这样的声明:“*毫不奇怪——读取发生在编译时,但remote_file资源实际上是在执行时创建。**”由于此功能,Mixlib::Shellout.new("ls",:cwd=>'/opt/cubrid/share/webmanager')引发“没有这样的文件或directory”错误,即使该目录是由当前配方中包含的先前配方在执行时创建的。有没有办法在执行时读取文件/目录? 最佳答案

java - 错误 : Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'?

这个问题在这里已经有了答案:JavaErroropeningregistrykey(16个答案)关闭7年前。当我运行时:C:\Users\ashahria\Downloads>java-jarschemaSpy_5.0.0.jar我收到以下错误。怎么了?我该如何解决?Error:Registrykey'Software\JavaSoft\JavaRuntimeEnvironment'\CurrentVersion'hasvalue'1.5',but'1.7'isrequired.Error:couldnotfindjava.dllError:CouldnotfindJavaSERunt