Chef infra 如何将chef客户端日志输出捕获到厨房运行中的文件?
我试图将chef client配置为在测试厨房运行时将日志输出到文件,但我在Chef infra 如何将chef客户端日志输出捕获到厨房运行中的文件?,chef-infra,test-kitchen,Chef Infra,Test Kitchen,我试图将chef client配置为在测试厨房运行时将日志输出到文件,但我在.kitchen.yml中的配置似乎没有反映在准备好并注入测试节点的client.rb中 我正在使用ChefDK 0.3.6,chef_zero供应器和virtualbox上的流浪司机 我的.kitchen.yml文件摘录: ... provisioner: name: chef_zero ... - name: install-only run_list: - recipe[my_cookbook:
.kitchen.yml
中的配置似乎没有反映在准备好并注入测试节点的client.rb中
我正在使用ChefDK 0.3.6,chef_zero供应器和virtualbox上的流浪司机
我的.kitchen.yml
文件摘录:
...
provisioner:
name: chef_zero
...
- name: install-only
run_list:
- recipe[my_cookbook::test_recipe]
attributes:
chef_client:
config:
log_location: "/var/log/chef/chef-client.log"
...
另一个摘录,来自厨房诊断的输出:
...
provisioner:
attributes:
chef_client:
config:
log_location: "/var/log/chef/chef-client.log"
chef_client_path: "/opt/chef/bin/chef-client"
chef_omnibus_install_options:
chef_omnibus_root: "/opt/chef"
...
最后,测试节点上/tmp/kitchen/client.rb
的内容:
[root@TRSTWPRTSTAPV99 log]# cat /tmp/kitchen/client.rb
node_name "install-only-rhel65-x86-64"
checksum_path "/tmp/kitchen/checksums"
file_cache_path "/tmp/kitchen/cache"
file_backup_path "/tmp/kitchen/backup"
cookbook_path ["/tmp/kitchen/cookbooks", "/tmp/kitchen/site-cookbooks"]
data_bag_path "/tmp/kitchen/data_bags"
environment_path "/tmp/kitchen/environments"
node_path "/tmp/kitchen/nodes"
role_path "/tmp/kitchen/roles"
client_path "/tmp/kitchen/clients"
user_path "/tmp/kitchen/users"
validation_key "/tmp/kitchen/validation.pem"
client_key "/tmp/kitchen/client.pem"
chef_server_url "http://127.0.0.1:8889"
encrypted_data_bag_secret "/tmp/kitchen/encrypted_data_bag_secret"
正如您所看到的,预期的log\u位置
条目未包含在client.rb
中,我想这就是为什么没有在指定路径中创建日志文件的原因
您能帮助我理解如何正确地通过厨房的厨师客户端登录到文件吗
迄今为止使用的参考资料:
client.rb
参考:
.kitchen.yml
中的厨师客户端特定设置:
根据和阅读:
它没有考虑属性,听起来很有逻辑,因为它们是真实世界中烹饪书要使用的属性
可以做的事情(我认为从代码中)是沿着chef_omnibus_url在provisioner定义中定义一个log_文件
(上面provisioner代码的第42行):
you.kitche.yml可以成为:
...
provisioner:
name: chef_zero
log_file: "/var/log/chef/chef-client.log"
...
- name: install-only
run_list:
- recipe[my_cookbook::test_recipe]
...
或
如果您确实使用chef_client cookbook在节点上配置chef,我会将其包含在运行列表中,以尽可能接近实际情况。您的运行列表中是否包含chef_client cookbook?IIRC提到的属性供chef_client::config
配方使用。(我可能错了,因为我没有使用测试厨房)@Tensibai我没有在我的运行列表中包括chef_client::config
,因为供应器(chef_zero)有自己的功能。我正试图为配置日志记录的provisioner中嵌入的chef客户端。在provisioner下添加log\u文件
属性对我有效,谢谢!
...
provisioner:
name: chef_zero
...
- name: install-only
run_list:
- recipe[chef-client::config]
- recipe[my_cookbook::test_recipe]
attributes:
chef_client:
config:
log_location: "/var/log/chef/chef-client.log"
...