问题标签 [chef-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chef-infra - 结合来自两个厨师食谱的两个模板
我有一本用于安装基础产品 (Mediaflux) 的食谱,以及第二本针对特定专业用例 (DaRIS) 量身定制的食谱。运行第一本食谱的食谱以进行“基本安装”,而运行第二本食谱的食谱以“定制”安装。
有一次,我有一个由基本食谱/食谱创建的文件,需要在第二个食谱/食谱中添加额外的东西。在这两种情况下,此文件都需要模板扩展。
我正在尝试找出实现这一点的好方法。
最简单的想法是在两个食谱中都有一个模板副本,并让两个食谱扩展它们的版本模板,并依靠第二个食谱覆盖第一个食谱创建的文件。
这不是 DRY,因为我有两个模板副本。
我不确定这是“犹太洁食”……有一个模板扩展破坏另一个。
一种变体是尝试只有一个模板扩展(在基本配方中)并参数化食谱名称......以便将第二个配方添加到运行列表导致第一个配方使用不同版本的模板。
这也不是 DRY。
存在基本配方不知道模板的定制配方扩展参数的问题。(也许模板可以直接从节点属性中获取...)
理想情况下,我希望能够执行以下操作之一:
创建一个在展开时组合两个 (DRY) 模板的模板。
以将第二个(剪裁)模板附加到第一个配方创建的文件的方式展开第二个(定制)模板。
获取“模板”资源,一次操作将两个模板展开为一个文件。
有什么办法可以做这些事情吗?
还有另一种我错过的方法吗?
ruby - Chef Ruby 循环遍历 .erb 模板文件中的属性
所以这可能有点令人困惑,但请耐心等待。简而言之,我想遍历具有某个键值的所有属性,然后如果值不为空,则将它们插入到模板中。这是我的代码:
属性:
模板:
输出(希望):
我的 ruby 不是最好的,因为我刚刚开始使用所有这些东西,但我找不到这种情况的任何例子。任何帮助都会很棒,谢谢。
chef-infra - Chef::Mixin::Template::TemplateError(无法将 Symbol 转换为 Integer)
我正在尝试使用从属性文件到 comapany_name.properties.erb 文件的以下设置属性值。
但是这些值没有传递。
webapp/attributes/default.rb 文件
webapp/templates/default/company_name.properties.erb 文件
执行chef-client,看到如下错误:
chef-infra - 是否可以将部分模板附加到现有文件?[厨师食谱]
我正在寻找将配置添加到从 tar 文件中提取的 conf 文件中。
目前食谱正在使用模板来覆盖整个文件,而不是我需要使用原始文件作为模板并添加到它。
部分模板似乎可以完成任务,但我无法找到将部分模板应用于现有文件的示例,
有可能吗?
谢谢你
chef-infra - 如何在模板资源上使用“not_if”条件
我正在尝试在 docs.chef.io 展示的模板资源中使用“not_if”条件
我是厨师新手,我不确定如何继续创建有效执行以下操作的东西:
我想使用 not_if 条件,但我不知道如何检查'instance' == nil。
我将不胜感激任何帮助。谢谢,
apache-zookeeper - 如何编写模板以在 zoo.cfg 中自动写入“server.x=hostname:Quorom_Port:Election_Port”
我希望使用基于属性/default.rb 文件中声明的主机数的模板将“server.x=hostname:Quorom_Port:Election_Port”值写入zoo.cfg
对于上述属性,应使用模板将以下值自动写入 zoo.cfg 文件:
请让我知道该怎么做?
ruby - Chef 如何将运行时生成的文件包含为模板源
使用 Chef 配方,我首先.erb
根据 CSV 文件的输入动态生成一个文件,然后我想将该.erb
文件用作模板源。.erb
但不幸的是,在配方聚合资源时,没有考虑(在文件中)所做的更改。我还尝试使用惰性评估,但无法弄清楚如何将其用于模板源。
chef-infra - Chef - 在模板中重复文本块 x 次
有没有办法在模板中重复相同的文本块 X 次?例如,我需要生成带有主机名和文本块的模板。
chef-infra - 带有 Logstash Grok 模式问题的 Chef ERB 模板
我有一个logstash 配置文件,我需要将其转换为chef erb 模板(主要是过滤器部分)。但是,由于 grok 模式的格式,我一直遇到问题。下面是 grok 模式的示例。
这是问题所在。此后不久,我需要在 IP 地址等中进行一些插值填充。但它不会,因为它会<%
启动它自己的插值。
所以上面所有的值都被处理为<%= @sentry_... %>
.
有没有办法解决这个问题?我已经尝试过在这里<%%{POSINT:seqnum1}>%{POSINT:seqnum2}:%>
看到的逃生方法。但它仍然会关闭。还有其他方法可以在 ERB 中转义字符/字符串吗?%>
谢谢!乔什
chef-infra - 如何将 if 语句放在厨师模板文件的循环中?
如果没有 if 语句,这很好用,但不确定使用 if 的最佳方法是什么?