gpt4 book ai didi

apache2 - Chef 属性节点[:languages] vanishes after first chef-client run

转载 作者:行者123 更新时间:2023-12-02 03:51:48 26 4
gpt4 key购买 nike

我有一本 Chef Recipe ,其中包括 passenger_apache2::mod_rails来自 passenger_apache2 cookbook 的 Recipe .在服务器第一次运行 Chef 时,这会创建两个(有效的)配置文件:

# /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so

# /etc/apache2/mods-available/passenger.conf
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby1.9.1
PassengerMaxPoolSize 6

这些是通过使用说明书的模板创建的 passenger.load.erbpassenger.conf.erb ,分别使用 node[:languages][:ruby][:ruby_bin]node[:languages][:ruby][:gems_dir] .这些属性是 automatically populated by Ohai .

在第二次运行 chef-client ,这些文件被搞砸了。这是它们现在的样子:
# /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /gems/passenger-3.0.11/ext/apache2/mod_passenger.so

# /etc/apache2/mods-available/passenger.conf
PassengerRoot /gems/passenger-3.0.11
PassengerRuby
PassengerMaxPoolSize 6

所以看起来 node[:languages][:ruby]在 Chef 运行期间未填充。但是如果我直接从服务器上的 IRB session 调用 Ohai,它显示正确。

$ sudo -Hu root /usr/bin/irb1.9.1
irb(main):001:0> require 'yaml'
irb(main):002:0> require 'chef'
irb(main):003:0> node = YAML::load(`/usr/local/bin/ohai`)
irb(main):004:0> node['languages']['ruby']['ruby_bin']
=> "/usr/bin/ruby1.9.1"
irb(main):005:0> mash = Chef::Mash.new(node)
irb(main):006:0> mash[:languages][:ruby][:ruby_bin]
=> "/usr/bin/ruby1.9.1"

我可以修复该文件,但它不会阻止该问题在下次运行 Chef 时再次出现。我对如何进一步适本地解决此问题感到有些困惑。

有没有其他人遇到过这个问题?我还没有尝试在我的 Recipe 或角色中手动设置这些属性,但我认为我不应该;不应覆盖自动属性。

最佳答案

我想我只是通过重新启动 Chef 客户端解决了这个问题,但我仍然对根本原因感到困惑。

我相信(在我遇到此问题时)Chef-client 守护程序的运行实例是我使用 knife bootstrap 引导服务器时启动的原始实例。 .我们的引导模板安装了 ruby​​1.9.1 包,但可能 Chef-client 守护进程未能正确加载它。 (我对此很模糊。)

我首先尝试添加 ohai "reload"到我的 Recipe ,在下一次预定的 Chef 运行中,配置文件仍然损坏。

接下来我跑了service chef-client restart ,然后 Chef 正确填充了有问题的配置文件。在下一次运行中,他们仍然是正确的。

所以我希望这会消失,但我仍然困惑为什么我正在运行的 Chef 客户端实例不能正确地从 Ohai 重新加载自动属性。如果任何对 Chef 有更深入操作知识的人遇到这个问题,我仍然欢迎任何评论或 war 故事。

关于apache2 - Chef 属性节点[:languages] vanishes after first chef-client run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com