Tag: 傀儡

如何在Puppet DSL中将哈希值转换为字符串?

我有一个哈希哈希,我需要嵌入在exec资源命令中。 我的想法是将hash序列化为string并将其插入到exec call 。 exec调用将通过ruby -e ‘ruby code here’执行ruby代码。 使用irb,我知道hash.to_s创建了一个单行解析版本的hash 。 或者我可以使用json。 我怀疑你可以在木偶中召唤to_s ,但我不确定。 Puppet的stdlib有parseyaml和parsejson来反序列化,但是有没有办法将序列化为可解析的string ? 我可以编写一个自定义木偶函数来完成它,但如果有的话,我更喜欢已经内置的解决方案。 更新我正在考虑定义一个木偶function。 我之前从未写过,所以我不确定语法。 这是我的第一次尝试: Puppet::Parser::Functions.newfunction( :serialize_hash, :arity => 2, :doc => “Serialize a hash to any depth and optionally escape the double quotes.”, :type => :rvalue) do |args| hash = args[0] escape_quotes = args[1] serialized = hash.to_s if (escape_quotes) […]

工头与puppet node.rb错误404未找到

我已经安装了带有木偶的foreman-1.2 ,安装完成后我已将我的木偶注册到工smart-proxy 。 当我运行以下命令 [root@puppet ~]# puppet agent -t Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 400 on SERVER: Failed to find puppet.example.com via exec: Execution of ‘/etc/puppet/node.rb puppet.example.com’ returned 1: — false Info: Retrieving plugin Error: Could not retrieve catalog from remote server: Error 400 on […]

如何在ruby模板中输出排序哈希

我正在构建一个内联应用程序的配置文件。 它本质上是一个json文件。 我每次都以相同的方式输入puppet / ruby​​ 1.8,这很麻烦。 我正在使用 但是在输出人类可读内容时,每次都不能保证相同的顺序。 这意味着木偶会经常针对相同的数据发送更改通知。 我也试过了 每次都会生成相同的数据/顺序。 当数据具有嵌套数组时会出现问题。 data => { beanstalkd => [ “server1”, ] } 变 “beanstalkd”: “server1”, 代替 “beanstalkd”: [“server1”], 我现在已经开始和关闭这几天了,所以想要一些帮助

Exec onlyif注册表值不存在

* *编辑 ** 我找到了一个解决方案: class add_route { exec { “route_to_internal_network”: command => “C:\Windows\System32\ROUTE.EXE add 192.168.5.254 mask 255.255.255.255 10.5.5.5 -p”, unless => “C:\Windows\System32\reg.exe query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes /f 192.168.5.254,255.255.252.0,10.5.5.5,1”, } } 我会留下这篇文章以防其他人遇到类似的问题 * *编辑 ** 我正在尝试编写一个puppet清单,为我的一些Windows主机服务器添加一个持久的静态路由。 到目前为止,我正在考虑创建一个类: class add_route { exec { “route_to_internal_network”: command => “C:\Windows\System32\ROUTE.EXE add 192.168.5.254 mask 255.255.255.255 10.5.5.5 -p”, } } 但是,每当木偶客户端与木偶主人签入时,此清单将执行命令。 我希望在我的class级中使用onlyif ,但在尝试检查包含我的路由的缺少注册表值时似乎有点混乱。 这是最好的方法吗? […]