这是自定义事实:
require 'etc' Etc.passwd do |user| Facter.add("homedir_#{user.name}".intern) do setcode { user.dir } end end
它确定用户的主目录位置。
这里是定义types:
define ssh_keys::key ($user) { $home = $::homedir_#{user} if $home != undef { file { "$home/.ssh/": ensure => directory, } file { "$home/.ssh/authorized_keys": ensure => file, source => "puppet:///modules/ssh_keys/$user", } } }
它不能和$::homedir_#{user} ,但是可以使用$::homedir_root 。 这里有什么问题?
这里是解决scheme:
$mule = "ipaddress_${name}" $donkey = inline_template("<%= scope.lookupvar(mule) %>")