Есть ли какое-то странное поведение Ansible, которое означает, что имя_ инвентаря работает только в определенных контекстах?
Вот сегмент книги воспроизведения, над которым я работаю, и первый оператор отладки показывает правильное значение, но set_fact
затем выбирает пустой список, который затем выбирается во второй задаче отладки.
По какой-то причине точно такое же выражение ведет себя по-разному в debug
и set_fact
, и я не понимаю, почему.Как будто inventory_hostname
не определено в задаче set_fact
(и я даже получаю сообщение о том, что если в обоих случаях я добавлю тег «первый»), как я в конечном итоге захочу.
- name: debug it
debug:
var: all_tagged_droplets.json.droplets | selectattr('name', 'equalto', '{{inventory_hostname}}') | list
- name: find the right droplet
set_fact:
droplet: "{{ all_tagged_droplets.json.droplets | selectattr('name', 'equalto', '{{inventory_hostname}}') | list }}"
- name: debug it
debug:
var: droplet
Какие-нибудь указатели относительно того, как получить данные в более разумную переменную?