我正在尝试开发一本食谱,使一个烧瓶应用程序与gunicorn和nginx一起工作.我已经成功到应用程序运行良好的本地sqlite数据库,请参阅我的食谱https://github.com/harrywang/flasky-cookbook.烧瓶应用程序使用环境变量发送电子邮件,例如:MAIL_USERNAME = os.environ.get('MAIL_USERNAME'),如何在厨房汇聚期间使用测试厨房将这些环境变量传递给ubuntu虚拟机?
我可以在 AWS OpsWorks 上使用 Chef 12 克隆公共存储库,如下所示:
execute "get code" do
user "root"
cwd node['conf-cookbook']['project_root']
command "git clone #{app['app_source']['url']}"
end
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用部署 ssh 密钥来克隆私有存储库 - 我已经搜索了一段时间并看到了一个潜在的解决方案如下:
git node['conf-cookbook']['app_dir'] do
repository "ext::ssh -i #{app['app_source']['ssh_key']} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no #{app['app_source']['url']}"
checkout_branch "master"
action :sync
end
Run Code Online (Sandbox Code Playgroud)
这不适用于错误消息:
---- Begin output of git ls-remote "ext::ssh -i -----BEGIN RSA PRIVATE KEY----
MIIJKQIBAAKCAgEApaViIRinBrusrE....[key detail]7xAOmo3NAmqcPxdrOI+hZJHh5KRvrQPLHY
-----END RSA PRIVATE KEY----- -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no git@github.com:harrywang/app-main.git" "HEAD" ----
STDOUT:
STDERR: Warning: Identity file -----BEGIN not accessible: No such file or …Run Code Online (Sandbox Code Playgroud) chef-infra ×2
aws-opsworks ×1
cookbook ×1
flask ×1
github ×1
gunicorn ×1
ssh ×1
ssh-keys ×1
test-kitchen ×1