Chef infra 如何在测试厨房中获得日志输出?
我的食谱里有:Chef infra 如何在测试厨房中获得日志输出?,chef-infra,chef-recipe,test-kitchen,Chef Infra,Chef Recipe,Test Kitchen,我的食谱里有: log mylog1 do 级别:信息 “为什么我看不到这个?” 终止 日志mylog2 do 级别:信息 “为什么我看不到这个?” 终止 这就是我在执行kitchen converge-l debug时看到的: ... Converging 3 resources Recipe: mybook::myrecipe * log[mylog1] action write * log[mylog1] action write ... 这个问题分为两个部分: 首先,通过“-
log mylog1 do
级别:信息
“为什么我看不到这个?”
终止
日志mylog2 do
级别:信息
“为什么我看不到这个?”
终止
这就是我在执行kitchen converge-l debug
时看到的:
...
Converging 3 resources
Recipe: mybook::myrecipe
* log[mylog1] action write
* log[mylog1] action write
...
这个问题分为两个部分: 首先,通过“-l debug”传递到kitchen的日志级别是针对kitchen可执行文件的,而不是针对provisioner的,在本例中为“chef solo”。因此,如果您运行kitchen with debug选项,您会看到provisioner以日志级别运行,如下“自动”,即使kitchen处于调试模式:
[SSH] vagrant@127.0.0.1<{:user_known_hosts_file=>"/dev/null",
:paranoid=>false, :port=>"2222", :compression=>false, :compression_level=>0,
:keepalive=>true, :keepalive_interval=>60, :timeout=>15, :keys_only=>true,
:keys=>["/Users/mpriyada/myWorks/.kitchen/kitchen-vagrant/kitchen-default-centos/.vagrant/machines/default/virtualbox/private_key"],
:auth_methods=>["publickey"], :user=>"vagrant"}> (sh -c 'sudo -E /opt/chef/bin/chef-solo
--config /tmp/kitchen/solo.rb --log_level auto --force-formatter --no-color
--json-attributes /tmp/kitchen/dna.json')
输出:
Recipe: test3::default
* log[mylog1] action write[2016-08-17T03:55:16+00:00] WARN: WHY I NO SEE THIS?
* log[mylog2] action write
Running handlers:
Running handlers complete
现在,第二部分,如果您不想在“auto”日志级别运行厨房,您可以转到“/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.0/lib/kitchen/provisioner/chef_base.rb”并将硬编码日志级别从自动更改为chef solo日志允许的任何级别。此问题有两个部分: 首先,通过“-l debug”传递到kitchen的日志级别是针对kitchen可执行文件的,而不是针对provisioner的,在本例中为“chef solo”。因此,如果您运行kitchen with debug选项,您会看到provisioner以日志级别运行,如下“自动”,即使kitchen处于调试模式:
[SSH] vagrant@127.0.0.1<{:user_known_hosts_file=>"/dev/null",
:paranoid=>false, :port=>"2222", :compression=>false, :compression_level=>0,
:keepalive=>true, :keepalive_interval=>60, :timeout=>15, :keys_only=>true,
:keys=>["/Users/mpriyada/myWorks/.kitchen/kitchen-vagrant/kitchen-default-centos/.vagrant/machines/default/virtualbox/private_key"],
:auth_methods=>["publickey"], :user=>"vagrant"}> (sh -c 'sudo -E /opt/chef/bin/chef-solo
--config /tmp/kitchen/solo.rb --log_level auto --force-formatter --no-color
--json-attributes /tmp/kitchen/dna.json')
输出:
Recipe: test3::default
* log[mylog1] action write[2016-08-17T03:55:16+00:00] WARN: WHY I NO SEE THIS?
* log[mylog2] action write
Running handlers:
Running handlers complete
现在,第二部分,如果您不想在“auto”日志级别运行厨房,您可以转到“/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.0/lib/kitchen/provisioner/chef_base.rb”并将硬编码日志级别从自动更改为任何chef solo日志允许的级别。自Kitchen 1.7.0以来,您可以在Kitchen.yml中配置此级别:
provisioner:
name: chef_zero
log_level: info
请参阅(在Kitchen文档中似乎未链接到)因为Kitchen 1.7.0,您可以在Kitchen.yml中配置它:
provisioner:
name: chef_zero
log_level: info
请参阅(厨房文档中似乎没有链接)对于较新的厨房,您还可以执行
厨房测试-D
来触发厨房和您的厨师客户端的调试输出运行。对于较新的厨房,您还可以执行厨房测试-D
来触发厨房和您的厨师客户端的调试输出运行。我可以在.Kitchen.yml或配置文件中进行设置吗在我的烹饪书或食谱中的某个地方,而不是修改实际的厨房代码?因为,它是硬编码的。恐怕没什么可做的。厨房日志级别可以通过环境变量更改:kitchen\u log='DEBUG'kitchen converge
@Duke-问题是在运行kitchen时更改chef solo/chef zero日志级别更改。我可以在.kitchen.yml或我的烹饪书或食谱中的某个配置文件中设置它,而不是修改实际的日志级别吗厨房代码?因为,它是硬编码的。恐怕做不了多少。厨房日志级别可以通过环境变量更改:kitchen\u log='DEBUG'kitchen converge
@Duke-问题是在运行kitchen时更改chef solo/chef zero日志级别更改。