簡體   English   中英

人偶hiera和create_resource問題

[英]Puppet hiera and create_resource issue

我在將哈希從hiera傳遞到資源創建時遇到一些問題。

vhosts:
    project_1:
        name: project_1
        project_name: project_1
    project_2:
        name: project_2
        project_name: project_2

$vhosts = hiera('vhosts', [])
create_resources(project_vhosts::vhosts, $vhosts)

忽略隱藏的項目名稱:),但您會明白要點。 我的資源如下所示:

define project_vhosts::vhosts(
$vhosts = []
){
    notice($vhosts)
}

人偶逃跑后出現這些錯誤

Error: Invalid parameter project_name on project_vhosts::Vhosts[project_1] on node *
Wrapped exception:
Invalid parameter project_name
Error: Invalid parameter project_name on project_vhosts::Vhosts[project_1] on *

我知道它希望我直接將參數實現到類中。 但是,我真正想要的是資源中整體上對我可用的哈希。 我在這里做錯了什么?

首先,請不要使用[]表示空哈希。 不是。 []是空數組,而{}是空哈希。

要執行您想要的操作,您的數據只需要再一層哈希即可。

vhost_data:
    vhosts:
        project_1:            
            name: project_1
            project_name: project_1
        project_2:
            name: project_2
            project_name: project_2

然后

$data = hiera('vhost_data', {})
create_resources(project_vhosts::vhosts, $vhosts)

當然,還有一種更簡單的方法來處理您的數據。

project_vhosts::vhosts {
   'meaningless-resource-title':
       vhosts => hiera('vhosts', {})
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM