django和厨师的postgres连接细节

时间:2013-07-26 08:49:10

标签: django postgresql chef

我有一个使用postgres DB的django应用程序。

我有一个设置postgres数据库的厨师食谱,包括为django应用程序设置postgres用户名/密码。

此用户名/密码随后由DATABASES settings.py值使用。

目前,我必须在attributes.rb中的settings.py 中获得postgres详细信息。 我怎样才能在一个地方拥有它们?

我目前考虑的选项:

  1. 由厨师模板生成settings.py(或部分)。这样,细节只需要在厨师食谱中。 这方面的缺点是django应用程序是不完整的,除非它是通过厨师部署的。 (这可能不是那么大的问题,因为即使是当地的开发人员也会与流浪汉+厨师一起完成)。

  2. settings.py检查并加载某些值的文件系统上有一个已知文件。此文件由chef生成。 这比第一个解决方案好一点。此外,它还需要settings.py中的一些样板代码来加载和解析文件。

  3. settings.py中有详细信息,让厨师提取它们(不知何故)。 这种方法有问题,因为它混淆了厨师食谱中的排序(我必须检查我的django应用程序,提取值,使用值来设置postgres,然后启动django)。 这本身可能不会太糟糕,但真正的问题是,如果我想转移到一个系统,密码不在源控制文件中,而是像厨师的数据包那样。

  4. 我用谷歌搜索了一下,但除了关于settings.py布局的各种讨论以及关于如何使用django和chef的一般性讨论之外,我找不到一个好的解决方案。 当然其他人已经使用厨师使用postgres部署了一个django应用程序并且之前遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

您应该使用data bag。当您在那里存储密码时,它应该是encrypted data bag。然后你可以在两个食谱(postgres和python)中读取它的数据。

将密码存储在属性中也不是一个好主意 - 因为它们太暴露了。