Как получить название файла инвентаризации в качестве переменной

У меня есть ситуация, когда работают три задания 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' }}"

1 ответ

Решение

Я искал inventory_file

Таким образом, фактическая переменная будет как

jenkins_ci_job: "{{ 'ci1' if (inventory_file | regex_search('(ci1)') == 'ci1') else 'ci2' }}"
Другие вопросы по тегам