禁用Hiera调试日志记录
问题描述:
我使用Hiera(ruby库,不是命令行工具或puppet集成)从现有的Hiera YAML(我们用于puppet使用)检索数据,用于Capistrano 。我能够得到这个工作的目的......但我似乎无法摆脱调试输出,这似乎是默认的:禁用Hiera调试日志记录
$ sudo cap deploy
WARN: 2014-10-29 12:17:09 +0000: Not using Hiera::Puppet_logger. It does not report itself to be suitable.
WARN: 2014-10-29 12:17:09 +0000: Cannot load backend puppet: cannot load such file -- hiera/backend/puppet_backend
DEBUG: 2014-10-29 12:17:09 +0000: Hiera YAML backend starting
DEBUG: 2014-10-29 12:17:09 +0000: Looking up package_repo_base in YAML backend
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source environments/PROD/LDN
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source regions/LDN
DEBUG: 2014-10-29 12:17:09 +0000: Cannot find datafile /etc/customer/hieradata/regions/LDN.yaml, skipping
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source environments/PROD
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source common
DEBUG: 2014-10-29 12:17:09 +0000: Found package_repo_base in common
WARN: 2014-10-29 12:17:09 +0000: Not using Hiera::Puppet_logger. It does not report itself to be suitable.
WARN: 2014-10-29 12:17:09 +0000: Cannot load backend puppet: cannot load such file -- hiera/backend/puppet_backend
DEBUG: 2014-10-29 12:17:09 +0000: Looking up puppet_deploy_base in YAML backend
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source environments/PROD/LDN
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source regions/LDN
DEBUG: 2014-10-29 12:17:09 +0000: Cannot find datafile /etc/customer/hieradata/regions/LDN.yaml, skipping
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source environments/PROD
DEBUG: 2014-10-29 12:17:09 +0000: Looking for data source common
DEBUG: 2014-10-29 12:17:09 +0000: Found puppet_deploy_base in common
**************************************************************************************************************************************************
* Recording output in: deploy.20141029-121709+0000.log *
**************************************************************************************************************************************************
* 2014-10-29 12:17:09 executing `deploy'
* 2014-10-29 12:17:09 executing `deploy:update'
** transaction: start
目前这仅仅是一个烦恼比什么都重要,但扩展输出(我已经修剪了上面的输出)使得日志记录相当嘈杂,我希望能够摆脱它。
答
我设法通过deploy.rb内设置配置哈希在hiera调用排序了这一点:
def hiera_lookup(key,default=nil,order_override=nil,resolution_type=:priority)
hiera_yaml = File.realpath('./puppet/hiera.yaml')
config = YAML.load_file(hiera_yaml)
config[:logger] = 'noop'
scope = YAML.load_file("/etc/hiera/hiera.conf")
hiera = Hiera.new(:config => config)
hiera.lookup("#{key}", default, scope, order_override, resolution_type)
end
设置config[:logger]
关键“空操作”完全压制来自hiera输出。
最近我看了一下,如果你把hiera.yaml中的logger改为noop,那么它也会这样做,而不必更改源文件。 – lsd 2015-03-24 17:47:04
确实如此 - 但是,对于我的用例,我需要保持现有的:logger原样并在运行时修改输出(这在Capistrano中使用)。列出的代码示例不是源代码,它是我的deploy.rb – Andrew 2015-03-25 05:33:19
中的帮助器方法啊,这也是我一直在寻找的。很高兴知道。 – lsd 2015-03-26 18:11:04