所有。这似乎是其他人已经回答的问题,但是我找不到它,所以如果这是一个老问题就道歉。
我想在同一个模板上的一个主机上创建多个文件。这些是内部vs外部网络上IP的dnsmasq主机文件。一个文件需要内部IP地址,一个文件需要外部IP地址。
如果这没有意义,想象一下我想在每个用户的主目录中加上一个套用信。这封信可能会说"嗨<%= @ username%>"。
我不能做像
这样的事情$username = 'bob'
file { '/home/bob/HELLO':
content => template('hello/HELLO.erb')
}
$username = 'fred'
file { '/home/fred/HELLO':
content => template('hello/HELLO.erb')
}
我该怎么做?
谢谢!
答案 0 :(得分:2)
您的代码无效,因为您无法在傀儡中reassign variables。
使用define创建自己的参数化类型。 E.g:
define myfile ($username, $path)
{
file { $path:
content => template('hello/HELLO.erb')
}
}
接下来使用它:
myfile {'file1':
$username => 'bob',
$path => '/home/bob/HELLO',
}
myfile {'file2':
$username => 'fred',
$path => '/home/fred/HELLO',
}