0
Ohai厨师。使用厨师保险箱代替数据包
我写了一个将usename和password作为参数的定义。 在配方中使用时,它的参数从数据包中取出。
但是它
下面是使用数据包的代码取出由厨师穹顶参数时失败:
databag = 'credentials'
authalias = data_bag_item(databag, ldapalias)
username = authalias[node['was']['credentialsUsername']]
password = authalias[node['was']['credentialsPassword']]
,然后将它们传递给我的定义,工作正常
connectProfiletoLdap 'ldapmain' do
profile dmgrProfile
baseDN 'dc=mydomain,dc=com'
bindDN username
binpwd password
ldapServer 'LDAPPROD.mydomain.com'
end
但是,当我尝试对厨师库执行相同操作时,它会失败,因为定义检查NIL值的输入。 在我看来,数据包在编译时进行评估,并在避难所项目执行。
如果我想让它工作,该怎么办? 有没有办法强制在编译时发生库项评估?
下面是使用拱顶从而未能代码:
vault = node['was']['credentialsVault']
authalias = chef_vault_item(vault, ldapalias)
username = authalias[node['was']['credentialsUsername']]
password = authalias[node['was']['credentialsPassword']]
connectProfiletoLdap 'ldapmain' do
profile dmgrProfile
baseDN 'dc=mydomain,dc=com'
bindDN username
binpwd password
ldapServer 'LDAPPROD.mydomain.com'
end
它提出这是在我的代码的情况下,异常的指标的影响之一是空 这是自定义代码:
if params[:baseDN].nil? or params[:ldapServer].nil? or params :profile].nil? or params[:bindDN].nil? or params[:binpwd].nil?
raise "Exiting - nil values are unaxceptable for connectProfiletoLdap"
else
......
end
所以我得到的例外是 “退出 - 零值unaxceptable为connectProfiletoLdap”
什么错误,你看到(在那里抱怨说,它是NIL} –
我已经更新,并显示错误的问题。 如果其中一个值为零 –
而我假设你已经检查过节点['was'] ['credentialsVault']'肯定包含一个字库名称? –