2014-09-22 24 views
0

我使用elasticsearch-logstash模塊從create_resources - 不能轉換成字符串哈希

https://forge.puppetlabs.com/elasticsearch/logstash

這是我hiera看起來像......

--- 
classes: 
    - 'profile::logstash' 


profile::logstash::conf: 
    package_url: "https://download.elasticsearch.org/logstash/logstash/packages/centos/logstash-contrib-1.4.2-1_efd53ef.noarch.rpm" 

,這是從配置文件logstash.pp

class profile::logstash { 

    $conf = hiera('profile::logstash::conf',{}) 


    validate_hash($conf) 


    create_resources('logstash',$conf) 

} 

我得到這個錯誤...

Error: can't convert String into Hash at /tmp/vagrant-puppet-2/modules-0/profile/manifests/logstash.pp:10 on node pw-idx-11.local 
Wrapped exception: 
can't convert String into Hash 
Error: can't convert String into Hash at /tmp/vagrant-puppet-2/modules-0/profile/manifests/logstash.pp:10 on node pw-idx-11.local 

UPDATE:

使用這個固定....

class profile::elasticsearch { 

    class { '::elasticsearch': 
    version => '1.1.1-1' 
    } 

    $elasticsearch_configs = hiera_hash('profile::elasticsearch::instance',{}) 

    validate_hash($elasticsearch_configs) 

    create_resources(elasticsearch::instance,$elasticsearch_configs) 

    package { 'java-1.7.0-openjdk.x86_64': 
    ensure => 'installed' 
    } 

} 
+0

kris:你有沒有想過這個散列格式呢? – Banjer 2015-02-25 16:39:01

+0

@Banjer,是的看到上面的更新.... – krisdigitx 2015-02-26 11:58:43

+0

謝謝@krisdigitx! – Banjer 2015-02-26 17:43:53

回答

3

你的數據的示例不適合使用與create_resources,一個希望將嵌套散列。

data_identifier: 
    resource_title1: 
    res1_param1: value 
    res1_param2: value 
    resource_title2: 
    res2_param1: value 
    ... 

由於您的數據是平面散列,因此無法從中創建資源。您可能需要添加資源標題圖層。