LINUX.ORG.RU

Как в Ansible в цикле with_items получить значение item[ {{ idx }} ] ?

 , items


0

2

Имеется такой список:

# Таблица репозитариев
gitRepos:
- [ "idk.git",           "master",    "idk",            "idk.pro", "" ]
- [ "touch_widgets.git", "master",    "tw_integration", "tw.pro",  "" ]
- [ "akson.git",         "radioline", "akson",          "",        "/usr/share/akson" ]

Я делаю по ней всякие циклы with_items. В этих циклах я могу получать значения столбцов по числовому индексу, например {{ item[2] }}, вот так:
  - name: Получение последних изменений из GIT
    shell: "cd {{ gitReposPath }}/{{ item[2] }} ; git pull"
    with_items:
    - "{{ gitRepos }}"

Но писать магические константы индексов некомильфо. Поэтому я сделал переменные:
# Структура таблицы репозитариев
gitTable_RepoNetworkPath: 0         # Сетевой путь к Git-репозитарию
gitTable_BranchName: 1              # Имя ветки
gitTable_DirectoryName: 2           # Имя каталога
gitTable_ProFileName: 3             # Имя файла проекта
gitTable_TargetCopyDirectoryName: 4 # Директория для прямого копирования

И хочу вместо индексов писать осмысленные имена переменных. То есть, вместо
{{ item[2] }}

я пытаюсь написать:
{{ item[ {{ gitTable_DirectoryName }} ] }}

Но Ansible меня не понимает, и дает ошибку:
fatal: [compilingHost]: FAILED! => {"msg": "template error while templating string: expected token ':', got '}'. String: cd {{ gitReposPath }}/{{ item[ {{ gitTable_DirectoryName }} ] }} ; git pull"}


Вопрос: Как получить значение переменной цикла item, когда она является списком, причем индекс задать не магическим числом, а переменной?

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

Ответ на: комментарий от adn

Благодарю, работает. Не выспался, и не сообразил сразу.

Переменные там же где и gitRepos.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.