问题标签 [facter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2134 浏览

ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError)

我正在尝试设置一个 puppet 节点,但 ruby​​gems 似乎没有表现。

如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过安装的二进制文件运行它rubygems (/usr/bin/facter),它抛出:

我尝试删除 ruby​​gems 并重新安装以及重新安装 gem,但似乎没有任何效果。

我假设某些东西缓存在某处,因为当我尝试运行 puppet 时它会引发相同的错误。

有任何想法吗?

0 投票
4 回答
3724 浏览

python - Python版本的“因素”?

我正在考虑收集服务器数据,并且在这些服务器中预装了 Python 2.6。现在我想知道是否有 Python 库对应于 Ruby 的“因子”,而不是 Python 的“绑定”因子。

我用谷歌搜索了它,但找不到任何东西。有人对此有任何想法吗?

0 投票
6 回答
42937 浏览

ruby - Puppet/Facter“无法检索事实 fqdn”:如何修复或规避?

我正在学习木偶并尝试在家里的虚拟机上进行实验。我还没有使用 puppet 服务器,只是在本地运行。它工作正常,但每次我运行时puppet apply ...,我都会延迟几秒钟,之后它会显示消息

我假设该消息与延迟有关,并且我想摆脱它(延迟-我可以接受该消息)。谷歌搜索解决方案似乎表明它与 DNS 查找有关,但我真的找不到任何关于它的东西,这似乎令人惊讶。我想要的只是能够在我的虚拟机中快速应用清单,以便我可以进行实验。我怎样才能加快速度?

更新:我在调试输出中看不到任何额外的信息,但它看起来像这样:

更新:我添加了“ruby”标签,因为 puppet 的追随者很少。如果这不属于 ruby​​,或者如果您知道更好的标签,请告诉我。

再次更新:在了解了更多关于 puppet 的知识后,我现在明白这条消息来自名为“Facter”的组件,该组件可以嗅出有关 Puppet 正在运行的系统的“事实”。我找到了一些配置选项并使用了"certname""node_name""node_name_value",但我无法让延迟消失。有谁知道具体如何告诉 Facter 忽略 fqdn 或如何让 Facter 能够在 Ubuntu 11.10 vm 上找到 fqdn?

进步:

那是我的路由器,它通过 Tomato 运行 Dnsmasq。

strace引导我到 arp,它阻塞了 5 秒,每次调用两次facter

我将虚拟机从 NAT 网络更改为桥接,因此它现在在网络上有一个 IP,并且arp现在立即返回。(我不是网络专家,所以我不知道为什么会这样,但这似乎是一个合理的尝试。)但facter仍然需要大约 4-5 秒才能运行并且仍然报告“无法检索事实 fqdn”。facter -d显示多次出现“域的值仍然为零”,一直到最后。我在想有些事情还是不太对劲。

0 投票
2 回答
1871 浏览

ruby - 某些网络事实的 Puppet facter 速度较慢

我正在学习vagrantpuppet。当我使用 vagrant lucid32 (Ubuntu 10.04) 时,puppet 似乎很慢。我已经修复了 fqdn 问题(问题 7780322),但它仍然很慢。

我已经将问题(部分)追溯到因素。请求 ipaddress 非常快,但 ipaddress_eth0 需要 20 秒:

寻找 ipaddress_lo 也很慢。

任何人都可以帮助我提供解决方案或有关如何调试的建议吗?我是 Ruby 新手,但愿意学习。

谢谢。

0 投票
1 回答
8494 浏览

ruby - 为事实木偶定制事实

尝试编写自定义因子模块:

对 ruby​​ 来说非常新……用什么做这件事的正确语法是什么?

0 投票
3 回答
1976 浏览

amazon-ec2 - Puppet 代理守护程序未读取事实事实(EC2,cloud-init)

我正在使用 puppet 从 facter 中读取事实,并基于此将不同的配置应用于我的模块。

问题:

