我有一个如下所示的数组:nodes=['server1','server1','server2']在厨师食谱中,我需要在传递给模板erb之前将其转换为集合。我该怎么做? 最佳答案 此模式适用于Set、Matrix、JSON等;这是尝试的第一件事。require'set'nodes=['server1','server1','server2']pnodes.to_set## 关于ruby-厨师和ruby:howtoconvertaarrayintoaset,我们在StackOverflow
我是厨师的初学者,慢慢地潜入其中。我对资源“软件包”的“源”属性有疑问。文档显示“源”属性使用本地文件系统存储的文件,而不是HTTP或FTP。我有一个“tomcattar”文件和“javarpm”软件包,要安装在节点上。就像资源“cookbook_file”如何在cookbooks目录中保存在“文件”目录中的文件一样:阿帕奇食谱的树结构在哪个本地文件系统上,资源“软件包”的“源”属性从中获取文件?它是否从相同的“文件”目录中获取文件?还是在其他任何文件夹中?我写了一本简单的食谱,假设“源”属性默认情况下会从“文件”dir中获取文件。但这没有解决:软件包“安装Java”DoSource'JDK-
在相关邮政我询问有关从厨师查询中创建逗号分开的主机列表。不过,问题在于我正在使用不使用ChefServer的Test-Kitchen,因此这就是为什么我的查询没有返回任何主机的原因。我的问题是,您如何测试依靠测试厨房中厨师查询的食谱?将数据预加载到文件或这些行中的内容不会暴露刀本身中的任何错误。是否有一个公共汽车可以让我对ChefServer进行查询?更新:下面是支持我从厨师查询中获得的奇怪结果的代码。食谱:#Createoutputconffileindexers=search("node","role:#{node['forwarder']['indexer_role']}")templa
我正在尝试将ChefServer12.15安装到RHEL7.3上,作为独立服务器,没有与Internet连接的独立服务器。通过RPM安装后,我将以下行添加到/etc/opscode/chef-server.rb:#cat/etc/opscode/chef-server.rbbootstrap['enable']=falseoc_chef_pedant['debug_org_creation']=true运行时chef-server-ctlreconfigure在新安装的厨师服务器之后。然后,我跑步chef-server-ctlreconfigure,并发生以下输出。从我的理解来看,主要错误似乎
我正在尝试建立厨房,并在这方面遇到困难。据我所知,YML看起来正确,但是在运行食谱时会不断错误。错误:loadErrorcannotloadsuchfile--chef/provisioning/aws_driverand[2017-07-04T15:09:11+00:00]ERROR:cannotloadsuchfile--chef/provisioning/aws_driver[2017-07-04T15:09:11+00:00]ERROR:cannotloadsuchfile--chef/provisioning/aws_driver我的YML是:driver:name:ec2aws_s
可以提供一些建议,以获取所有食谱中所有属性的最佳方法。例如,我有10本食谱(test1..test10)。食谱中的每个文件都有一些具有默认属性的文件(default.rb,test.rb,main.rb等)。是否有任何脚本(刀命令)可以接收一个文件中的所有属性(最好在JSON中)。提前致谢。看答案为此,厨师没有任何内置的东西,在那里也没有真正的意义。除非您对公司或团队进行特定的大量假设,否则输出将毫无意义。可能写一个本地的红宝石(或其他)脚本来完成您需要的事情。
我很困惑,我已经在互联网上阅读了很多,但我还是想不通。在这个设计中,可扩展性对我来说是一项重要的任务。我正在制作一个门户网站,人们可以在这里出售他们的食物,或者可以去这个门户网站购买食物。我正在考虑以下3个选项:制作3个表格。用户、客户、厨师。制作2个表格。用户,客户。制作2个表格。顾客。做饭我主要出于安全考虑创建了一个User表,因为我不希望secret数据驻留在Customer或Cook表中。问题是厨师也可以是顾客。我正在考虑方法1。如何建模。我是否使用递归方法。递归方法适用于Employee和Manager的想法(标准教科书示例),但在这里看起来很奇怪。在方法2中,我使用1个表,
我正在写一本处理私钥的食谱。如果出现任何问题,厨师会倾倒整个资源来记录以向最终用户显示发生了什么。但是,这也将打印私钥进行登录,这是不可接受的。有什么办法采用sensitive用于防止敏感数据记录的资源功能?看答案总是一个Google查询:从ChefClient12.14开始,可以将单个资源属性标记为敏感:True,在导出资源状态时会抑制该属性的价值。因此,要将自定义资源的特定属性标记为敏感,只需添加sensitive:true属性定义:resource_name:ssh_private_keydefault_action:createproperty:private_key,String,r
我需要从特定版本的数据袋中添加几个软件包。到目前为止,我有一个数据袋可与包装资源一起使用:{"id":"server_apps","apps":["vim","tmux","ntop"]}和食谱代码:server_apps=data_bag_item('linapps','server_apps')packageserver_apps['apps']但是我不确定JSON结构将在数据袋中安装包装的特定版本的结构如何-例如,单个软件包工作如下:package'vim'doversion'7.4.160-1.el7'end不知道如何在可重复的JSON哈希中指定这一点...关于如何使这项工作的任何想法
Microsoft网站中定义了两种方式来创建AzureVM。从C#创建使用厨师创建我想知道有什么区别,可以使用定义的过程可以实现灵活性,因为VM也可以从AzurePortal等厨师服务器(例如ChefServer)进行管理。我的情况是在安装IIS后在创建AzureVM并在其上部署应用程序软件包时提供完整的自动化。看答案在Azure中创建VM的10种方法(6个左右的SDK,PowerShell\cli\cli2\restrequestunepts\armtemplate\可能是其他东西)。如果厨师可以在Azure中创建VM,它将在内部使用这些方法之一。主要区别是您必须知道的一种方法之一。要自动化