我有一本厨师食谱。其中一个目标是从.erb
模板生成配置文件。这是作为配方中的一个目标完成的,模板输入映射是从node
树填充的。
template node['bbcpd-bpds-api']['api_config_path'] do
source "opt/bpds-api/conf/api/bpds-api.yml.erb"
mode 0644
owner node['bbcpd-bpds-api']['user']
group node['bbcpd-bpds-api']['group']
variables(
:application_protocol => node['bbcpd-bpds-api']['application_protocol'],
:application_port => node['bbcpd-bpds-api']['application_port'],
...
我想生成此模板本地(即带有cookbook源的dir),而不需要准备虚拟机的所有其他操作。
基本上,我希望解析/attributes
中的文件并准备node
树,然后只运行ERB模板引擎,而不调用kitchen converge
。或者理想情况下,完全kitchen
。首选目标环境是Java / JRuby / Maven。
这可能吗?或者,我最好将配方与上面的模板目标分开,并仅使用该配方调用kitchen converge
?怎么做?
请参阅Kitchen commands docs
我只能看kitchen converge PLATFORM
作为选项 - 我可以添加套件。但我不知道那是什么。
还有run_lists
。但我没有看到什么形式的运行列表条目运行的解释。
答案 0 :(得分:0)
这是不可能的。 Chef仅在聚合节点的情况下运行。您可以编写自己的代码生成器,但在大多数情况下它与Chef无关(尽管您可以通过陪审架chef-apply
来帮助,也许?)。