ansible:当我在jenkins中有一个特定的JOB_NAME时,我想使用group_var

时间:2016-10-21 06:47:34

标签: jenkins ansible

由于JOB_NAME在Jenkins作业中可用作变量。

我希望在JOB_NAME变量

中有某个字符串时选择一个特定变量

所以基于不同的jenkins工作,我可以注册不同的变量。

我在group_vars中尝试以下内容,不确定它是否可行。

command: echo "{{ lookup('env','JOB_NAME') }}"
      register: jenkins_job_name
when: installation in jenkins_job_name
  - topology: topology-02

1 个答案:

答案 0 :(得分:1)

您可以在群组变量中的某个位置定义可用拓扑的列表,然后根据set_fact值选择JOB_NAME之一。

例如:

- hosts: localhost
  gather_facts: no
  vars:
    topologies:
      prod: foo
      dev: bar
  tasks:
    - set_fact: topology="{{ topologies[lookup('env','JOB_NAME')] | default('unknown') }}"
    - debug: var=topology

这将设置:

  • topology=foo if JOB_NAME=prod
  • topology=bar if JOB_NAME=dev
  • topology=unknown否则

您可能拥有复杂的拓扑配置对象,而不是简单的foo / bar字符串。