在可分析的行动手册中使用GitLab-ci变量 [英] Using gitlab-ci vars inside an ansible playbook

查看:12
本文介绍了在可分析的行动手册中使用GitLab-ci变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Ansible剧本在码头容器内设置一个远程环境。本攻略将使用我在GitLab CI/CD配置中设置的变量从GitLab-ci运行。我如何才能获得它?

这是我要使用的模板。如何从CI/CD变量设置user_idpassword

tasks:
  - name: Run XYZ Container
    docker_container:
      name: XYZ
      restart_policy: on-failure
      image: xxxxxxxxxxx
      container_default_behavior: "compatibility"
      env:
        USER_ID= $USER_ID
        PASSWORD= $PASSWORD

推荐答案

因为GitLab-ci变量只是您的作业中的环境变量,并且您的Ansible控制器在该作业中运行,所以您可以使用env lookup从控制器中读取它们。

请注意:

  1. docker_container module's env parameter需要一个字典,而不是像您的示例中那样由bash组成的以新行分隔的字符串环境变量定义。
  2. 作为一种安全措施,您应该在使用变量之前检查是否定义了它们(使用assertfail任务),或者在没有定义的情况下使用缺省值。我的示例使用一个缺省值。有关提供默认值的详细信息,请参阅ansible documentation(和original jinja2 documentation以了解ddefault的别名)
tasks:
  - name: Run XYZ Container
    docker_container:
      name: XYZ
      restart_policy: on-failure
      image: xxxxxxxxxxx
      container_default_behavior: "compatibility"
      env:
        USER_ID: "{{ lookup('env', 'USER_ID') | d('defaultuser', true) }}"
        PASSWORD: "{{ lookup('env', 'PASSWORD') | d('defaultpass', true) }}"

这篇关于在可分析的行动手册中使用GitLab-ci变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