我正在尝试在清单中的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"],
}
我一直在关注functions in puppet
这个教程以下是the sample project来测试功能。
答案 0 :(得分: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"],
}