如何在 .kitchen.yml 中将环境变量传递给测试厨房
How to pass environment variables to test kitchen in .kitchen.yml
我正在尝试开发一本食谱,使烧瓶应用程序与 gunicorn 和 nginx 一起工作。我已经取得了成功,以至于该应用程序 运行 非常适合本地 sqlite 数据库,请参阅我的食谱 https://github.com/harrywang/flasky-cookbook。 Flask 应用程序使用环境变量发送电子邮件,例如:MAIL_USERNAME = os.environ.get('MAIL_USERNAME'),我如何使用测试厨房将这些环境变量传递给 ubuntu 虚拟机在厨房收敛期间?
无法使用 .kitchen.yml 配置文件传递环境变量(参见 test-kitchen/test-kitchen#662 问题)。
我建议您在 gunicorn.conf.erb template using the --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
您可以在 .kitchen.yml
:
中使用 Erb 格式
provisioner:
name: chef-solo
attributes:
mycookbook:
mail_username: <%= ENV['MAIL_USERNAME'] %>
然后在您的配方中使用 node['mycookbook']['mail_username']
将值传递给应用程序。
我正在尝试开发一本食谱,使烧瓶应用程序与 gunicorn 和 nginx 一起工作。我已经取得了成功,以至于该应用程序 运行 非常适合本地 sqlite 数据库,请参阅我的食谱 https://github.com/harrywang/flasky-cookbook。 Flask 应用程序使用环境变量发送电子邮件,例如:MAIL_USERNAME = os.environ.get('MAIL_USERNAME'),我如何使用测试厨房将这些环境变量传递给 ubuntu 虚拟机在厨房收敛期间?
无法使用 .kitchen.yml 配置文件传递环境变量(参见 test-kitchen/test-kitchen#662 问题)。
我建议您在 gunicorn.conf.erb template using the --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
您可以在 .kitchen.yml
:
provisioner:
name: chef-solo
attributes:
mycookbook:
mail_username: <%= ENV['MAIL_USERNAME'] %>
然后在您的配方中使用 node['mycookbook']['mail_username']
将值传递给应用程序。