title: How to set fact witch is visible on all hosts in Ansible role
body: <p>I'm setting fact in a role:</p>
  
  <pre><code>- name: Check if manager already configured
    shell: &gt;
      docker info | perl -ne 'print "$1" if /Swarm: (\w+)/'
    register: swarm_status
  
  - name: Init cluster
    shell: &gt;-
      docker swarm init
      --advertise-addr "{{ ansible_default_ipv4.address }}"
    when: "'active' not in swarm_status.stdout_lines"
  
  - name: Get worker token
    shell: docker swarm join-token -q worker
    register: worker_token_result
  
  - set_fact:
      worker_token: "{{ worker_token_result.stdout  }}"
  </code></pre>
  
  <p>Then I want to access worker_token on another hosts. Here's my main playbook, the fact is defined in the swarm-master role</p>
  
  <pre><code>- hosts: swarm_cluster
    become: yes
    roles:
      - docker
  
  - hosts: swarm_cluster:&amp;manager
    become: yes
    roles:
      - swarm-master
  
  - hosts: swarm_cluster:&amp;node
    become: yes
    tasks:
      - debug:
          msg: "{{ worker_token }}"
  </code></pre>
  
  <p>I'm getting undefined variable. How to make it visible globally?
  Of course it works perfectly if I run debug on the same host.</p>