play1 и play2, выполняются они на двух разных хостах (play1 на host1, play2 на host2), и мне нужно в play2 получить значение факта, который сетится при выполнении условия в play1. Сейчас я пытаюсь сделать это с помощью hostvars, но что-то не получается (этого факта там нет, если я правильно понимаю, из-за того, что они берутся на момент запуска плейбука).
                  
                  
                  Подскажите способ, как можно получить значение какой-нибудь сущности, засеченной в процессе выполнения плейбука на другом хосте?
                  
                  
                  Вот примерно то, как я сейчас пробую:
                  
                  
                  - hosts: host1
                  
                  
                    tasks:
                  
                  
                      - name: bla-bla
                  
                  
                     <some_task>
                  
                  
                        register: facts
                  
                  
                      - set_fact:
                  
                  
                          var1: True
                  
                  
                          when: facts.some_condition == "true"
                  
                  
                      
                  
                  
                  - hosts: host2
                  
                  
                    gather_facts: yes
                  
                  
                    roles:
                  
                  
                      - { role: bla-bla-bla,
                  
                  
                          when: "hostvars['host1'].ansible_facts.var1 == 'True'" }
                  
                  
                
Там не нужны ansible_facts. К переменным другого хоста можно обращаться просто: hostvars['host1']['var1']
Обсуждают сегодня