更新占位符设置的Ansible最佳做法?

时间:2015-09-29 15:15:46

标签: django deployment settings config ansible

我有一个应用程序配置文件,例如在Django中有一个settings.py文件。在该文件中是数据库连接设置,如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name',
        'USER': 'db_user',
        'PASSWORD': 'db_pass',
        'HOST': 'localhost',
        'PORT': '3306',
    },
}

然后在特定于环境的group_vars文件中,我有一些变量存储了值,这些变量将替换部署角色任务期间settings.py文件中的值。

上述方案的最佳做法是什么?应该' db_name'就像' [DB_NAME_PLACEHOLDER]'然后Ansible用适当的group_vars文件中的指定变量替换它?

更新

我使用的方法是将settings.py转换为jinja2模板,现在在部署角色的templates目录中有一个settings.py.j2文件。然后我在部署角色中创建了一个任务,使用模板模块将文件放在正确的位置。

我还从我的django代码库中删除了settings.py,因为它现在是在一个ansible部署游戏中编写的。我必须编辑我的.gitignore以忽略对settings.py文件的更改。这似乎是一个黑客的解决方法。也许将settings.py置于django源之外,然后修改DJANGO_SETTINGS_MODULE环境变量?

0 个答案:

没有答案