我正在努力使我们的puppet基础结构更加dynamic,我可以添加任意数量的节点,这些节点将自动应用到另一个节点configuration中。
一个示例:我有X个运行Java应用程序的主机,这些主机由我们的javaapp模块定义,其中定义如下(简化):
define javaapp::site ( $site_name, $site_port ) { # Doing some stuff regarding deployment, service management etc here }
这些在site.pp文件中定义如下:
javaapp::site { 'app01': play_site_name => 'app01', play_site_port => 9100, }
我们在这些应用程序服务器前面有一个nginx反向代理,我需要将请求转发到一系列服务器。 目前我的nginx模板如下所示:
upstream app-hosts { server <%= @host_app_01 %>:9100; server <%= @host_app_02 %>:9100; }
其中@ host_app_01和@ host_app_02已经在site.pp文件中全局定义
我想要做的是收集一个特定的javaapp网站名称的节点数组,并在nginx模板中使用它。 像这样的伪代码:
upstream app-hosts { <% @host_app.each do |host| %> server <%= @host.ip %>:<%= @host.appPort %>; <% end %> }
我已经读了一些关于出口资源,但我不明白这是否是正确的事情?
甚至可以用傀儡呢?
我们正在运行木偶版本3.7.5。
是的,出口资源是一个非常充分的devise模式。 但是,模板不能直接使用当前目录中的资源(导入或以其他方式)。
你最好的电话将是一个concat模块。 让您定义的types为您的应用程序导出concat片段。 而不是使用模板作为其content的file ,请使用concat资源。