2014-10-29 130 views
1

我使用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 

目前这仅仅是一个烦恼比什么都重要,但扩展输出(我已经修剪了上面的输出)使得日志记录相当嘈杂,我希望能够摆脱它。

回答

1

我设法通过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输出。

+0

最近我看了一下,如果你把hiera.yaml中的logger改为noop,那么它也会这样做,而不必更改源文件。 – lsd 2015-03-24 17:47:04

+0

确实如此 - 但是,对于我的用例,我需要保持现有的:logger原样并在运行时修改输出(这在Capistrano中使用)。列出的代码示例不是源代码,它是我的deploy.rb – Andrew 2015-03-25 05:33:19

+0

中的帮助器方法啊,这也是我一直在寻找的。很高兴知道。 – lsd 2015-03-26 18:11:04