как получить название файла инвентаризации в качестве переменной - PullRequest
0 голосов
/ 10 января 2019

У меня есть ситуация, когда запущены три задания 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 Ответ

0 голосов
/ 12 января 2019

искал inventory_file

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

jenkins_ci_job: "{{ 'ci1' if (inventory_file | regex_search('(ci1)') == 'ci1') else 'ci2' }}"
...