在厨师独奏期间输出一个变量

时间:2015-08-24 09:33:01

标签: bash debugging vagrant chef-recipe chef-solo

您好我只想查看在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块里面没有对变量的新赋值..... 我知道它很可能不是做这样的事情的方式....但我正在学习厨师并尝试学习它......就像那样。

0 个答案:

没有答案