1

我试图在清单中的 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')

如何调用资源内的函数以使用 rvalue定义$key变量?创建“admin_rsa.pub”之后?

调用函数

在 Puppet 清单init.pp中。

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

我一直在关注这个关于puppet 函数的教程

这是测试功能的示例项目。

4

1 回答 1

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"],
}
于 2013-06-16T13:20:40.560 回答