如何将环境变量传递给.kitchen.yml中的测试厨房

har*_*ryw 6 cookbook chef-infra flask gunicorn test-kitchen

我正在尝试开发一本食谱,使一个烧瓶应用程序与gunicorn和nginx一起工作.我已经成功到应用程序运行良好的本地sqlite数据库,请参阅我的食谱https://github.com/harrywang/flasky-cookbook.烧瓶应用程序使用环境变量发送电子邮件,例如:MAIL_USERNAME = os.environ.get('MAIL_USERNAME'),如何在厨房汇聚期间使用测试厨房将这些环境变量传递给ubuntu虚拟机?

cod*_*ger 15

您可以在以下位置使用Erb格式.kitchen.yml:

provisioner:
  name: chef-solo
  attributes:
    mycookbook:
      mail_username: <%= ENV['MAIL_USERNAME'] %>
Run Code Online (Sandbox Code Playgroud)

然后node['mycookbook']['mail_username']在您的配方中使用将值传递给应用程序.


zua*_*azo -3

无法使用.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
Run Code Online (Sandbox Code Playgroud)