您好我只想查看在chef bash块中设置的变量的输出。根据Django是否已安装。我的食谱看起来像这样。
bash 'install django and gunicorn' do
code <<-EOH
source /djenv/bin/activate
if [ pip3 list | grep django ]
then
answer = 'Django already installed'
else
pip3 install gunicorn
pip3 install django
answer = 'Installed django and gunicorn'
fi
export answer
deactivate
EOH
Chef::Log.info($answer)
end
#log 'message' do
# message = $answer
# level :info
#end
我在流浪汉提供的所有内容中都看到了
bash [install django]成功运行
但我希望看到变量的输出告诉我们究竟发生了什么。 注释的日志块也不起作用。 Chef :: Log.info(bla)也没有做任何事情。
更新
好吧没有尝试同样的属性。 我创建了一个default.rb文件,其中包含一个带有初始“notset”值的普通['django'] ['status']属性。 并改变了我的食谱。
bash 'install django and gunicorn' do
code <<-EOH
source /djenv/bin/activate
if [ pip3 list | grep django ]
then
#{node.normal['django']['status']} = 'Django already installed'
else
pip3 install gunicorn
pip3 install django
#{node.normal['django']['status']} = 'Installed Django and Gunicorn'
fi
deactivate
EOH
notifies :write, 'log[message]', :immediate
end
log 'message' do
message node['django']['status']
level :info
action :nothing
end
但我得到的只是一个
信息:未设置
所以在bash块里面没有对变量的新赋值..... 我知道它很可能不是做这样的事情的方式....但我正在学习厨师并尝试学习它......就像那样。