小编Alv*_*ado的帖子

在puppet中添加自定义函数

我正试图在puppet中移植一个Ruby脚本.据我所知,实现这一目标的唯一方法是在模块中创建自定义函数.如果有另一种方式,请随时告诉我.我尝试了我的第一个测试,如https://docs.puppetlabs.com/guides/custom_functions.html所示,我宣布了一个新模块:

/etc/puppet/modules/custom_module
Run Code Online (Sandbox Code Playgroud)

并编辑了一个/etc/puppet/modules/custom_module/lib/puppet/parser/functions/newfunction使用以下代码调用的新函数文件:

module Puppet::Parser::Functions
    newfunction(:write_line_to_file) do |args|
            filename = args[0]
            str = args[1]
            File.open(filename, 'a') {|fd| fd.puts str }
    end
end
Run Code Online (Sandbox Code Playgroud)

然后我在这个清单中/etc/puppet/environments/desarrollo/manifests/des.pp使用了这个内容:

node "develserver" {
        write_line_to_file('/tmp/some_file', "Hello world!")
}
Run Code Online (Sandbox Code Playgroud)

最后,当我运行puppet agent -tod它时,它显示以下错误:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Unknown function write_line_to_file at /etc/puppet/environments/desarrollo/manifests/des.pp:5 on node develserver
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ruby file-io function puppet

2
推荐指数
1
解决办法
4381
查看次数

添加一些调试到木偶自定义类型

我在/etc/puppet/modules/tipo/lib/puppet/type/customtipo.rb中有一个木偶自定义类型,其内容是:

require 'logger'
Puppet::Type.newtype(:customtipo) do
        newproperty(:parametro) do
                log.info("ES UN PARAMETRO")
        end
end
Run Code Online (Sandbox Code Playgroud)

我知道这是一个虚拟自定义类型,但我从这种事情开始,资源放在/etc/puppet/modules/tipo/manifests/init.pp中,其内容是:

class tipo {
        customtipo {
        "ejemplo":
        parametro => "uno",
        }
}
Run Code Online (Sandbox Code Playgroud)

案例是否是"参数",它没有像我期望的那样显示消息"ES UN PARAMETRO".是否有其他方法可以使用自定义类型实现此目的?谢谢!

ruby puppet custom-type

2
推荐指数
1
解决办法
1616
查看次数

puppet 退出代码 2,而 rundeck 预期为 0

我正在尝试在 rundeck 中运行一个运行“puppet agent -tod”的任务,但是由于 puppet 返回的退出代码为 2,这意味着它应用了一些更改,如https://docs.puppetlabs.com/references /3.4.2/man/agent.html在 --detailed- exitcodes部分,但 rundeck 与 0 不同的所有标记为失败。我可以以某种方式强制显示 0 退出代码而不是 2 吗?

谢谢你们!

bash exit-code puppet rundeck

2
推荐指数
1
解决办法
2417
查看次数

删除 Ruby 中 URI 的最后一段

我正在尝试使用 Ruby 删除给定 URI 的最后一段,

像这样:

http://example.com/foo/bar/baz/?lala=foo
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个:

"http://example.com/foo/bar/baz/"
Run Code Online (Sandbox Code Playgroud)

我已经搜索过,我得到的只是获取 URI 的最后一个段或主机部分。

ruby uri

0
推荐指数
1
解决办法
1323
查看次数

标签 统计

puppet ×3

ruby ×3

bash ×1

custom-type ×1

exit-code ×1

file-io ×1

function ×1

rundeck ×1

uri ×1