我遇到了这样的情况,正在运行三个使用ansible进行部署的Jenkins作业。此作业使用自己的清单文件,例如/opt/abc/ci1.inventory、/opt/abc/ci2.inventory、/opt/abc/ci3.inventory等。例如,如果第一个jenkins作业正在运行,它将使用/ opt / abc / ci1.inventory文件。
我有一个ansible模板,其中有一个变量“ jenkins_ci_job”,我想根据运行的jenkins分配一个值。例如,如果作业1正在运行,则它将为“ jenkins_ci_job”变量分配值“ ci1”。我看到的唯一方法是获取清单文件名并搜索它是否包含作业名称。
所以我正在搜索类似的东西
jenkins_ci_job:
"{{ 'ci1' if <ansible_inventory_full_path_name> contains 'ci1' else 'ci2' if <ansible_inventory_full_path_name> contains 'ci2 else 'ci3' }}"
答案 0 :(得分:0)
我正在寻找inventory_file
所以实际变量就像
jenkins_ci_job: "{{ 'ci1' if (inventory_file | regex_search('(ci1)') == 'ci1') else 'ci2' }}"