如何使用puppet apply
?
假设我有这个文件(test.pp)
file { "/root/files/f":
content => test('test'),
}
这个红宝石文件(test.rb)只记录并返回第一个文件。
require 'logger'
module Puppet::Parser::Functions
newfunction(:test, :type => :rvalue
) do |args|
log = Logger.new(STDOUT)
log.level = Logger::INFO
log.info(args[0])
args[0]
end
end
如何使用test
调用ruby函数puppet apply test.pp
?
我的问题是花了5分钟来运行我的整个puppet agent -t
并且我需要为puppet添加一个函数,所以我想快速测试它,而不是每次等待5分钟。
答案 0 :(得分:1)
这肯定有用,但很难维护。
更易于维护的方法是将您的功能添加到模块,然后在主设备上安装该模块。
例如,使用模块名称创建一个new(例如test_function):
mkdir -p test_function/lib/puppet/parser/functions
您的test_function
模块
├── lib
│ └── puppet
│ ├── parser
│ │ └── functions
│ │ ├── test.rb
将test.rb代码添加到test.rb文件
将此模块复制到主人的模块路径(这可能是/etc/puppet/modules
,具体取决于您的Puppet版本,请使用puppet module list
查找)
之后,木偶大师将读取其模块列表并动态添加它找到的所有函数。
此处有关于此的更多文档:
答案 1 :(得分:0)
我刚刚发现。
您需要做的就是将test.rb
文件直接添加到/var/lib/puppet/lib/puppet/parser/functions/test.rb
,并且傀儡申请将"请参阅"功能。