繁体   English   中英

使用p和工头生成配置文件

[英]Generating configuration files using puppet and foreman

我试图将参数从工头推送到我的人偶类以生成配置文件。

每个文件应如下所示:

file1
DB_USERNAME=toto
DUMP_TYPE=full
[...]

file2
DB_USERNAME=toto
DUMP_TYPE=full
[...]

我在Foreman中定义了一个参数,该参数是一个哈希数组

bacula_client dumpCfg  [{"techno"=>"oracle", "DB_USERNAME"=>"toto", "DUMP_TYPE"=>"full", ...},
{"techno"=>"mysql", "DB_USERNAME"=>"toto", "DUMP_TYPE"=>"full",    ...}]

我想知道是否有可能做类似的事情来生成例如2个不同的配置文件,因为在调用dumpdb时出现“资源标题必须是字符串”

class bacula_client (

$isDirector    = false,
$backupCrons   = [],
$isHostConcentrator = false,
$dumpCfg = [],

define bacula_client::dumpdb () {

    $techno     = $name['techno']
    $dbusername       = $name['DB_USERNAME']
    $dumptype        = $name['DUMP_TYPE']

    # call a function that generates the files
  } 
 [.....]
}#myclass

bacula_client::dumpdb{$dumpCfg:} 

先感谢您,

错误消息说明了一切。 您正在使用哈希命名资源。 应该是字符串。

尝试这种方式:

define bacula_client::dumpdb ($dumpCfg) {

    $techno     = $dumpCfg['techno']
    $dbusername       = $dumpCfg['DB_USERNAME']
    $dumptype        = $dumpCfg['DUMP_TYPE']

    # call a function that generates the files
  } 


bacula_client::dumpdb{'file1': dumpCfg => $dumpCfg[0] }
bacula_client::dumpdb{'file2': dumpCfg => $dumpCfg[1] }

注意“ file1”和“ file2”。 这些是资源名称,必须是字符串,并且必须是唯一的。 数据作为参数传递。

不知道您的数组/哈希用法是否有效。 没有测试,我也不经常通过这种方式传递数据。

帮自己一个忙,将定义放在自己的文件中,而不是放在课堂中间。 以后会省掉您的头痛(就像我试图用过去两年积累的各种乐趣来尝试400多个线课程的那种)。

编辑:语法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM