我在配方中创建了一个ruby块,如下所示:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Tours"
android:id="@+id/textView" />
现在,我正在尝试使用ruby_block 'load_databag_secret' do
block do
value = data_bag_item("tokens", "masterkey", IO.read("/etc/chef/encrypted_data_bag_secret") )
node.run_state['docker']['password'] = value['key']
end
end
,如下所示:
node.run_state['docker']['password']
但是,我收到以下错误:
token2_hash = lambda { token1_hash.deep_merge({ "value" => node.run_state['docker']['password'] } ) }
请建议使用ERROR: undefined method `[]' for nil:NilClass
答案 0 :(得分:-1)
运行状态与自动生成未定义级别的节点属性不同。更重要的是,它是一个先进的内部功能,你可能不应该在没有更多关于Chef和上下文的知识的情况下使用它。
我之前已经说过这个,我再说一遍:停止在StackOverflow上问这些一次性问题。你显然正在努力完成一些特定的事情,这些事情可以追溯到你所提出的十几个问题。这不是一个好地方,在IRC,Slack或Discourse上询问,回答者可以拥有统一的背景,更好地了解你的实际目标。