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