带有变量的Gitlab CI复制文件

带有变量的Gitlab CI复制文件,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我在gitlab服务中有一个django存储库。我在VDS中使用gitlab CI runner。我希望在部署过程中复制一些文件,例如local_settings.py,并仅在部署时填充变量,例如: # $CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgr

我在
gitlab
服务中有一个
django
存储库。我在VDS中使用gitlab CI runner。我希望在部署过程中复制一些文件,例如
local_settings.py
,并仅在部署时填充变量,例如:

# $CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USERNAME': '$DB_USERNAME',
        'PASSWORD': '$DB_PASSWORD',
    },
}

# .gitlab-ci.yml
configure_project:
    script:
        - git clone $CI_BUILD_REPO
        - cp $CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl $CI_PROJECT_NAME/$CI_PROJECT_NAME/local_settings.py

在我的项目中,我定义了
DB\u用户名
DB\u密码
安全变量。如何获取具有值的文件?我需要来自
ansible
template
指令之类的东西,这可以通过
envsubst
命令实现。在
.gitlab ci.yml
文件中,可以执行以下操作:

configure\u项目:
脚本:
-git克隆$CI\u构建\u回购
-envsubst<“$CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl”>“local_settings.py.tpl.exported”
-cp local_settings.py.tpl.exported$CI_PROJECT_NAME/$CI_PROJECT_NAME/local_settings.py
将替换环境变量的值,并且可以将输出重定向到另一个名为
local\u settings.py.tpl.exported的文件,您可以复制该文件