Я столкнулся с проблемой, когда зарегистрированная переменная неправильно подставляется в последующей задаче, делегированной другому хосту. Это урезанная версия моей пьесы:
- hosts: all
name: Test Play
gather_facts: false
tasks:
- name: Create output directory
tempfile:
state: directory
suffix: diag
register: output_dir
- name: Create API resources directory
file:
path: "{{ output_dir.path }}/api-resources"
state: directory
delegate_to: "{{groups['control-plane'][0]}}"
run_once: yes
register: api_resources_dir
Теперь каждый хост создаст временный каталог, но только один из моих хостов должен дополнительно создать еще один каталог внутри этого временного каталога. Однако при запуске этого плейбука хост, которому делегирована вторая задача, оказывается с двумя разными временными каталогами, один из которых содержит каталог api-resources
. Последний находится внутри временного каталога с тем же именем, что и передающий хост.
Я подозреваю, что переменная {{ output_dir.path }}
во 2-й задаче подставляется на делегирующем хосте, и только затем задача делегируется, тогда как я бы предположил, что переменная подставляется на значение хоста, которому делегируется задача.
Как я могу правильно использовать переменную output_dir
в этом сценарии, чтобы каталог api-resources
оказался внутри каталога временного каталога, созданного в 1-й задаче?