Вызов функции puppet внутри ресурса для определения атрибута класса

Я пытаюсь вызвать новую функцию внутри марионеточного ресурса в манифесте, но не знаю, как создать ресурс для присвоения значения, полученного из функции в ресурсе.

Определите функцию

Каталог puppet-module/lib/puppet/parser/functions/.

module Puppet::Parser::Functions
  newfunction(:retrive_pub_key, :type => :rvalue, :doc => <<-EOS
    Returns content of ssh key pub file.
    EOS
  ) do |args|
    File.read(args[0])
  end
end

Вызовите функцию:

$key = retrive_pub_key('/opt/ssh-keys/admin_rsa.pub')

Как мне вызвать функцию внутри ресурса, чтобы определить переменную $key с помощью rvalue? после создания 'admin_rsa.pub'?

Вызов функции

Внутри манифеста Puppet init.pp.

??? {"retrieve_key":
    ???,
    ???,
    require => [File["/opt/ssh-keys/admin_rsa.pub"],
}

Я следил за этим руководством по функциям в puppet< /а>

Вот пример проекта для тестирования функций.


person Ricardo García    schedule 08.03.2013    source источник


Ответы (1)


Если я вас правильно понял, вы хотите установить содержимое какого-либо файла в соответствии с содержимым соответствующего файла открытого ключа в вашем каталоге /opt/ssh-keys.

Будет ли что-то подобное работать?

file { 'admin_rsa'
    content => retrieve_pub_key("/opt/ssh-keys/${name}.pub"),
    path => '/home/admin/.ssh/id_rsa.pub',
    ....
    require => File["/opt/ssh-keys/${name}.pub"],
}
person Marvin Pinto    schedule 16.06.2013