傀儡特工没有看到这个事实。以交互方式运行puppet agent --test按预期工作。即使从脚本以非交互方式运行它似乎也可以正常工作。只有代理本身在搞砸。

过程:

我正在 EC2 上部署一个基于 Ubuntu 的应用程序堆栈。使用 userdata (#cloud-config),我在 /etc/environment 中设置了一个环境变量:

然后立即在#cloud-config 中,我获取/etc/environment。只有那么我 apt-get install puppet (我不再使用 package: puppet 来消除#cloud-config 步骤序列中的歧义)

实例启动后,我确认事实可用:运行facter tl_role返回“开发”。然后我检查 /var/log/syslog,显然 puppet 代理没有看到这个事实 - 我知道这一点是因为它无法编译目录,并且没有任何(空白)我应该看到的值变量集取决于这个事实。

但是,puppet agent --test交互式运行可以很好地编译和运行目录。即使从#cloud-config 脚本(安装puppet 后立即)运行它也可以正常工作。

我如何让 puppet 代理了解这个事实?重新启动代理服务没有任何区别,它仍然不知道自定义事实。重新启动实例也没有任何区别。

这是一些代码:

EC2 用户数据:

主要木偶清单:

然后我看到 $sitedomain 应该是失败的地方,所以 $tl_role 似乎没有设置。

有任何想法吗?这让我脑洞大开……

0 投票
2 回答
1974 浏览

puppet - 在 puppet 执行期间运行任意 ruby​​ 代码?

我正在扩展puppetlabs-mongodb模块以允许用户身份验证。挑战在于 mongo 更改了在2.22.4版本之间启用用户身份验证的机制,因此必须运行不同的代码才能将用户身份验证凭据提供给数据库。

我最初的想法是创建一个自定义事实事实,该事实基本上捕获了 的输出mongod --version,但似乎事实事实是在执行 puppet 清单之前加载的。有没有办法在 puppet 执行期间在运行时执行任意代码,以便我可以访问mongod --version并决定使用哪种方法来启用用户身份验证?

注意:一种方法是让 puppet 运行单个脚本来创建用户凭据并让脚本mongod --version在运行时检测。这似乎不是一种非常木偶的做事方式,但也许我不相信这一点。处理在 puppet/facter 中动态访问变量的最佳方法是什么?

0 投票
1 回答
3096 浏览

ruby - 使用 puppet Factor 返回多个自定义事实

我正在尝试将系统上的用户添加为木偶事实。我不是 ruby​​ 程序员,下面的代码可以正确生成用户,但他们的 uid 都是一样的(密码文件中最后一个条目的 uid)。如果 uid 超出范围,我预计会出现未知符号错误,如果 Facter.add 最后只被调用一次,我预计只有一个用户,即最后一个用户,与 uid 相同。我不明白一个人如何在没有另一个人这样做的情况下进行迭代......

在四处寻找时,我发现其他人几乎有相同的问题,这就是解决方案(这对我也有用):

...但是我不明白有什么区别。它的作用就像对 Facter.add 块的调用被缓冲并在循环结束时一次全部运行,并且 Etc 加载了所有 passwd,因此 user.uid 索引到数组中并且时间无关紧要。但是,对于程序语言来说,这将是一件奇怪的事情......

0 投票
3 回答
1236 浏览

arrays - puppet merge two variable in define

We have multiple sub-interface and multiple app running on own sub-interface IP so I am trying to use facter variables to iterate my loop using $name

here are my interface in facter command output

my manifests file

some how $ipaddress_eth0_$name doesn't working :( its not parsing this variable, how do I join two variables?

0 投票
1 回答
1820 浏览

ruby - setcode 是什么意思以及如何在其中捕获错误?

我写了以下事实。外部命令有时会引发错误,我想抓住它。我找到了许多关于如何使用begin...end块捕获错误的示例。不幸的是,这些都不涉及setcode do...end块。事实上,我找不到任何关于setcode. 任何人都可以对此有所了解吗?