Puppet: substitua o parâmetro no nome do fato

2

Aqui está um fato personalizado:

require 'etc'

Etc.passwd do |user|
    Facter.add("homedir_#{user.name}".intern) do
        setcode { user.dir }
    end
end

Ele determina os locais do diretório inicial dos usuários.

Aqui está o tipo definido:

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",
        }
    }

}

Ele não funciona com $::homedir_#{user} , mas funciona com o fato exatamente definido: $::homedir_root . O que está errado aqui?

    
por Selivanov Pavel 31.03.2014 / 10:15

1 resposta

1

Aqui está a solução:

$mule = "ipaddress_${name}"
$donkey = inline_template("<%= scope.lookupvar(mule) %>")
    
por 31.03.2014 / 14:16

Tags