一个主机上的多个相似文件来自 puppet 中的一个模板
multiple similar files on one host from one template in puppet
全部。这似乎是其他人已经回答过的问题,但我找不到,如果这是一个老问题,请见谅。
我想用同一个模板在一台主机上制作多个文件。这些是内部网络和外部网络上 IP 的 dnsmasq 主机文件。一个文件需要内部 IP 地址,一个文件需要外部 IP 地址。
如果这没有意义,假设我想在每个用户的主目录中放置一个套用信函。这封信可能会说 "Hi <%= @username %>".
我做不到
$username = 'bob'
file { '/home/bob/HELLO':
content => template('hello/HELLO.erb')
}
$username = 'fred'
file { '/home/fred/HELLO':
content => template('hello/HELLO.erb')
}
我该怎么做?
谢谢!
你的代码将无法工作,因为你不能在 puppet 中 reassign variables。
使用define创建您自己的参数化类型。
例如:
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',
}
全部。这似乎是其他人已经回答过的问题,但我找不到,如果这是一个老问题,请见谅。
我想用同一个模板在一台主机上制作多个文件。这些是内部网络和外部网络上 IP 的 dnsmasq 主机文件。一个文件需要内部 IP 地址,一个文件需要外部 IP 地址。
如果这没有意义,假设我想在每个用户的主目录中放置一个套用信函。这封信可能会说 "Hi <%= @username %>".
我做不到
$username = 'bob'
file { '/home/bob/HELLO':
content => template('hello/HELLO.erb')
}
$username = 'fred'
file { '/home/fred/HELLO':
content => template('hello/HELLO.erb')
}
我该怎么做?
谢谢!
你的代码将无法工作,因为你不能在 puppet 中 reassign variables。
使用define创建您自己的参数化类型。 例如:
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',
}