Puppet:为所有用户添加文件?
Puppet: add file for all users?
如果我想使用 Puppet 将文件添加到特定目录,我可以使用:
file { "/folder/file_name":
ensure => present,
source => [puppet///file_name],
}
有没有办法可以将文件添加到每个用户的主目录?
类似于:
file { "/home/$USER/filename":
ensure => present,
source => [puppet///filename],
}
只要这是 *nix,您就可以将自定义事实添加到 assemble 系统上的主目录。我建议在模块的 lib/facter/
目录中创建它时将其命名为 homedirs.rb
。
# collect home directories
Facter.add(:homedirs) do
setcode do
# grab home directories on system and convert into array
`ls /home`.split("\n")
end
end
如果你想为所有非Windows添加一个:
unless Facter.value(:kernel) == 'Windows'
围绕代码块,或者将其保持在 Linux 中:
confine kernel: linux
在 setcode
之上。
然后,您可以使用 lambda 遍历此事实数组并应用文件资源。
# iterate through homedirs in fact array
$facts['homedirs'].each |$homedir| {
# copy file to home directory
file { "/home/$homedir/filename":
ensure => file,
source => puppet:///filename,
}
}
我还解决了您的 file
资源的一些问题。
一些有用的文档链接,以防出现任何混淆:
https://docs.puppet.com/puppet/latest/type.html#file
https://docs.puppet.com/facter/3.6/custom_facts.html#adding-custom-facts-to-facter
https://docs.puppet.com/puppet/4.9/function.html#each
如果我想使用 Puppet 将文件添加到特定目录,我可以使用:
file { "/folder/file_name":
ensure => present,
source => [puppet///file_name],
}
有没有办法可以将文件添加到每个用户的主目录?
类似于:
file { "/home/$USER/filename":
ensure => present,
source => [puppet///filename],
}
只要这是 *nix,您就可以将自定义事实添加到 assemble 系统上的主目录。我建议在模块的 lib/facter/
目录中创建它时将其命名为 homedirs.rb
。
# collect home directories
Facter.add(:homedirs) do
setcode do
# grab home directories on system and convert into array
`ls /home`.split("\n")
end
end
如果你想为所有非Windows添加一个:
unless Facter.value(:kernel) == 'Windows'
围绕代码块,或者将其保持在 Linux 中:
confine kernel: linux
在 setcode
之上。
然后,您可以使用 lambda 遍历此事实数组并应用文件资源。
# iterate through homedirs in fact array
$facts['homedirs'].each |$homedir| {
# copy file to home directory
file { "/home/$homedir/filename":
ensure => file,
source => puppet:///filename,
}
}
我还解决了您的 file
资源的一些问题。
一些有用的文档链接,以防出现任何混淆:
https://docs.puppet.com/puppet/latest/type.html#file https://docs.puppet.com/facter/3.6/custom_facts.html#adding-custom-facts-to-facter https://docs.puppet.com/puppet/4.9/function.html#each