我正在尝试开发一本食谱,让一个烧瓶应用程序与gunicorn和nginx一起工作。我已经成功到了应用程序运行良好的本地sqlite数据库,请参阅我的食谱https://github.com/harrywang/flasky-cookbook。烧瓶应用程序使用环境变量发送电子邮件,例如:MAIL_USERNAME = os.environ.get('MAIL_USERNAME'),如何在厨房汇聚期间使用测试厨房将这些环境变量传递给ubuntu虚拟机?
答案 0 :(得分:15)
您可以在.kitchen.yml
:
provisioner:
name: chef-solo
attributes:
mycookbook:
mail_username: <%= ENV['MAIL_USERNAME'] %>
然后在配方中使用node['mycookbook']['mail_username']
将值传递给应用程序。
答案 1 :(得分:-2)
使用 .kitchen.yml 配置文件无法传递环境变量(请参阅test-kitchen/test-kitchen#662问题)。
我建议您使用gunicorn.conf.erb参数在--env
模板中设置环境变量:
exec gunicorn --env SECRET_KEY=<%= @secret_key %> --env [...] --workers 3 --bind unix:<%= node['flasky-cookbook']['gunicorn_socket'] %> -m 007 --log-file <%= node['flasky-cookbook']['gunicorn_logfile']%> manage:app