如何将变量值分配给自定义节点属性,并在另一个配方中使用此值

时间:2017-12-12 12:10:25

标签: ruby chef chef-recipe

我有ids和iq:

 bkp_id = List_volume_attached_acc.list_volume_acc('ocid1.instance.oc1.iad.adlad')
ids = bkp_id.map(&:ipv4)
iq = bkp_id.map(&:iqn)
node['ids'] = ids

我必须在另一个配方中使用它们(powershell脚本将在Chef客户端上运行)。就像这样:

powershell_script "run-isci" do
code <<-EOH
Set-Service -Name msiscsi -StartupType Automatic
Start-Service msiscsi
New-IscsiTargetPortal -TargetPortalAddress #{node['iscsi']['ids']}
Connect-IscsiTarget -NodeAddress #{node['iscsi']['iq']} -TargetPortalAddress #{node['iscsi']['ids']} -IsPersistent $True

EOH
end

如何将id和iq的值分配为节点属性,以便我可以在第二个配方中使用它们?

1 个答案:

答案 0 :(得分:0)

鉴于您对复杂的Ruby编码似乎不太满意,我只是将getter代码复制粘贴到其他配方中。它非常小,似乎不太可能经常更改,因此复制代码可能比研究如何使用npm install 2>&1更容易。