代码之家  ›  专栏  ›  技术社区  ›  patap

在python脚本中使用.gitlab-ci.yml变量

  •  0
  • patap  · 技术社区  · 1 年前

    例如,我需要在python脚本中从vault中获取要连接到的数据库凭据。 我正在使用gitlab ci/cd,所以我可以使用.gitlab-ci.yml文件。 获取一些值并将其传递给python脚本的最佳方法是什么?

    1 回复  |  直到 1 年前
        1
  •  2
  •   Prabhat Singh    1 年前

    您可以使用GitLab CI/CD环境变量和GitLab提供的Vault集成来实现这一点。

    步骤1:将GitLab与Vault集成—您有相关文档。

    步骤2:在GitLab CI/CD中定义环境变量:在您的GitLab项目设置中,导航到“设置”>CI/CD>变量。

    为Vault地址、Vault令牌以及连接到Vault和检索机密所需的任何其他变量定义环境变量。

    步骤3:配置.gitlab-ci.yml:使用before_script部分设置环境,包括安装依赖项和配置任何必要的工具。

    在脚本中,使用Vault CLI或GitLab Vault集成从Vault检索数据库凭据。可以使用步骤2中定义的环境变量进行Vault身份验证。

    这里是一个CI CD yaml的例子。

      stages:
      - deploy
    
    before_script:
      # Install Vault CLI (if not already installed)
      - apk add --no-cache vault
    
    deploy:
      stage: deploy
      script:
        # Authenticate with Vault using the provided token
        - vault login --token $VAULT_TOKEN $VAULT_ADDRESS
        # Retrieve database credentials from Vault
        - export DB_USERNAME=$(vault kv get -field=username secret/database)
        - export DB_PASSWORD=$(vault kv get -field=password secret/database)
        # Run Python script with database credentials as environment variables
        - python my_script.py --db-username=$DB_USERNAME --db-password=$DB_PASSWORD
    

    在这里,我将检索到的凭据作为环境变量或命令行参数传递给Python脚本。

    这样,您就可以安全地从Vault中检索敏感值,并将它们传递到GitLab CI/CD管道中的Python脚本,而无需将它们暴露在存储库或管道日志中。

    推荐文章