TLDR;
Целочисленные теги следует приводить к string
, либо в виде отдельного значения, либо в виде списка:
tags: "3"
# or
tags:
- "3"
# or even
tags: "{{ 3 | string }}"
# ...
Проблема
Копание в код, необходимый для точного понимания, почему это происходит, но ... из моих непосредственных тестов (ansible 2.9.4) tags
плохо воспроизводится со значениями int
.
Пример тестового файла:
---
- hosts: localhost
gather_facts: false
tags: # <see defs below for results>
tasks: [{debug: msg=test}]
Пометить как простое int
Определение
tags: 3
Результаты
Все вызовы PlayBook завершаются с ошибкой:
ОШИБКА! теги должны быть указаны в виде списка
Тег как int
в list
Определение
tags:
- 3
Результаты
Вышеуказанная ошибка исчезает, но таргетинг на тег невозможен. Обратите внимание, что результатом является тот же вызов с --tags 3
или --tags "3"
$ ansible-playbook /tmp/play.yml --tags 3
PLAY [localhost] **************************************************************************************************************************************************************************************************
PLAY RECAP ********************************************************************************************************************************************************************************************************
Тег как string
Определение
tags: "3"
# or
tags:
- "3"
Результаты
Все работает как положено.