инпут задаю через pause:
- name: "Ask for VRRP auth password"
become: false
delegate_to: localhost
ansible.builtin.pause:
prompt: "Enter the VRRP (keepalived) authentication password"
echo: false
register: haproxy_auto_vrrp_password
пытался ссылаться и так (вроде, именно так раньше использовал):
{{ haproxy_auto_vrrp_password.user_input }}
получаю undefined variable
и так:
{{ hostvars['localhost']['haproxy_auto_vrrp_password'] }}
и тут получаю 'AnsibleUndefinedVariable: ''ansible.vars.hostvars.HostVarsVars object'' has no attribute ''haproxy_auto_vrrp_password''.
Возможно, ньюанс в том, что переменная используется в двух шаблонах, которые раскидываются 2-мя тасками с delegate_to: "{{ play_hosts[0] }}" и "{{ play_hosts[1] }}" соответственно.
Есть совет?
Могу ошибаться, но переменные собираются же перед запуском плэя, а у вас она регистрируется во время выполнения. Ну т.е. изначально этого хостварса нет. Попробуйте после регистрации перечитать факты и потом использовать переменную.
Вы пробовали просто смотреть debug: var=haproxy_auto_vrrp_password ?
попробовал добавить setup: , не помогло
при делегировании таски локалхосту (на котором инпут собирается) данные есть, но при выполнении таски не удалённом хосте, выдаёт ошибку, при этом пишет has no attribute 'haproxy_auto_vrrp_password', хотя по идее, это указание на переменную: {{ hostvars['localhost']['haproxy_auto_vrrp_password'] }}
Думаю, вы что-то скрываете и у вас плейбук со странностями. Что-то про нюансы было
Обсуждают сегодня